This is a translation of the original English documentation page. Help us make it better.

5 Paramètres utilisateurs

Aperçu

Parfois, vous souhaiterez peut-être exécuter une vérification d'agent qui n'est pas prédéfinie avec Zabbix. C'est là que les paramètres utilisateur viennent à votre aide.

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=<clé>,<commande>

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 qui sera facilement référençable (elle doit être unique au sein de l'hôte).

Redémarrez l'agent ou utilisez l'option de contrôle d'exécution de l'agent pour sélectionner le nouveau paramètre, par ex. g.:

zabbix_agentd -R userparameter_reload

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

Les paramètres utilisateur sont des commandes exécutées par l'agent Zabbix. Jusqu'à 512 Ko de données peuvent être renvoyées avant les étapes de prétraitement des éléments. Notez cependant que la valeur textuelle pouvant éventuellement être stockée dans la base de données est limitée à 64 Ko sur MySQL (voir les informations sur les autres bases de données dans le tableau).

/bin/sh est utilisé comme interpréteur de ligne de commande sous les systèmes d'exploitation UNIX. Les paramètres utilisateur obéissent au délai de vérification de l'agent ; si le délai d'attente est atteint, le processus de paramètre utilisateur dupliqué est terminé.

Voir également :

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 dans la clé. Ainsi, 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=clé[*],commande
Paramètre Description
Clé Clé d'élément unique. Le [*] définit que cette clé accepte les paramètres entre parenthèses.
Les paramètres sont donnés 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 de position $1…$9 dans la commande pour faire référence au paramètre respectif dans la clé de l'élément.
Zabbix analyse les paramètres 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 de position sont interprétées qu'elles soient entre guillemets doubles (") ou simples (').
Pour utiliser des références de position inchangées, spécifiez un double signe dollar - par exemple, awk '{print $$2}' Dans ce cas $$2 se transformera en $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 de référence est ignoré et, par conséquent, toute citation du signe $ est inutile.

Certains symboles ne sont pas autorisés dans les paramètres utilisateur par défaut. Voir la documentation UnsafeUserParameters pour une liste complète.

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 est la sortie standard avec l'erreur standard.

Un élément de texte (caractère, journal ou information de type texte) ne deviendra pas non supporté en cas de sortie d'erreur standard.

Les paramètres utilisateurs qui revoient du texte (caractère, journal ou information de type texte) peuvent renvoyer des espaces. En cas de retour incorrect, l'élément deviendra non supporté.