Recevoir des mails quand il y a des problèmes c'est cool, recevoir des SMS c'est encore plus cool ! Bon bien sûr, il ne faut pas envoyer des SMS pour toutes les alertes, pour l'instant c'est configuré sur l'action qui nous prévient également par mail : ce sont les alertes de niveau maximal : disaster.
Pour l'instant on utilise le modem sur discovery, cependant si on veut recevoir des SMS quand le serveur est down, je conseille de mettre le modem sur Houston au U7, et d'utiliser les scripts d'alertes personnalisés de zabbix avec gammu sur houston pour avoir la fonction sms indépendante des deux serveurs de prods.
Voici la solution utilisée actuellement :
Un modem 4G est branché en USB sur Discovery au U1, le package usb-modeswitch
est installé. Il permet de passer le modem usb de Mass-Storage device en Network Modem. Pour que le périphérique soit toujours reconnu comme un modem, le fichier /etc/usb_modeswitch.d/12d1\:1506 (VendorID:ProductID) contient :
TargetVendor=0x12d1 TargetProductList="1506" MessageContent="55534243123456780000000000000011062000000101000100000000000000"
Ensuite comme zabbix est pour l'instant sur un LXC, on configure le LXC pour récupérer l'accès au device, en l'occurence /dev/ttyUSB1 (pour savoir quel tty on doit utiliser on peut essayer d'interagir avec le modem en utilisant gammu). Dans le fichier /etc/pve/lxc/ID.conf :
lxc.cgroup.devices.allow = c MAJOR:MINOR rwm
Vous pouvez trouvez les majeurs et mineurs en faisant un ls -l
sur /dev
par exemple :
-------------------------MAJOR, MINOR------------------- crw-rw---- 1 root dialout 4, 95 juin 4 19:55 ttyS31 crw-rw---- 1 root dialout 4, 68 juin 4 19:55 ttyS4 crw-rw---- 1 root dialout 4, 69 juin 4 19:55 ttyS5 crw-rw---- 1 root dialout 4, 70 juin 4 19:55 ttyS6 crw-rw---- 1 root dialout 4, 71 juin 4 19:55 ttyS7 crw-rw---- 1 root dialout 4, 72 juin 4 19:55 ttyS8 crw-rw---- 1 root dialout 4, 73 juin 4 19:55 ttyS9 crw-rw---- 1 root dialout 188, 0 juin 13 20:24 ttyUSB0 crw-rw---- 1 root dialout 188, 1 juin 13 20:23 ttyUSB1
Un fois que c'est fait il faut créer le fichier correspondant sur le CT, on fait donc un petit service qui se lance une fois :
start) mknod /dev/ttyUSB1 c 188 1 chown zabbix:zabbix /dev/ttyUSB1 ;; stop) rm /dev/ttyUSB1 ;;
On aurait pu grâce à une VM rendre le modem uniquement et directement accessible par la VM
Dans administration→Media types, on active le SMS et on configure le média pour utiliser la bonne interface série.
Ensuite dans les actions que vous devez déjà connaitre, on rajoute juste un nouveau message vers un groupe d'utilisateur, par SMS.
On doit absolument décocher la case default message
, pour personnaliser le message et le rendre le plus court possible tout en restant assez informatif. Sinon les messages excéderont la taille maximale. Je conseille {TRIGGER.NAME} on {HOST.NAME}
Les utilisateurs de Zabbix n'ont plus qu'à configurer leur numéro de téléphone dans leur profil (section Media>Add ) pour pouvoir recevoir des alertes. On peut même choisir quels niveaux d'alertes on veut recevoir (utile quand on prévient les utilisateurs pour plusieurs niveaux d'alertes, càd quand la configuration de l'action restreind moins les alertes)
Un forfait Free à 2€ devrait suffire, à priori on n'aura pas plus d'une dizaine, voire vingtaine de correspondants uniques par mois.
Comme on a mis le modem 4G en mode modem sur le serveur, une nouvelle interface réseau est apparue (dans mon cas : wwx0c5b8f279a64) si vous l'activez vous obtiendrez un accès à un réseau NATé vers Internet en 4G. D'où l'intérêt de mettre ça sur une VM et non un CT (un attaquant active l'interface et n'est pas filtré vers l'extérieur).
On a mis un mot de passe fort sur le réseau WiFi, on a pas réussi à le désactiver. Faudrait sans doute flasher le modem avec autre chose que le système fournit par Orange, mais merci quand même à no_pseudo pour nous l'avoir donné.
— Romain Cherré 2018/06/13 21:30
Au moment où j'ai écrit cet article la politique de sévérité des alertes n'est pas vraiment bien configurée : il y a les alertes de températures, les disques à moins de 1% d'espace libre, et sans doute autre chose. Cependant, on a de la chance, la sévérité des alertes est réglée par défaut sur celle des templates (heureusement) mais on peut la modifier par hôte sans modifier le template (et donc tous les hôtes associés). Donc on pourra par exemple mettre une sévérité plus forte pour un agent zabbix qui ne répond plus sur les serveurs physiques de prod.