5 Paramètres utilisateurs

Aperçu

Parfois, vous pouvez vouloir exécuter une vérification d'agent qui n'est pas prédéfinie dans Zabbix. C'est là que les paramètres utilisateur sont 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 dans le 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 à l'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 que jusqu'à 16 Mo de données peuvent être renvoyés avant les étapes de prétraitement de la valeur de l'é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'attente de la vérification de l'agent ; si le délai est atteint, le processus de paramètre utilisateur forké est terminé.

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 façon, 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
Parameter Description
Key Clé d'élément unique. Le [*] définit que cette clé accepte des paramètres entre les crochets.
Les paramètres sont fournis lors de la configuration de l'élément.
Command 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 [ ] de 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 l'expansion de $0,...,$9) à exécuter.
Les références positionnelles sont interprétées qu'elles soient placées entre guillemets doubles (") ou simples (').
Pour utiliser les références positionnelles sans modification, spécifiez un double signe dollar - par exemple, awk '{print $$2}'. Dans ce cas, $$2 deviendra réellement $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, aucune mise entre guillemets 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.