[comment]: # translation:outdated

[comment]: # ({70a6015a-70a6015a})
#5 Parámetros de usuario

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

[comment]: # ({727ff70a-9a4b2756})
#### Descripción general

A veces es posible que desee ejecutar una verificación que no viene
predefinida con el agente Zabbix. Aquí es donde los parámetros de usuario resultan de ayuda.

Puede escribir un comando que recupere los datos que necesita e incluirlos
en el parámetro de usuario en el archivo de [configuración del agente](/manual/appendix/config/zabbix_agentd) ('UserParameter'
parámetro de configuración).

Un parámetro de usuario tiene la siguiente sintaxis:

    UserParameter=<clave>,<comando>

Como puede ver, un parámetro de usuario también contiene una clave. La clave será
necesaria al configurar una métrica. Introduzca una clave de su elección que
sea fácil de consultar (debe ser única dentro de un equipo).

Reinicie el agente o utilice la opción de control en [tiempo de ejecución](/manual/concepts/agent#runtime_control) del agente  para considerar el
nuevo parámetro, por ejemplo:

    zabbix_agentd -R userparameter_reload

Luego, al [configurar una métrica](/manual/config/items/item), ingrese la clave para hacer referencia al
comando del parámetro de usuario que desea ejecutar.

Los parámetros de usuario son comandos ejecutados por el agente Zabbix.
Tenga en cuenta que se pueden devolver hasta 16 MB de datos antes de los pasos de [preprocesamiento del valor de la métrica](/manual/config/items/preprocessing).

**/bin/sh** se utiliza como intérprete de línea de comandos en sistemas operativos UNIX.
Los parámetros del usuario obedecen al tiempo de espera de verificación del agente; si se alcanza el tiempo de espera, el proceso ejecutado por los parámetros de usuario finaliza.

Ver también:

-   [Tutorial paso a paso
    ](/manual/config/items/userparameters/extending_agent) en
    haciendo uso de parámetros de usuario
- [Ejecución de comando](/manual/appendix/command_execution)

[comment]: # ({/727ff70a-9a4b2756})

[comment]: # ({53dfad45-53dfad45})
##### Ejemplos de parámetros de usuario simples

Un comando simple:

    Parámetro de usuario = ping, eco 1

El agente siempre devolverá '1' para un artículo con la tecla 'ping'.

Un ejemplo más complejo:

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

El agente devolverá '1', si el servidor MySQL está activo, '0', de lo contrario.

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

[comment]: # ({b24ec504-e619711f})
#### Parámetros de usuario flexibles

Los parámetros de usuario flexibles aceptan parámetros con la tecla. De esta manera un
El parámetro de usuario flexible puede ser la base para crear varios artículos.

Los parámetros de usuario flexibles tienen la siguiente sintaxis:

    UserParameter=clave[*],comando

|Parámetro|Descripción|
|--|--------|
|**Clave**|Clave de elemento único. El \[\*\] define que esta tecla acepta parámetros entre corchetes.<br>Los parámetros se proporcionan al configurar el elemento.|
|**Comando**|Comando a ejecutar para evaluar el valor de la clave.<br>*Solo para parámetros de usuario flexibles*:<br>Puede usar referencias posicionales $1…$9 en el comando para referirse al parámetro respectivo en la clave del elemento.<br>Zabbix analiza los parámetros encerrados en \[ \] de la clave del elemento y sustituye $1,...,$9 en el comando en consecuencia.<br>$0 será sustituido por el comando original (antes de la expansión de $0,...,$9) que se ejecutará.<br>Las referencias posicionales se interpretan independientemente de si están encerradas entre comillas dobles (") o simples (').<br>Para usar referencias posicionales sin modificar, especifique un valor doble signo de dólar - por ejemplo, awk '{print $$2}'. En este caso, '$$2' en realidad se convertirá en '$2' al ejecutar el comando.|

::: notaimportante
Se buscan referencias posicionales con el signo $
para y reemplazado por el agente Zabbix solo para parámetros de usuario flexibles. Para
parámetros de usuario simples, dicho procesamiento de referencia se omite y,
por lo tanto, no es necesario citar ningún signo $.
:::

::: notaimportante
Ciertos símbolos no están permitidos en los parámetros de usuario
por defecto. Ver
[Parámetros de usuario no seguros](/manual/appendix/config/zabbix_agentd)
documentación para una lista completa.
:::

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

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

Algo muy simple:

    Parámetro de usuario = ping [*], eco $ 1

Podemos definir una cantidad ilimitada de elementos para monitorear, todos con formato
hacer ping\[algo\].

- ping\[0\] - siempre devolverá '0'
- ping\[aaa\] - siempre devolverá 'aaa'

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

[comment]: # ({db2a6e16-db2a6e16})
##### Ejemplo 2

¡Agreguemos más sentido!

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

Este parámetro se puede usar para monitorear la disponibilidad de MySQL
base de datos. Podemos pasar nombre de usuario y contraseña:

    mysql.ping[zabbix,nuestra_contraseña]

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

[comment]: # ({dd3ac3fa-dd3ac3fa})
##### Ejemplo 3

¿Cuántas líneas coinciden con una expresión regular en un archivo?

    Parámetro de usuario = wc [*], grep -c "$ 2" $ 1

Este parámetro se puede utilizar para calcular el número de líneas en un archivo.

    wc[/etc/contraseña,raíz]
    wc[/etc/servicios,zabbix]

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

[comment]: # ({f7cfa576-a5d86054})
#### Resultado del comando

El valor de retorno del comando es una salida estándar junto con un error estándar producido por el comando.

::: noteimportant
Una métrica que devuelve texto (carácter, registro o tipo de información de texto) no dejará de ser compatible en caso de que se produzca un error estándar.
:::

El valor de retorno está limitado a 16 MB (incluidos los espacios en blanco finales truncados); También se aplican [límites de la base de datos](/manual/config/items/item#text-data-limits).

Los parámetros de usuario que devuelven texto (carácter, registro o tipo de información de texto) también pueden devolver un espacio en blanco.
En caso de un resultado no válido, la métrica dejará de ser compatible.

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