Monitoring door Monit voor Raspberry Pi en Domoticz

Nadat we Raspbian en Domoticz helemaal juist hebben geconfigureerd willen we er natuurlijk zeker van zijn dat de software 24/7 blijft draaien. Aangezien we aan de Raspberry geen monitor hebben aangesloten gaan we het programma Monit voor Raspberry Pi installeren en configureren. Monit monitort automatisch server programma’s en herstart ze indien nodig. Daarnaast kun je instellen dat je bepaalde meldingen via een email wilt ontvangen en de processen kun je bekijken/instellen va een web interface.

Het installeren van Monit gaat via onderstaande commando:

sudo apt-get install monit

Wanneer Monit geïnstalleerd is kun je programma’s en processen toevoegen die gecontroleerd moeten worden. Deze programma’s en processen voeg je toe aan het Monit configuratie bestand. Monit is redelijk simpel te configureren. Standaard is Monit zo ingesteld, dat je elke 2 minuten de services controleert en wegschrijft in het log bestand “/var/log/monit.log”.

We gaan het configuratie-bestand van Monit aanpassen met het commando:

sudo nano /etc/monit/monitrc

Pas de volgende parameters aan:

set daemon 300 -> Controleer services elke 300 seconden (5 minuten)
with start delay 300 -> Start controleren van de services na 300 seconden (dit gaat zgn. bootloops tegen, als Domoticz nog niet gestart is, waardoor het tijd krijg om volledig te starten.)
set logfile /var/log/monit.log -> Het is aan te raden om de locatie te wijzigen naar een gemounte pen drive of HDD. Of sla het op in een RAM-drive (dit i.v.m. behoud van de SD Kaart).

Emailnotificatie’s

Je kunt Monit instellen om je per e-mail te informeren. Het is aan te raden om dit te doen, zodat je een goed overzicht behoud van de status van je systeem.

Gmail configuratie

set mailserver smtp.gmail.com port 587
username "yourmailaddress@gmail.com" password "MYPASSWORD"
using tlsv1
with timeout 30 seconds
set alert email@gmail.com
If you use Gmail with 2-step verification, you first have to create an App password

Outlook.com configuratie

set mailserver smtp-mail.outlook.com port 587
username yourmailaddress@outlook.com password MYPASSWORD
using ssl
set alert youremailaddess@outlook.com
set mail-format { from: yourmailaddress@outlook.com }

POP3 configuratie

set mailserver smtp.yourprovider.com port 25
with timeout 30 seconds
set mail-format { from: email@provider.com }
set alert email@provider.com

Om te testen of Monit de email kan versturen geef je commando sudo monit reload in, je zou dan een mail moeten ontvangen.

Webserver

Monit komt standaard met een eigen ingebouwde webserver, welke op poort 2812 draait. Om de webinterface te configureren, gaan we op zoek naar het deel dat begint met set httpd port 2812. Wanneer je bij dit onderdeel het commentaar weghaald, het juiste IP adres invult en een gebruiker met wachtwoord toevoegd, dan kan Monit al in gebruik genomen worden. Als je in het wachtwoord leestekens gebruikt kan dit problemen geven.

set httpd port 2812
use address 0.0.0.0 # only accept connection from localhost (comment to connect from other hosts)
allow 0.0.0.0/0.0.0.0 # allow anybody to connect to the server and
allow admin:monit # require user 'admin' with password 'monit', change if your system is accessible from internet
allow 192.168.0.1/255.255.255.0 #This will only allow hosts coming from the local network (change x.x.x.1 to your own LAN IP-range).
allow localhost #use in combination with local network to allow command line to work

Zodra bovenstaande goed geconfigureerd is, moeten we Monit herstarten:

sudo service monit reload

Als alles goed is gegaan, kan je naar de Monit web interface, door te gaan naar (vervang IP adres door het IP adres van de Raspberry Pi). Geef vervolgens de geconfigureerde gebruikersnaam en wachtwoord in.

http://192.168.x.x:2812

Je scherm zal er nu ongeveer zo uitzien:

Monitoren van Domoticz

Zodra de web services gereed zijn kunnen we Domoticz gaan toevoegen aan de configuratie, zodat de status van Domoticz in de monitoring meeloopt. Hiervoor moeten we het configuratiebestand weer aanpassen:

sudo nano /etc/monit/monitrc

Om bijvoorbeeld te zorgen dat Domoticz blijft werken, kun je gebruik maken van /etc/init.d commando’s om Domoticz te stoppen en/of starten. Onderstaande is een voorbeeld configuratie, dat je aan /etc/monit/monitrc kunt toevoegen. Doe dit voor de ## Includes.

## Domoticz

check process domoticz with pidfile /var/run/domoticz.pid
start program = "/etc/init.d/domoticz.sh start"
stop program = "/etc/init.d/domoticz.sh stop"
if failed
url http://127.0.0.1:8080/json.htm?type=command&param=getversion
and content = '"status" : "OK"'
for 2 cycles
then restart
if 5 restarts within 5 cycles then exec "/sbin/reboot"
if cpu usage > 70% for 3 cycles then restart

Wanneer je het bestand hebt opgeslagen gaan we controleren of we de juiste syntax hebben gebruikt:

sudo monit -t

Als er geen problemen zijn (of de mogelijke fouten verbeterd zijn) dan kan je Monit starten zodat alle geconfigureerde programma’s gemonitord worden.

sudo monit reload
sudo monit start all

Monit op de achtergrond draaien als service:

sudo service monit start

Om de status van Monit te bekijken geef dan onderstaande commando:

sudo monit status

Dit laat ons onderstaande details zien:

pi@raspberrypi:~ $ sudo monit status
The Monit daemon 5.9 uptime: 20m

Process 'domoticz'
 status Running
 monitoring status Monitored
 pid 662
 parent pid 1
 uid 0
 effective uid 0
 gid 0
 uptime 9d 4h 15m
 children 0
 memory kilobytes 54.1 MB
 memory kilobytes total 54.1 MB
 memory percent 5.5%
 memory percent total 5.5%
 cpu percent 0.2%
 cpu percent total 0.2%
 port response time 0.003s to 127.0.0.1:8088/json.htm?type=command&param=getversion [HTTP via TCP]
 data collected Fri, 31 Mar 2017 17:25:57

System 'raspberrypi'
 status Running
 monitoring status Monitored
 load average [0.22] [0.22] [0.19]
 cpu 0.9%us 0.4%sy 0.0%wa
 memory usage 137.0 MB [14.0%]
 swap usage 0.0 B [0.0%]
 data collected Fri, 31 Mar 2017 17:25:57

pi@raspberrypi:~ $

Wanneer alle bovenstaande stappen zijn uitgevoerd, zal zowel de Raspberry Pi als ook Domoticz gemonitord worden en de processen automatisch herstart worden indien dit nodig is.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *