Départ en vacances : superviser sa domotique avec Monit

Étiquettes:

MonitAfin de partir tranquille en congés, il faut s’assurer que la domotique va continuer à fonctionner après un plantage. Quelques fonctions restent en effet importantes en cas d’absence:

  • l’arrosage automatique,
  • éteindre les lampes Philips hue après une coupure secteur,
  • faire aboyer les Squeezebox en cas d’intrusion 😉

Bien que FHEM soit très stable, il arrive qu’il plante ou ne réponde plus, et si rien n’est prévu il n’assure donc plus ses fonctions.

Monit

Monit est un bon petit système de supervision Open Source qui fait parfaitement l’affaire et permet de superviser quelques éléments clefs d’un serveur Linux.

Pour ce cas d’utilisation, les fonctions suivantes sont utiles :

  • vérification qu’un processus serveur donné non seulement est bien lancé mais aussi qu’il est à l’écoute, avec un test du port TCP ou UDP correspondant.
  • relance
  • alerte (par mail ou autre)

Je ne vais pas décrire dans le détail son installation ni son paramètrage. Il y a plein de tutoriaux pour ça (voir par exemple ubuntu-fr ou memo-linux et le wiki est bien fait.

Exemples de configuration pour ma config domotique

Voici juste un complément aux exemples de configuration, pour ma domotique :

Supervision FHEM

Pour la supervision du serveur FHEM, on teste la présence du processus ainsi que

#
## fhem
#
check process fhem with matching "fhem.pl"
 start program = "/etc/init.d/fhem start"
 stop program = "/etc/init.d/fhem stop"
 if failed host 127.0.0.1 port 7072 type tcp then alert

Pour celle du processus lepresenced (test de présence avec des tags Bluetooth Low Energy – cf tutorial) :

#
## lepresenced
#
check process lepresenced with pidfile /var/run/lepresenced.pid
 start program = "/etc/init.d/fhem-ble start"
 stop program = "/etc/init.d/fhem-ble stop"
 restart program = "/etc/init.d/fhem-ble restart"
 if failed host 127.0.0.1 port 5333 type tcp then alert

Supervision LMS (Squeezebox Server)

#
## logitechmediaserver
#
 check process logitechmediaserver with pidfile /var/run/logitechmediaserver.pid
 start program = "/etc/init.d/logitechmediaserver start"
 stop program = "/etc/init.d/logitechmediaserver stop"
 if failed host 127.0.0.1 port 9090 type tcp then alert

Voilà ce que ça donne dans l’interface web :

monit, LMS et FHEM

Supervision cubieboard 2 avec FHEM, LMS, NTP et dnsmasq

Possibilités

Monit