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 do 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 ajudam.

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é 16 MB de dados podem ser retornados antes das etapas de pré-processamento do valor do item.

O /bin/sh é usado como interpretador de linha de comando em sistemas operacionais UNIX. Os parâmetros de usuário obedecem ao tempo limite de 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 agente sempre retornará '1' para um item com a chave 'ping'.

Um exemplo mais complexo:

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

O agente 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. Dessa 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 única do item. 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 cifrões - 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 do Zabbix apenas para parâmetros de usuário flexíveis. Para parâmetros de usuário simples, esse processamento de referência é ignorado e, portanto, qualquer citação do 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 de UnsafeUserParameters para uma lista completa.

Exemplo 1

Algo muito simples:

 UserParameter=ping[*],echo $1

Podemos definir um número ilimitado de itens para monitoramento, todos com 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 vivo

Este parâmetro pode ser usado para monitorar a disponibilidade do MySQL base de dados. Podemos passar nome de usuário e 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 de texto) não ficará não suportado em caso de uma 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 de texto) também podem retornar um espaço em branco. Em caso de resultado inválido, o item ficará não suportado.