LAB – Zabbix Agent 2

15 out

LAB – Zabbix Agent 2

Design sem nome (2)

O agente Zabbix 2 tem tudo para substituir o seu antecessor, pois foi desenvolvido pela Zabbix SIA com os
seguintes objetivos:

 

  • Reduzir o número de conexões TCP
  • Ter maior simultaneidade de verificação
  • Ser facilmente extensível com plug-ins
  • Ser um substituto imediato para o agente Zabbix (suporta todas as funcionalidades anteriores)

 

O Agente 2 foi escrito em Go (com algum código C do agente Zabbix reutilizado), onde as verificações passivas funcionam de forma semelhante ao agente Zabbix e as verificações ativas oferecem suporte a intervalos programados/flexíveis e verificam a simultaneidade em um servidor ativo. Ele é suportado nas plataformas Linux e Windows, porém na plataforma Windows, um número limitado de itens é compatível com o Agente 2.

 

Comparação entre Zabbix Agent VS Zabbix Agent 2

[table id=6 /]

 

Instalação

 

A instalação pode ser feita usando o repositório oficial disponibilizado pela Zabbix, abaixo segue um exemplo de instalação em um computador com o sistema operacional Centos 8.

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x8664/zabbix-release-5.0-
1.el8.noarch.rpm
dnf clean all
dnf install zabbix-agent2

Os seguintes parâmetros de linha de comando podem ser usados com o Zabbix Agent 2:

 

[table id=10 /]

 

Exemplos específicos de uso de parâmetros de linha de comando:

zabbixagent2 -t agent.ping
zabbixagent2 -t hostname

Retorno do primeiro comando:

agent.ping                                   [s|1]

Retorno do segundo comando:

system.hostname                              [s|labdataunique]

O novo agente Zabbix é uma plataforma totalmente nova que pode ser facilmente ampliada com a utilização de plugins, isto é o maior diferencial em relação a versão anterior. Um dos motivos de se utilizar plugins é para substituir os scripts externos usados através da chave UserParameter. Também é possível escrever seus próprios plugins personalizados baseados em Go, o agente oferece várias interfaces de plugins para diferentes tipos de tarefas.

 

Plugins:

 

Caso não esteja interressado em programar seus próprios plugins, não se preocupe, a Zabbix SIA está desenvolvendo uma grande quantidade de plugins out-of-the-box, destacando-se os plugins docker, mysql, oracle e postgres.

 

Plugins disponíveis na versão 5.2, que já podem ser testados baixando-se a versão 5.2 (alpha): docker, kernel, log, memcached, modbus, mqtt, mysql, net/netif, net/tcp, net/udp, oracle, postgres, proc, redis, system/cpu, system/uname, system/uptime, systemd, systemrun, vfs/dev, vfs/file, vfs/fs, web, zabbix/async, zabbix/stats e zabbix/sync.

 

Veja como é fácil utilizar os plugins dispónvies no Agent2 através de dois exemplos:

 

Exemplo de utilização do plugin mysql

 

Para testar o plugin siga os seguintes passos:

 

1. Realize o download do template Template DB MySQL by Zabbix agent 2
2. Import o template no Zabbix frontend

 

1. Acesse o menu Configuração --> Templates
2. Clique no botão Importar, localizado no canto superior direito
3. Selecione o arquivo baixado e clique em Importar

 

 

3. Crie um usuário no MySQL para o monitoramento ( a seu critério):

CREATE USER 'dataunique'@'%' IDENTIFIED BY '';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO
'dataunique'@'%';

4. Defina na macro {$MYSQL.DSN} o nome da fonte de dados da instância do MySQL. Exemplo:
tcp://localhost:3306

1. Macro

 

Pronto agora você já será capaz de monitorar o banco de dados MySQL, para testar se a configuração funcionou, basta executar o comando zabbix_agent2 -t mysql.ping no terminal do servidor onde o Agent foi instalado, conforme exemplo abaixo.

$ zabbix_agent2 -t mysql.ping["tcp://localhost:3306","dataunique",""]

Retorno do comando:

$ mysql.ping[tcp://localhost:3306,dataunique,][s|1]

Exemplo de utilização do plugin docker

 

Para testar o plugin siga os seguintes passos:

 

1. Realize o download do template Template App Docker
2. Import o template no Zabbix frontend

1. Acesse o menu Configuração --> Templates
2. Clique no botão Importar, localizado no canto superior direito
3. Selecione o arquivo baixado e clique em Importar

Pronto agora você já será capaz de monitorar seus containers, para testar se a configuração funcionou, basta
executar o comando zabbix_agent2 -t docker.containers.discovery[] no terminal do servidor onde o Agent foi
instalado, conforme exemplo abaixo.

$ zabbix_agent2 -t docker.containers.discovery[] | awk -F "|" '{print $2}' | sed
s/']]'/']'/ | jq --raw-output '.[]."{#NAME}"'

Retorno do comando:

/zabbix_database
/zabbix_fronted
/zabbix_server

Referências:

https://blog.zabbix.com/magic-of-new-zabbix-agent/8460/
https://github.com/zabbix/zabbix/blob/master/src/go/plugins/oracle/README.md
https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent2
https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/docker