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:
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:
O agente sempre irá retornar o valor '1'para um item com a chave 'ping'.
Um comando mais complexo:
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:
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). |
Para utilizar as referências posicionais de forma inalterada, utilize o símbolo de dolar duplo - por exemplo, awk '{print $$2}'. Neste caso o $$2
irá se transformar em $2
quando o comando for executado.
Observe que as referências posicionais com o símbolo "$" serão interpretadas pelo Zabbix Agent, independentemente de estarem entre aspas duplo (") ou simples (').
Alguns símbolos não são permitidos nos parâmetros de usuário por padrão. Veja o manual de parâmetros inseguros para uma lista completa.
Algo muito simples:
Podemos definir um número ilimitado de itens para monitorar com o formato 'ping[something]'.
Vamos fazer algo mais útil!
Este parâmetro pode ser utilizado para verificar a disponibilidade de um BD MySQL. Nós podemos informar ainda um usuário e senha:
Quantas linhas correspondem a determinada expressão regular em um arquivo?
Este parâmetro pode ser utilizado para calcular a quantidade de linhas em um arquivo.
O valor de retorno do comando será o output padrão junto com as mensagens de erro.
Um item de texto (tipo de dado de caractere, log ou texto) ficará como 'não suportado' caso de retorno de erro no output padrão.
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.