Plus pratique que d’utiliser la commande mailx qui n’est pas forcément une information en temps réelle, la notification par Telegram est une bonne alternative. L’API de Telegram permet bien plus de choses que l’API de Pushbullet que j’utilisais précédemment. Vous pouvez notamment séparer les canaux de communication, faire un chat de groupe etc.

Mais le plus gros avantage étant que le canal est sécurisé car chiffré et vous n’avez pas de tiers qui peut tout lire comme avec pushbullet.

Dans le cas de cette notification, mon besoin est simple, distinguer les serveurs à la maison, de ceux en VPS via différent chatBot. Pour plus de visibilité sur les types d’alerte, les emoji sont bien utiles et complètement gérés par Telegram et par ce script.

Je vous partage donc le lien du projet github du script Telegram qui peut envoyer des notifications autant sous Debian que Ubuntu. Il peut sans doute tourner sous d’autres distributions, mais je n’ai pas testé.

Créer un compte Telegram

Rien de plus simple, vous installez Telegram sur votre Android ou autre smartphone. Il est nécessaire que votre compte soit vérifié par un numéro de téléphone. SI vous n’avez pas de smartphone, il est encore possible d’utiliser bluestacks pour émuler facilement un Android.

Une fois le compte créé, vous pouvez très bien installer le client sur votre Linux ou votre Windows pour recevoir les notifications. Il y a même un client CLI de disponible via le paquet telegram-cli.

Ajouter le contact @BotFather

Pour créer un bot il faut ajouter le contact @BotFather.

Vous faites la commande /start.

/start @BotFather

Vous demandez un nouveau bot via /newbots et suivez les instructions :

  • Vous lui donnez un nom utile
  • Vous créez un utilisateur qui doit être unique, le mieux étant de préfixer vos bots par votre pseudo ou un mot pas trop commun pour être certains d’avoir ce pseudo unique.
  • Vous récupérez le token pour joindre l’API et vous le gardez secret.
/newbot ajout d'un nouveau bot avec nom et username pour récupérer la clé API

Récupérer l’IP de chat

Sur votre compte Telegram, vous ajoutez votre nouveau bot comme contact et vous faites un /start. C’est important pour avoir un contenu et pouvoir récupérer l’ID du chat.

Avec votre navigateur ou curl, aller à l’adresse : https://api.telegram.org/bot<YourBOTToken>/getUpdates

Vous aurez un message du genre en json, ce qui nous intéresse est le chat: {"id":XXXXXXX :

{"ok":true,"result":[{"update_id":551184892,
"message":{"message_id":2,"from":{"id":1648779299,"is_bot":false,"first_name":"xxxx","language_code":"fr"},"chat":{"id":XXXXXXXXX,"first_name":"xxxx","type":"private"},"date":1670947477,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}]}%

Récupérer le script telegram-notification-linux

  • Vous récupérez le projet git
  • Vous copiez telegram-notification.sh dans /usr/local/bin/ et appliquez un chmod +x
  • Vous copiez telegram-notification.conf.example dans /usr/local/etc/telegram-notification.conf
  • Vous modifiez telegram-notification.conf pour y ajouter votre accessToken et votre chatID
git clone https://github.com/belgotux/telegram-notification-linux.git
cd telegram-notification-linux/
cp telegram-notification.sh /usr/local/bin/
chmod +x /usr/local/bin/telegram-notification.sh
vim telegram-notification.conf

Utilisation du script de notification Telegram

Voici différents cas d’utilisation et le résultat:

telegram-notification.sh -m "Space disc critic" -t "test" -c
telegram-notification.sh -m "Space disc high" -t "test" -w 
telegram-notification.sh -m "service blabla need attention" -w
telegram-notification.sh -m "simple report"
telegram-notification.sh -m "simple report with title" -t "my title \xF0\x9F\x90\xA2" 
notification telegram envoyée par serveur Debian
Summary
Notification Bot Telegram sous Linux Debian
Article Name
Notification Bot Telegram sous Linux Debian
Description
Script de notification via un Bot Telegram utilisable sous Linux Debian ou Ubuntu avec différents niveaux d'alertes
Author