
Sommaire
Introduction
Après avoir exploré le déploiement de Zabbix avec Grafana, nous nous concentrerons cette fois sur la configuration des alertes avec Telegram.
Telegram est une application de messagerie instantanée basée sur le cloud, compatible avec plusieurs plates-formes, reconnue pour ses chats chiffrés de bout en bout et ses appels téléphoniques vidéo.
L’objectif est de configurer Zabbix et Telegram pour envoyer des notifications à Telegram lorsqu’une alerte de type « Haut » et « Désastre » est déclenchée. Pour cela, nous utiliserons un webhook officiel de Telegram. Un webhook est une fonction de rappel basée sur le protocole HTTP, permettant à deux interfaces de programmation d’application (API) d’établir une communication légère et orientée événements.
Configuration de Telegram
Pour commencer, il est nécessaire de créer un compte directement sur Telegram. Je ne vais pas détailler toutes les étapes d’inscription car elles sont assez classiques.
Une fois votre compte en votre possession, suivez les étapes suivantes pour créer un bot sur Telegram :
Ouvrez une discussion avec BotFather : dans l’onglet de recherche, recherchez simplement « BotFather » et assurez-vous de sélectionner le compte avec la pastille authentifiée.

Ensuite, échangez avec le BotFather en échangeant cette suite de commandes :
Entrée 1 : /newbot
Entrée 2 : Le nom de votre bot
Entrée 3 : Le nom de votre bot suivi de « bot »
La sortie générera une clé d’API à conserver en lieu sûr.
Voici un résumé en image des actions :

Ensuite, pour obtenir un canal de communication, il est nécessaire de connaître votre ID utilisateur.
Lancez une conversation avec le bot @idbot cette fois-ci.

Utilisez la commande /start suivie de /getid pour obtenir votre ID utilisateur.

Ouvrez une conversation avec le bot que vous avez créé précédemment (utilisez le même principe de recherche que pour les étapes précédentes). Assurez-vous de le faire au moins une fois, sinon cela ne fonctionnera pas.

Configuration de Zabbix
Pour autoriser les alertes dans Zabbix, allez dans Alertes>Actions>Actions de déclencheur puis Activé l’option à droite de l’écran
Nous pouvons constater que c’est dans l’état « Activé »

Ensuite, allez directement dans « Report problems to Zabbix administrators », puis dans le sous-onglet « Opérations », sélectionnez « Édition ».
Vérifiez si la case « Envoyez uniquement à » est configurée sur « – Tous – » si vous souhaitez recevoir tous les types de médias. Si vous préférez uniquement les notifications Telegram, sélectionnez l’option Telegram.
Ensuite, rendez-vous dans « Alertes » et sélectionnez « Types de média ». Activez le Webhook « Telegram » et procédez à son édition.
J’édite une seule variable qui contient le token envoyé par BotFather.

Il est possible de vérifier le bon fonctionnement en utilisant le bouton « Test » situé à droite de la sélection des webhooks.
Dans l’interface, remplacez la valeur « To » par l’ID du compte Telegram, puis cliquez sur « Test ».

Si tout est correctement configuré, vous recevrez le test sans problème.

Ensuite, nous allons ajouter un média à notre utilisateur (dans ce cas, « admin »). Cela permettra d’envoyer les alertes correspondant aux conditions du média Telegram à cet utilisateur. Pour ce faire, allez dans « Utilisateurs », sélectionnez « Utilisateurs », puis choisissez « Admin » et accédez à l’onglet « Média ».
Ajoutez un nouveau média intitulé « Telegram », en renseignant l’ID de votre compte utilisateur. Sélectionnez uniquement les valeurs « Haut » et « Désastre », ce qui signifie que vous serez alerté uniquement pour les déclencheurs correspondant à ces niveaux.

Configuration des sévérités
Pour configurer les sévérités des alertes, vous pouvez éditer les paramètres directement dans les templates, ce qui affectera tous les hôtes associés.
Dans mon cas, je souhaite être alerté lorsque l’un de mes hôtes Linux redémarre. La sévérité par défaut est « Avertissement », mais comme nous avons configuré les alertes pour « Haut » et « Désastre », il est nécessaire de modifier cette valeur pour garantir qu’une alerte soit déclenchée lorsque la condition est remplie.
Pour ce faire, cliquez sur l’alerte correspondante et procédez à la modification nécessaire.

Dans le champ « Sévérité », il suffit de sélectionner « Haut » ou « Désastre » puis de valider.

Pour vérifier que vous recevez correctement les alertes, générez une alerte en redémarrant l’un de vos serveurs liés à ce template. Vous devriez recevoir une notification correspondant à la configuration que vous avez mise en place.
Voici un exemple d’alerte reçue avec sa confirmation de résolution :
Conclusion
Nous avons configuré Zabbix pour envoyer des alertes via Telegram en utilisant un webhook. Après avoir créé un bot Telegram et obtenu l’ID utilisateur nécessaire, nous avons activé les alertes dans Zabbix et configuré le webhook pour Telegram. Nous avons également ajusté les paramètres des sévérités des alertes pour s’assurer qu’elles sont envoyées correctement. Enfin, nous avons vérifié le bon fonctionnement en redémarrant un serveur et en recevant les alertes configurées. Avec ces étapes, vous serez en mesure de recevoir des notifications précises et en temps réel directement sur Telegram.