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:

Deixe um comentário

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