5 Paramètres utilisateurs

Aperçu

Il peut arriver que vous souhaitiez exécuter une vérification d’agent qui n’est pas prédéfinie dans Zabbix. C’est là que les paramètres utilisateur deviennent utiles.

Vous pouvez écrire une commande qui récupère les données dont vous avez besoin et l’inclure dans le paramètre utilisateur du fichier de configuration de l’agent (paramètre de configuration « UserParameter »).

Un paramètre utilisateur a la syntaxe suivante :

UserParameter=<key>,<command>

Comme vous pouvez le voir, un paramètre utilisateur contient également une clé. La clé sera nécessaire lors de la configuration d’un élément. Saisissez une clé de votre choix, facile à référencer (elle doit être unique au sein d’un hôte).

Redémarrez l’agent ou utilisez l’option de contrôle d’exécution de l’agent pour prendre en compte le nouveau paramètre, par exemple :

zabbix_agentd -R userparameter_reload

Ensuite, lors de la configuration d’un élément, saisissez la clé pour référencer la commande du paramètre utilisateur que vous souhaitez exécuter.

Les paramètres utilisateur sont des commandes exécutées par l’agent Zabbix. Notez qu’il est possible de renvoyer jusqu’à 16 Mo de données avant les étapes de prétraitement des valeurs d’élément.

/bin/sh est utilisé comme interpréteur de ligne de commande sous les systèmes d’exploitation UNIX. Les paramètres utilisateur respectent le délai d’expiration des vérifications d’agent ; si ce délai est atteint, le processus de paramètre utilisateur créé est arrêté.

Voir aussi :

Exemples de paramètres utilisateur simples

Une commande simple :

UserParameter=ping,echo 1

L'agent renverra toujours '1' pour une élément avec la clé 'ping'.

Un exemple plus complexe :

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

L'agent renverra '1', si le serveur MySQL est actif, '0' - sinon.

Paramètres utilisateur flexibles

Les paramètres utilisateur flexibles acceptent des paramètres avec la clé. De cette manière, un paramètre utilisateur flexible peut servir de base à la création de plusieurs éléments.

Les paramètres utilisateur flexibles ont la syntaxe suivante :

UserParameter=key[*],command
Paramètre Description
Clé Clé d’élément unique. Le [*] définit que cette clé accepte des paramètres entre crochets.
Les paramètres sont fournis lors de la configuration de l’élément.
Commande Commande à exécuter pour évaluer la valeur de la clé.
Pour les paramètres utilisateur flexibles uniquement :
Vous pouvez utiliser des références positionnelles $1…$9 dans la commande pour faire référence au paramètre correspondant dans la clé de l’élément.
Zabbix analyse les paramètres placés entre [ ] dans la clé de l’élément et remplace $1,...,$9 dans la commande en conséquence.
$0 sera remplacé par la commande d’origine (avant le développement de $0,...,$9) à exécuter.
Les références positionnelles sont interprétées qu’elles soient ou non placées entre guillemets doubles (") ou simples (').
Pour utiliser les références positionnelles sans modification, indiquez un double signe dollar ; par exemple, awk '{print $$2}'. Dans ce cas, $$2 deviendra effectivement $2 lors de l’exécution de la commande.

Les références positionnelles avec le signe $ sont recherchées et remplacées par l’agent Zabbix uniquement pour les paramètres utilisateur flexibles. Pour les paramètres utilisateur simples, ce traitement des références est ignoré et, par conséquent, aucun échappement du signe $ n’est nécessaire.

Certains caractères ne sont pas autorisés par défaut dans les paramètres utilisateur. Pour la liste complète des caractères, voir UnsafeUserParameters.

Exemple 1

Quelque chose de très simple :

UserParameter=ping[*],echo $1

Nous pouvons définir un nombre illimité d'éléments pour la surveillance de tous les formats ping[quelque chose].

  • ping[0] - retournera toujours '0'
  • ping[aaa] - retournera toujours 'aaa'
Exemple 2

Ajoutons un peu de sens !

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

Ce paramètre peut être utilisé pour superviser la disponibilité de la base de données MySQL. Nous pouvons passer le nom d'utilisateur et le mot de passe :

mysql.ping[zabbix,our_password]
Exemple 3

Combien de lignes correspondent à une expression régulière dans un fichier ?

UserParameter=wc[*],grep -c "$2" $1

Ce paramètre peut être utilisé pour calculer le nombre de ligne dans un fichier.

wc[/etc/passwd,root]
wc[/etc/services,zabbix]

Résultat de la commande

La valeur de retour de la commande correspond à la sortie standard ainsi qu’à la sortie d’erreur standard produites par la commande.

Un élément qui renvoie du texte (informations de type caractère, journal ou texte) ne deviendra pas non pris en charge en cas de sortie d’erreur standard.

La valeur de retour est limitée à 16 Mo (y compris les espaces de fin qui sont tronqués) ; les limites de la base de données s’appliquent également.

Les paramètres utilisateur qui renvoient du texte (informations de type caractère, journal ou texte) peuvent également renvoyer des espaces. En cas de résultat non valide, l’élément deviendra non pris en charge.