Estendendo o Zabbix Agent com UserParameter

Zabbix Agent Check

Este é um assunto que vale um artigo também, devido a quantidade de informações que podemos falar sobre o monitoramento utilizando Zabbix Agent.

Utilizamos o Zabbix Agent para monitorar recursos locais do Sistema Operacional, tais como informações de disponibilidade e desempenho. Esta é a maneira mais popular de monitorar servidores, diferente do monitoramento através do SNMP o Zabbix provê uma infinidade de itens prontos para serem utilizados.

Você pode consultar a lista completa de itens clicando aqui.

 

 

O que é UserParameter?

UserParameter é uma forma de estender as funcionalidades do Zabbix Agent, com esta funcionalidade podemos criar novas chaves de itens de acordo com a nossa necessidade.

Sintaxe:

  • UserParameter=<chave_do_item>,<comando>

Notas:

  • O UserParameter utiliza o timeout do Zabbix Agent, se o seu comando demorar mais tempo que definido o processo será encerrado.
  • Após configurar o UserParameter precisamos reiniciar o serviço do Zabbix Agent
  • Os comandos são executados com as permissões do usuário zabbix.

Existem dois tipos de UserParameter:

  • Simples
  • Flexível

Criando um item com UserParameter:

Em nosso laboratório iremos utilizar uma máquina Linux com Zabbix Agent instalado, faremos um simples UserParameter:

1) Edite o arquivo de configuração:

vim /etc/zabbix/zabbix_agentd.conf

2) Insira o comando:

UserParameter=count.dir.zabbix,ls /etc/zabbix |wc -l

3) Reinicie o serviço do Zabbix Agent:

systemctl restart zabbix-agent

4) Teste a configuração com o comando:

zabbix_agentd -t count.dir.zabbix

5) Resultado

count.dir.zabbix [t|3]

UserParameter flexível:

Com UserParameter flexível podemos enviar parâmetros na chave do item, podendo ser utilizado como base para vários itens.

1) Edite o arquivo de configuração:

vim /etc/zabbix/zabbix_agentd.conf

2) Insira o comando:

UserParameter=soma[*],echo "$1+$2"| bc

3) Reinicie o serviço do Zabbix Agent:

systemctl restart zabbix-agent

4) Teste a configuração com o comando:

zabbix_agentd -t soma[10,12]

5) Resultado

soma[10,12]                                   [t|22]

Arquivo de configuração individual:

Com o objetivo de padronizar o arquivo de configuração do Zabbix Agent. Podemos utilizar o parâmetro Include definindo uma pasta padrão para nossos arquivos de UserParameter.

1) Edite o arquivo de configuração:

vim /etc/zabbix/zabbix_agentd.conf

2) Insira o comando:

Include=/etc/zabbix/scripts/*.conf

3) Crie o diretório scripts:

mkdir /etc/zabbix/scripts

4) Crie o arquivo de configuração do UserParameter:

vim /etc/zabbix/scripts/calculadora.conf

5) Insira os comandos:

UserParameter=soma[*],echo "$1+$2" | bc
UserParameter=subtracao[*],echo "$1-$2" | bc
UserParameter=multiplicacao[*],echo "$1*$2" | bc
UserParameter=divisao[*],echo "$1/$2" | bc

6) Reinicie o serviço do Zabbix Agent:

systemctl restart zabbix-agent

7) Podemos testar todos:

[root@app01 zabbix]# zabbix_agentd -t soma[10,2]
soma[10,2]                                    [t|12]
[root@app01 zabbix]# zabbix_agentd -t subtracao[10,2]
subtracao[10,2]                               [t|8]
[root@app01 zabbix]# zabbix_agentd -t multiplicacao[10,2]
multiplicacao[10,2]                           [t|20]
[root@app01 zabbix]# zabbix_agentd -t divisao[10,2]
divisao[10,2]                                 [t|5]

Informações adicionais:

Por padrão não podemos passar caracteres especiais como parâmetro, temos a opção no arquivo de configuração do Zabbix Agent.

1) Edite o arquivo de configuração:

vim /etc/zabbix/zabbix_agentd.conf

2) Edite o parâmetro:

UnsafeUserParameters=1

3) Reinicie o serviço do Zabbix Agent:

systemctl restart zabbix-agent

Como resultado da criação do UserParameter, finalmente podemos criar um item no frontend do Zabbix informando a chave e os parâmetros quando necessário.

Espero que tenham gostado e até o próxima.

Deixe uma resposta