Gammu est un outils en ligne de commande reposant sur la libGammu qui propose une interface avec des téléphones mobiles ou d’autres équipements GSM pour par exemple, envoyer des SMS depuis un shell linux. Il existe également un démon gammu-smsd reposant sur la même librairie. L’utilisation du démon permet également de gérer la réception des SMS sous forme de fichier, dans une arborescence définie dans son fichier de configuration. L’objet ici étant d’envoyer des alertes SMS avec gammu.
Voici un script minimaliste exécuté par mon copain zabbix utilisant SSH et l’authentification basée sur une paire de clés RSA (pour le côté non-interactif, pas besoin de taper un mot de passe) pour exécuter une commande gammu sur ma passerelle SMS pour alerter de quelque chose.
#!/bin/bash
#
TO=$1
MSG=$2
ssh pi@smsgw "gammu sendsms TEXT $TO -text '$MSG'"
exit
Une commande gammu est exécutée à travers SSH avec 2 paramètres, le destinataire et le message à envoyer. Le pré-requis pour que tout ça se passe bien, c’est que la clé publique de l’utilisateur qui va exécuter le script (ici l’utilisateur « zabbix » de mon serveur zabbix) soit dans la liste des clés autorisées à faire du SSH pour le compte de l’utilisateur « pi » sur la machine smsgw.
CI-dessous, le même script, mais utilisant le démon gammu-smsd à la place de la commande autonome gammu.
#!/bin/bash
#
TO=$1
MSG=$2
ssh pi@smsgw "gammu-smsd-inject TEXT $TO -text '$MSG'"
exit
Comme d’habitude, on pose ce script dans le répertoire où zabbix s’attend à trouver les script d’alerte (par exemple /usr/lib/zabbix/alertscripts), et on s’assure qu’il est exécutable par l’utilisateur « zabbix ».
Il ne reste plus alors qu’à créer un nouveau média dans l’interface d’administration de zabbix, et de l’assigner à notre utilisateur, de manière similaire à cet article. Comme prédis dans celui-ci, je me suis assemblé une nouvelle passerelle SMS basée sur un raspberry pi 3B+ et la très sympathique carte nadhat de garatronic, tout ceci dans le cadre de mon projet micro-dc 7U / 40 cm.
o/