Áú»¢¶Ä²©

4 Par?metros de usu¨¢rio

Vis?o geral

Algumas vezes voc¨º pode precisar executar uma verifica??o que n?o fa?a parte do kit de testes nativos do Áú»¢¶Ä²©. 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 Áú»¢¶Ä²© 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 Áú»¢¶Ä²© saiba o que coletar.

Os par?metros de usu¨¢rio s?o executados pelo Áú»¢¶Ä²© 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.

Exemplos de par?metros de usu¨¢rio simples

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.

Par?metros de usu¨¢rio flex¨ªveis

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 Áú»¢¶Ä²© 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 Áú»¢¶Ä²© 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.

Exemplo 1

Algo muito simples:

UserParameter=ping[*],echo $1

Podemos definir um n¨²mero ilimitado de itens para monitorar com o formato 'ping[something]'.

  • ping[0] - sempre retornar¨¢ '0'
  • ping[aaa] - sempre retornara 'aaa'
Exemplo 2

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]
Exemplo 3

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]

Resultado do comando

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.