Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

5 Parâmetros de usuário

Visão geral

Às vezes, você pode querer executar uma verificação de agent que não vem predefinida no Zabbix. É aí que os parâmetros de usuário entram em cena.

Você pode escrever um comando que recupere os dados necessários e incluí-lo no parâmetro de usuário no arquivo de configuração do agent (parâmetro de configuração 'UserParameter').

Um parâmetro de usuário tem a seguinte sintaxe:

UserParameter=<chave>,<comando>

Como você pode ver, um parâmetro de usuário também contém uma chave. A chave será necessária ao configurar um item. Insira uma chave de sua escolha que seja fácil de referenciar (deve ser única dentro de um host).

Reinicie o agent ou use a opção de controle em tempo de execução do agent para carregar o novo parâmetro, por exemplo:

zabbix_agentd -R userparameter_reload

Em seguida, ao configurar um item, insira a chave para referenciar o comando do parâmetro de usuário que você deseja executar.

Os parâmetros de usuário são comandos executados pelo agent do Zabbix. Observe que até 16MB de dados podem ser retornados antes das etapas de pré-processamento do valor do item.

/bin/sh é usado como interpretador de linha de comando em sistemas operacionais UNIX. Os parâmetros de usuário obedecem ao tempo limite da verificação do agent; se o tempo limite for atingido, o processo do parâmetro de usuário bifurcado será encerrado.

Veja também:

Exemplos de parâmetros de usuário simples

Um comando simples:

UserParameter=ping,echo 1

O agent sempre retornará '1' para um item com a chave 'ping'.

Um exemplo mais complexo:

UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive

O agent retornará '1' se o servidor MySQL estiver ativo, '0' caso contrário.

Parâmetros de usuário flexíveis

Parâmetros de usuário flexíveis aceitam parâmetros com a chave. Desta forma, um parâmetro de usuário flexível pode ser a base para criar vários items.

Parâmetros de usuário flexíveis têm a seguinte sintaxe:

UserParameter=key[*],command
Parâmetro Descrição
Key Chave de item única. O [*] define que esta chave aceita parâmetros dentro dos colchetes.
Os parâmetros são fornecidos ao configurar o item.
Command Comando a ser executado para avaliar o valor da chave.
Apenas para parâmetros de usuário flexíveis:
Você pode usar referências posicionais $1…$9 no comando para se referir ao respectivo parâmetro na chave do item.
O Zabbix analisa os parâmetros entre [ ] da chave do item e substitui $1,...,$9 no comando de acordo.
$0 será substituído pelo comando original (antes da expansão de $0,...,$9) a ser executado.
Referências posicionais são interpretadas independentemente de estarem entre aspas duplas (") ou simples (').
Para usar referências posicionais sem alteração, especifique dois sinais de cifrão - por exemplo, awk '{print $$2}'. Neste caso, $$2 será convertido em $2 ao executar o comando.

Referências posicionais com o sinal $ são procuradas e substituídas pelo agent Zabbix apenas para parâmetros de usuário flexíveis. Para parâmetros de usuário simples, tal processamento de referência é ignorado e, portanto, qualquer citação de sinal $ não é necessária.

Certos símbolos não são permitidos em parâmetros de usuário por padrão. Veja a documentação UnsafeUserParameters para uma lista completa.

Exemplo 1

Algo muito simples:

UserParameter=ping[*],echo $1

Podemos definir um número ilimitado de items para monitoramento, todos tendo o formato ping[algo].

  • ping[0] - sempre retornará '0'
  • ping[aaa] - sempre retornará 'aaa'
Exemplo 2

Vamos adicionar mais sentido!

UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive

Este parâmetro pode ser usado para monitorar a disponibilidade do banco de dados MySQL. Podemos passar o nome de usuário e a senha:

mysql.ping[zabbix,our_password]
Exemplo 3

Quantas linhas correspondem a uma expressão regular em um arquivo?

UserParameter=wc[*],grep -c "$2" $1

Este parâmetro pode ser usado para calcular o número de linhas em um arquivo.

wc[/etc/passwd,root]
       wc[/etc/services,zabbix]

Resultado do comando

O valor de retorno do comando é uma saída padrão juntamente com um erro padrão produzido pelo comando.

Um item que retorna texto (caractere, log ou tipo de informação texto) não ficará não suportado em caso de saída de erro padrão.

O valor de retorno é limitado a 16MB (incluindo espaços em branco à direita que são truncados); limites do banco de dados também se aplicam.

Parâmetros de usuário que retornam texto (caractere, log ou tipo de informação texto) também podem retornar um espaço em branco. Em caso de resultado inválido, o item ficará não suportado.