O que é o zabbix?
É uma ferramenta de monitoramento de código aberto criada por Alexei Vladishev. Essa ferramenta permite realizar o monitoramento de hardwares, softwares, serviços, desempenho de aplicações, desempenho da rede, dentre outras coisas. Ela também auxilia na investigação da causa raiz de problemas em um ambiente de TI. Abaixo, listamos alguns exemplos de monitoramentos que podem ser realizados:
-
- Servidores;
-
- Aplicações;
-
- Integridade de hardwares como discos rígidos;
-
- Consumo de memória, de CPU e taxa de leitura e escrita em HDs;
-
- Consumo de links de internet;
-
- Temperatura de nobreaks;
-
- Status de serviços dos sistemas operacionais;
-
- Tempo de resposta de aplicações;
-
- Espaço em disco;
-
- Health check de instâncias na nuvem;
-
- É possível ainda coletar métricas por meio de scripts ou querys SQL;
O zabbix é estruturado em uma arquitetura de cliente-servidor e é dividido em três serviços, sendo eles, back-end, front-end e banco de dados SQL. Todos os dados coletados pelo Zabbix Agent e Proxy, protocolo SNMP, Simple Check (normalmente usado para monitoramento sem agent), por exemplo, são enviados para o Server (back-end) e posteriormente gravados em um banco de dados MySQL ou PostgreSQL. A interface web (front-end) é utilizada para realizar as configurações e visualizar os alertas, gráficos, mapas e status dos itens.
Na imagem abaixo pode-se ver o fluxograma da arquitetura:
Agora que já entendemos a arquitetura e nos aprofundar em alguns conceitos:
-
- SERVER: É o responsável por gerenciar as coletas dos dados, acionar as triggers e enviar as notificações.
-
- PROXY: É um serviço utilizado para coletar os dados de um host em nome do Zabbix Server. Ou seja, o Agent coleta as informações do host e as envia para o Proxy e, este, por sua vez, envia tais dados para o Server. A vantagem desse serviço é a redução de carga no Server, já que apenas um servidor estará enviando dados de diversos dispositivos para o Server (Ao invés de se ter 10 servidores conectados ao Server, você terá apenas o Proxy). Muito útil em ambientes de organizações que possuem filiais.
-
- PROXY ATIVO: O Zabbix Proxy se conecta ao servidor do Zabbix Server.
-
- PROXY PASSIVO: O Zabbix Server se conecta ao Zabbix Proxy.
-
- AGENT: É o responsável por coletar/monitorar os dados do host (discos, memória, processador, tráfego de rede…) e enviar para o Zabbix Server (ou Zabbix Proxy).
O Zabbix é um sistema muito bem estruturado e, em sua configuração, não poderia ser diferente. Basicamente, precisamos criar um host (dispositivo a ser monitorado) e, em seguida, configurar o que queremos que seja monitorado neste host. Para isso, é necessário criar um item e por último criar os alertas que são acionados pelas triggers.
Elementos:
-
- Hosts: Qualquer dispositivo que tenha um ip e consiga se comunicar com o Zabbix.
-
- Item: Métricas que serão coletadas no host. Por exemplo, utilização da memória ou CPU.
-
- Trigger: São gatilhos configurados por expressões lógicas que analisam os itens e geram os alertas. Por exemplo, uma trigger que dispara um alerta quando a utilização de memória um determinado host está acima de 90%.
-
- Aplicação: Agrupamento de itens relacionados em um host, serve para organização. Por exemplo, podemos criar uma aplicação chamada memória e vincular os itens relacionados, como utilização da memória, quantidade de memória livre e etc.
-
- Template: É um conjunto de elementos (itens, triggers, aplicações…) que podem ser aplicados para varios hosts. Por exemplo, podemos ter um template chamado Windows Server, onde temos todos os monitoramentos necessários a um sistema operacional desse tipo e vincular este template a todos servidores Windows Server.
Atualmente, a maioria das empresas dependem de serviços de TI, sendo que indisponibilidades podem gerar perdas ao negócio. É manter os serviços monitorados 24 horas por dia, para prever ou atenuar um possível incidente que gere impacto à organização.
Nem sempre é possível ter uma equipe grande para ficar analisando os alertas gerados, porém, o Zabbix possui alguns recursos e integrações interessantes que auxiliar na obtenção de um monitoramento mais eficiente:
-
- É possível configurar resposta ativas nos servidores, caso um serviço pare de funcionar podemos executar um comando remoto no servidor para tentar iniciar o serviço novamente.
-
- Configurar envios de alertas por Sms, E-mail, Telegram, Slack, Microsoft Teams e até mesmo para ferramentas de acionamento como o PagerDuty, onde é possível gerar alertas via contato telefônico informando sobre determinado incidente.
-
- Integração com aplicações de gestão de serviços como o GLPI.
-
- Integração com Grafana
-
- O Zabbix possui uma API que permite o recebimento e modificação de configurações como:
-
- Criar elementos (hosts, itens, triggers…) em larga escala;
-
- Criar novas aplicações para trabalhar com o Zabbix;
-
- Integrar o Zabbix com softwares de terceiros;
-
- Automatizar tarefas rotineiras;
Abaixo, seguem alguns vídeos e cursos para realizar a instalação do Zabbix via Docker e como utilizar sua API.