Esta é uma tradução da página de documentação original em inglês. Ajude-nos a torná-la melhor.

5 Parâmetros do usuário

Visão geral

Às vezes você pode querer executar uma verificação de agente que não vem predefinido com Zabbix. É aqui que os parâmetros do usuário vêm para ajudar.

Você pode escrever um comando que recupere os dados que você precisa e inclua-os no parâmetro do usuário na configuração do agente arquivo ('UserParameter' parâmetro de configuração).

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ário ao configurar um item. Digite uma chave de sua escolha que ser fácil de referenciar (deve ser único dentro de um host).

Reinicie o agente ou use o agente runtime control para pegar o novo parâmetro, e. g.:

zabbix_agentd -R userparameter_reload

Então, ao configurar um item, digite a chave para referenciar o comando do parâmetro do usuário que você deseja executar.

Os parâmetros do usuário são comandos executados pelo agente Zabbix. Até 512 KB de os dados podem ser retornados antes das etapas de pré-processamento do item. Observe, no entanto, que o valor do texto que pode ser eventualmente armazenado no banco de dados é limitado para 64 KB no MySQL (veja informações sobre outros bancos de dados no tabela).

/bin/sh é usado como um interpretador de linha de comando em operação UNIX sistemas. Os parâmetros do usuário obedecem ao tempo limite de verificação do agente; se o tempo limite for atingido, o processo de parâmetro de usuário bifurcado é 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. Desta forma um parâmetro de usuário flexível pode ser a base para a criação de vários itens.

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

UserParameter=chave[*],comando
Parâmetro Descrição
Chave Chave de item exclusivo. O [*] define que esta chave aceita parâmetros entre colchetes.
Os parâmetros são fornecidos ao configurar o item.
Comando Comando a ser executado para avaliar o valor da chave.
Somente 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 em a 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 serem executados.
As referências posicionais são interpretadas independentemente de estarem entre aspas duplas ("") ou simples (').
Para usar referências posicionais inalteradas, especifique um double cifrão - por exemplo, awk '{print $$2}'. Neste caso, $$2 na verdade se transformará em $2 ao executar o comando.

::: não importante As referências posicionais com o sinal $ são pesquisadas para e substituído pelo agente 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, nenhuma citação do sinal $ é necessária. :::

::: não importante Certos símbolos não são permitidos nos parâmetros do usuário por padrão. Ver UnsafeUserParameters documentação 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 é a saída padrão junto com erro padrão.

::: não importante Um texto (caractere, log ou tipo de texto de informações) o item não ficará sem suporte em caso de erro padrão saída. :::

Parâmetros do usuário que retornam texto (caractere, log, tipo de texto de informações) pode retornar espaços em branco. Em caso de resultado inválido o item ficará sem suporte.