5 Parámetros de usuario
Resumen
A veces puede que desee ejecutar una comprobación de agent que no viene predefinida con Zabbix. Aquí es donde los parámetros de usuario ayudan.
Puede escribir un comando que recupere los datos que necesita e incluirlo en el parámetro de usuario en el archivo de configuración de agent (parámetro de configuración 'UserParameter').
Un parámetro de usuario tiene la siguiente sintaxis:
UserParameter=<key>,<command>
Como puede ver, un parámetro de usuario también contiene una clave. La clave será necesaria al configurar un item. Introduzca una clave de su elección que sea fácil de referenciar (debe ser única dentro de un host).
Reinicie el agent o use la opción de control en tiempo de ejecución del agent para que se aplique el nuevo parámetro, por ejemplo:
zabbix_agentd -R userparameter_reload
Luego, al configurar un item, introduzca la clave para referenciar el comando del parámetro de usuario que desea ejecutar.
Los parámetros de usuario son comandos ejecutados por el agent de Zabbix. Tenga en cuenta que se pueden devolver hasta 16 MB de datos antes de los pasos de preprocesamiento del valor del item.
/bin/sh se utiliza como intérprete de línea de comandos en sistemas operativos UNIX. Los parámetros de usuario obedecen el tiempo de espera de la comprobación del agent; si se alcanza el tiempo de espera, el proceso bifurcado del parámetro de usuario se termina.
Véase también:
- Tutorial paso a paso sobre el uso de parámetros de usuario
- Ejecución de comandos
Ejemplos de parámetros de usuario simples
Un comando simple:
UserParameter=ping,echo 1
El agente siempre devolverá '1' para una métrica con la clave 'ping'.
Un ejemplo más complejo:
UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive
El agente devolverá '1' si el servidor MySQL está activo, '0' en caso contrario.
Parámetros de usuario flexibles
Los parámetros de usuario flexibles aceptan parámetros con la clave. De este modo, un parámetro de usuario flexible puede servir como base para crear varios items.
Los parámetros de usuario flexibles tienen la siguiente sintaxis:
UserParameter=key[*],command
| Parameter | Description |
|---|---|
| Key | Clave única del item. El [*] define que esta clave acepta parámetros dentro de los corchetes. Los parámetros se proporcionan al configurar el item. |
| Command | Comando que se ejecutará para evaluar el valor de la clave. Solo para parámetros de usuario flexibles: Puede usar referencias posicionales $1…$9 en el comando para referirse al parámetro correspondiente en la clave del item. Zabbix analiza los parámetros encerrados entre [ ] de la clave del item y sustituye $1,...,$9 en el comando en consecuencia. $0 se sustituirá por el comando original (antes de expandir $0,...,$9) que se ejecutará. Las referencias posicionales se interpretan independientemente de si están entre comillas dobles (") o simples ('). Para usar las referencias posicionales sin modificar, especifique un doble signo de dólar; por ejemplo, awk '{print $$2}'. En este caso, $$2 se convertirá realmente en $2 al ejecutar el comando. |
Las referencias posicionales con el signo $ son buscadas y reemplazadas por Zabbix agent solo para parámetros de usuario flexibles. Para los parámetros de usuario simples, este procesamiento de referencias se omite y, por lo tanto, no es necesario ningún escape del signo $.
De forma predeterminada, ciertos caracteres no están permitidos en los parámetros de usuario. Para ver la lista completa de caracteres, consulte UnsafeUserParameters.
Ejemplo 1
Algo muy simple:
UserParameter=ping[*],echo $1
Podemos definir un número ilimitado de métricas para monitorizar, todas con el formato ping[algo].
- ping[0] - siempre devolverá '0'
- ping[aaa] - siempre devolverá 'aaa'
Ejemplo 2
¡Vamos a añadir más sentido!
UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive
Este parámetro puede usarse para monitorizar la disponibilidad de la base de datos MySQL. Podemos pasar el nombre de usuario y la contraseña:
mysql.ping[zabbix,our_password]
Ejemplo 3
¿Cuántas líneas coinciden con una expresión regular en un archivo?
UserParameter=wc[*],grep -c "$2" $1
Este parámetro puede usarse para calcular el número de líneas en un archivo.
wc[/etc/passwd,root]
wc[/etc/services,zabbix]
Resultado del comando
El valor de retorno del comando es la salida estándar junto con la salida de error estándar producida por el comando.
Un item que devuelve texto (información de tipo carácter, log o texto) no pasará a no compatible en caso de una salida de error estándar.
El valor de retorno está limitado a 16 MB (incluido el espacio en blanco final, que se trunca); también se aplican los límites de la base de datos.
Los parámetros de usuario que devuelven texto (información de tipo carácter, log o texto) también pueden devolver un espacio en blanco. En caso de un resultado no válido, el item pasará a no compatible.