3 Scripts d’alerte personnalisés

Aperçu

Si vous n’êtes pas satisfait des types de média existants pour l’envoi d’alertes, il existe une autre façon de procéder. Vous pouvez créer un script qui gérera la notification à votre manière.

Les scripts d’alerte personnalisés sont exécutés sur le serveur Zabbix. Ces scripts doivent être placés dans le répertoire spécifié par le paramètre AlertScriptsPath du fichier de configuration du serveur.

Voici un exemple de script d’alerte personnalisé :

#!/bin/bash

to=$1
subject=$2
body=$3
host=$4
value=$5

cat <<EOF | mail -s "$subject" "$to"
$body

Host: $host
Value: $value
EOF

Zabbix vérifie le code de sortie des commandes et scripts exécutés. Tout code de sortie différent de 0 est considéré comme une erreur d’exécution de commande. Dans ce cas, Zabbix tentera de répéter l’exécution ayant échoué.

Les variables d’environnement ne sont ni conservées ni créées pour le script, elles doivent donc être gérées explicitement.

Configuration

Pour configurer des scripts d’alerte personnalisés en tant que type de média :

  1. Accédez à Alertes → Types de média.
  2. Cliquez sur Créer un type de média.

L’onglet Type de média contient les attributs généraux du type de média :

Tous les champs de saisie obligatoires sont marqués d’un astérisque rouge.

Les paramètres suivants sont spécifiques au type de média script :

Parameter Description
Nom du script Saisissez le nom du fichier de script (par exemple, notification.sh) situé dans le répertoire spécifié dans le paramètre de configuration du serveur AlertScriptsPath.
Paramètres du script Ajoutez des paramètres de script facultatifs qui seront transmis au script en tant qu’arguments de ligne de commande dans l’ordre où ils sont définis.

Les paramètres du script prennent en charge les macros {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE}, ainsi que toutes les macros prises en charge dans les notifications, ainsi que les macros utilisateur.

Consultez les paramètres communs des types de média pour plus de détails sur la configuration des messages par défaut et des options de traitement des alertes.

Même si un script d’alerte n’utilise pas les messages par défaut, les modèles de message pour les types d’opération utilisés par ce type de média doivent tout de même être définis. Sinon, une notification ne sera pas envoyée.

Si plusieurs types de média script sont configurés, ces scripts peuvent être traités en parallèle par les processus d’alerte. Le nombre total de processus d’alerte est limité par le paramètre StartAlerters du fichier de configuration du serveur.

Test

Pour tester un type de média de script configuré :

  1. Localisez le script concerné dans la liste des types de média.

  2. Cliquez sur Test dans la dernière colonne de la liste ; un formulaire de test s’ouvrira dans une fenêtre contextuelle. Le formulaire de test contiendra le même nombre de paramètres que ceux configurés pour le type de média de script.

  3. Modifiez les valeurs des paramètres du script si nécessaire. La modification n’affecte que la procédure de test ; les valeurs réelles ne seront pas modifiées.

  4. Cliquez sur Test.

Lors du test d’un type de média de script configuré, {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} et les macros utilisateur seront résolues à leurs valeurs, mais les macros liées aux événements (par exemple, {HOST.HOST}, {ITEM.LASTVALUE}, etc.) ne seront pas résolues, car lors du test, il n’existe aucun événement associé dont les détails pourraient être récupérés. Notez également que les macros présentes dans les macros {ALERT.SUBJECT} et {ALERT.MESSAGE} ne seront pas non plus résolues. Par exemple, si la valeur de {ALERT.SUBJECT} est composée de « Problem: {EVENT.NAME} », alors la macro {EVENT.NAME} ne sera pas résolue.

Support utilisateur

Une fois le type de média configuré, accédez à la section Utilisateurs → Utilisateurs et modifiez un profil utilisateur en attribuant ce type de média à l'utilisateur. Les étapes de configuration du support utilisateur, communes à tous les types de médias, sont décrites sur la page Types de médias.

Notez que lors de la définition du support utilisateur, le champ Envoyer à ne peut pas être vide. Si ce champ n'est pas utilisé dans le script d'alerte, saisissez n'importe quelle combinaison de caractères pris en charge afin de contourner les exigences de validation.