Instalando o Zabbix no Kubernetes usando o Helm

Introdução

Confesso que demorei muito para publicar este post, porque o médodo de instalação do Zabbix no Kubernetes usando o Helm não é algo novo. Isso já é feito em alguns ambientes há alguns anos. Eu mesmo ajudo no desenvolvimento de um helm chart há quase 3 anos. Mas aqui estamos…

De 2013 para cá, ficou muito popular a ideia de instalar aplicações utilizando containers, principalmente usando o Docker. E quando você tem um ambiente com dezenas ou centenas de containers, se faz necessário utilizar uma ferramenta de orquestração. Existem várias opções, mas a que se tornou popular foi o Kubernetes.

Quem está aprendendo ou já trabalha com Kubernetes sabe que não é algo fácil de manter. O Helm é uma das ferramentas disponíveis para se trabalhar com Kubernetes, cujo foco é ajudar na instalação de aplicações. O Helm funciona como um gerenciador de pacotes, que implementa a mesma ideia do apt, yum, apk, etc… Ele serve para instalar, atualizar, remover aplicações através de helm charts, que podem ser criados por você ou podem ser obtidos em vários repositórios de código ou em helm repositories. O Artifact Hub é um site no qual você pode encontrar informações sobre milhares de helm charts.

Se você quiser aprender mais sobre Docker, Kubernetes ou Helm, sugiro ler os links desta página, ou fazer um curso comigo sobre Docker e/ou Kubernetes.

Sobre o Helm Chart

A Zabbix SIA desenvolveu um helm chart oficial disponível aqui, mas hoje (Janeiro/2023) ele ainda não está preparado para instalar todos os componentes de software do Zabbix. Até cheguei a reportar sobre isso nesta issue.

Devido a isso, em 2020, Amen Ayadi e Alexandre Nuttinck, pesquisadores do Cetic, criaram o helm chart cetic/zabbix que instala a maioria dos componentes do Zabbix usando o banco de dados PostgreSQL. Também em 2020, eu comecei a colaborar o código fonte do helm chart junto com Amen e Alexandre. O helm chart evoluiu bastante e recebeu contribuições de dezenas de pessoas ao redor do mundo. Em 2022, Christian Anton deu contribuições técnicas muito significativas ao helm chart, tornando-se um dos mantenedores regulares do helm chart junto comigo.

Em Outubro/2022, o repositório cetic/zabbix foi descontinuado e código fonte foi migrado para o repositório zabbix-community/helm-zabbix.

Christian chegou a apresentar o helm chart no Zabbix Summit 2022 e você pode conferir nesta palestra. Eu sei que você pode estar ser perguntando sobre as vantagens e os motivos de instalar o Zabbix no Kubernetes, ou que mudanças de paradigma são necessários para isso ocorrer. Essas e outras perguntas foram respondidas por Robert Silva nesta palestra, também no Zabbix Summit 2022.

Tutorial de instalação

O helm chart possui várias opções de configuração e o tutorial de instalação pode ser encontrado no seguinte link.

https://artifacthub.io/packages/helm/zabbix-community/zabbix

Um exemplo de instalação do Zabbix no kind, pode ser encontrado no link: https://github.com/zabbix-community/helm-zabbix/tree/master/charts/zabbix/docs/example

Se você tiver interesse em contribuir com o helm chart ou sugerir melhorias pode interagir através do repositório:

https://github.com/zabbix-community/helm-zabbix

Usando a abordagem GitOps

Uma vez que você tenha entendido os motivos de instalar o Zabbix no Kubernetes e tenha a necessidade de gerenciar a configuração como código, você pode utilizar a abordagem GitOps e usar as ferramentas ArgoCD ou Flux.
Eu comentei sobre essas ferramentas nos seguintes posts:

Categories:

2 respostas para “Instalando o Zabbix no Kubernetes usando o Helm”

  1. Avatar de Rodolfo
    Rodolfo

    Boa tarde Aécio;

    primeiro gostei muito desse material era o que eu precisava em uma nova implantação, porem tenho uma questão referente ao acesso via ingress do kubernetes para o service zabbix-web, ele esta exposto na porta 8080 e o ingress que esta no padrão das outras aplicações faz o redir na porta 80. o ingress aprece quando verifico com o comando kubectl describe zabbix ingress, quando acesso o container docker na porta 8080 através do comando kubectl ‘pod’ ‘service ‘ip:8080’ leva para o zabbix agora através do link do ingress retorna o erro ‘404 not found’ ja pesquisei bastante tentei algumas tentativas mas não encontro o motivo !

  2. Avatar de Aécio Pires
    Aécio Pires

    Boa noite, Rodolfo!

    Desculpa pela demora na resposta.
    Que bom que o helm chart está te ajudando.
    Caso ainda esteja com este problema, poderia olhar este tópico que trato deste assunto? https://github.com/zabbix-community/helm-zabbix/discussions/27

    Se o problema persistir, poderia abrir um novo tópico aqui? https://github.com/zabbix-community/helm-zabbix/discussions

    Fica melhor de compartilhar os arquivos YAML do helm values que está usando e também do arquivo de ingress gerado para que eu possa te ajudar.

    Caso tenha resolvido, agradeceria se pudesse compartilhar a solução para ajudar outras pessoas.

    Boa semana.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *