3 Scripts d’alerte personnalisés

Vue d'ensemble

Si vous n'êtes pas satisfait des types de média existants pour l'envoi des alertes, il existe une autre façon de le faire. 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 se trouver 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 de command execution. Dans de tels 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 comme type de média :

  1. Accédez à Alerts → Media types.
  2. Cliquez sur Create media type.

L'onglet Media type 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
Script name Entrez le nom du fichier de script (par exemple, notification.sh) situé dans le répertoire spécifié par le paramètre de configuration du serveur AlertScriptsPath.
Script parameters Ajoutez des paramètres de script facultatifs qui seront transmis au script en tant qu'arguments de ligne de commande dans l'ordre dans lequel ils sont définis.

Les paramètres de script prennent en charge les macros {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE}, ainsi que toutes les macros prises en charge dans les notifications, de même 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, aucune notification ne sera 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 prendront leurs valeurs, mais les macros liées aux événements (par exemple, {HOST.HOST}, {ITEM.LASTVALUE}, etc.) ne seront pas résolues, car pendant le test il n'existe aucun événement associé à partir duquel obtenir les détails. Notez que les macros contenues 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édia, sont décrites sur la page Types de média.

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 pour contourner les exigences de validation.