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