Algumas vezes você pode precisar executar uma verificação que não faça parte do kit de testes nativos do Zabbix. Nestes casos os parâmetros de usuário poderão estender as funcionalidades da solução para novos testes desenvolvidos por você.
Você pode desenvolver um comando que extraia os dados que você precisa e incluí-lo como um 'User Parameter' no arquivo de configuração do agente.
Um parâmetro de usuário tem a sintaxe a seguir:
UserParameter=<key>,<command>
Como você deve ter percebido, um 'User Parameter' também contêm uma chave. Esta chave é o identificador único da nova funcionalidade e será necessária quando você for configurar o item. Você pode definir o nome que preferir. Uma vez que tenha terminado os ajustes no arquivo de configurações do Zabbix Agent, será necessário o reinicio do processo do agente para que as novas configurações estejam acessíveis.
Logo, quando configurar o item, informe o nome de chave definido no 'User Parameter' para que o Zabbix saiba o que coletar.
Os parâmetros de usuário são executados pelo Zabbix Agent. O limite de tamanho do dado retornado é de 512KB. /bin/sh será utilizado como interpretador de comando em ambientes UNIX. Os parâmetros de usuário respeitam o parâmetro de 'timeout' do agente; se o timeout for alcançado o processo iniciado pelo 'User Parameter' será terminado.
Consulte também um tutorial passo-a-passo sobre como usar os parâmetros de usuário.
Um simples comendo:
UserParameter=ping,echo 1
O agente sempre irá retornar o valor '1'para um item com a chave 'ping'.
Um comando mais complexo:
UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive
O agente irá retornar '1', se o MySQL server estiver em execução ou '0' caso não esteja.
Os parâmetros de usuário flexíveis aceitam parâmetros em suas chaves. Desta forma um mesmo 'User Parameter' poderá ser chamado por vários itens no mesmo host, bastando para isso que os seus parâmetros sejam diferentes.
Os parâmetros de usuário flexíveis tem a seguinte sintaxe:
UserParameter=key[*],command
Parâmetro | Descrição |
---|---|
Key | Chave única do item. O “[*]” define que este parâmetro de usuário aceitará parâmetros entre colchetes. Os parâmetros serão informados ao configurar os itens. |
Command | Comando a ser executado quando a chave for necessária. Utilize referências posicionais $1…$9 para utilizar os parâmetros da chave. O Zabbix analisa os parâmetros entre “[ ]” da chave do item e os substitui no formato do shell ($1,…,$9). |
$$2
irá se transformar em $2
quando o comando for executado.Algo muito simples:
UserParameter=ping[*],echo $1
Podemos definir um número ilimitado de itens para monitorar com o formato 'ping[something]'.
Vamos fazer algo mais útil!
UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive
Este parâmetro pode ser utilizado para verificar a disponibilidade de um BD MySQL. Nós podemos informar ainda um usuário e senha:
mysql.ping[zabbix,our_password]
Quantas linhas correspondem a determinada expressão regular em um arquivo?
UserParameter=wc[*],grep -c "$2" $1
Este parâmetro pode ser utilizado para calcular a quantidade de linhas em um arquivo.
wc[/etc/passwd,root] wc[/etc/services,zabbix]
O valor de retorno do comando será o output padrão junto com as mensagens de erro.
Parâmetros de usuário que retornam textos poderão retornar caracteres em branco. No caso de um resultado inválido o item passa a ser não suportado.