[comment]: # translation:outdated

[comment]: # ({70a6015a-70a6015a})
# 5 Parâmetros do usuário

[comment]: # ({/70a6015a-70a6015a})

[comment]: # ({2a3ff434-9a4b2756})
#### 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](/manual/appendix/config/zabbix_agentd) ('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](/manual/concepts/agent#runtime_control) para pegar o
novo parâmetro, e. g.:

    zabbix_agentd -R userparameter_reload

Então, ao [configurar um item](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](/manual/config/notifications/action/operation/remote_command#overview)).

**/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:

-   [Passo a passo
    tutorial](/manual/config/items/userparameters/extending_agent) em
    usando parâmetros do usuário
- [Execução do comando](/manual/appendix/command_execution)

[comment]: # ({/2a3ff434-9a4b2756})

[comment]: # ({53dfad45-53dfad45})
##### 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.

[comment]: # ({/53dfad45-53dfad45})

[comment]: # ({8cbc23f3-e619711f})
#### 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.<br>Os parâmetros são fornecidos ao configurar o item.|
|**Comando**|Comando a ser executado para avaliar o valor da chave.<br>*Somente para parâmetros de usuário flexíveis*:<br>Você pode usar referências posicionais $1…$9 no comando para se referir ao respectivo parâmetro em a chave do item.<br>O Zabbix analisa os parâmetros entre \[ \] da chave do item e substitui $1,...,$9 no comando de acordo.<br>$0 será substituído pelo comando original (antes da expansão de $0,...,$9) a serem executados.<br>As referências posicionais são interpretadas independentemente de estarem entre aspas duplas ("") ou simples (').<br>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](/manual/appendix/config/zabbix_agentd)
documentação para uma lista completa.
:::

[comment]: # ({/8cbc23f3-e619711f})

[comment]: # ({5c6e8e3c-5c6e8e3c})
##### 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'

[comment]: # ({/5c6e8e3c-5c6e8e3c})

[comment]: # ({db2a6e16-db2a6e16})
##### 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]

[comment]: # ({/db2a6e16-db2a6e16})

[comment]: # ({dd3ac3fa-dd3ac3fa})
##### 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]

[comment]: # ({/dd3ac3fa-dd3ac3fa})

[comment]: # ({a5d86054-a5d86054})
#### 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.

[comment]: # ({/a5d86054-a5d86054})
