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¶m=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¶m=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.

5 gedachten over “Monitoring door Monit voor Raspberry Pi en Domoticz

  • Pingback:Monitor domoticz – Blogs Created by Daag van der Meer

  • 10 oktober 2019 om 23:54
    Permalink

    Hallo,

    Dank voor alle moeite die je in website stopt om ons allemaal wat te leren over Domotica!
    Deze website heb ik inmiddels herhaaldelijk geraadpleegd.

    Monit heb ik nu draaien op mijn RPi 3 en nu zou ik graag ” Homebridge” er mee willen monitoren.
    Is dit een goed idee of kan dit ook handiger?

    Met vriendelijke groet,

    Jeroen

    Beantwoorden
  • 12 oktober 2019 om 16:25
    Permalink

    Hallo Joost,

    Met veel interesse je website aan het lezen.
    Veel onderwerpen al gebruikt voor mijn eigen Domoticz die draait op een Raspberry Pi3.

    Heb nu de door jou aangegeven service Monit geïnstalleerd om de server constant te laten draaien.
    Heb een vraagje, hoe gaat het wegschrijven van de Monit logs nu in combinatie met de acties die ik heb uitgevoerd op advies van jou stuk over het voorkomen van een corrupte micro sd?
    Worden de monit logs hier automatisch in opgenomen of moet de volgende parameter worden aangepast: logfile /var/log/monit.log

    Daarnaast wil ik ook Fail2Ban installeren om zodoende mijn Domoticz server te beschermen.
    In de beschrijving voor die installatie heb je aangeven dat bij #DAEMON_ARGS=”$DAEMON_ARGS -log /tmp/domoticz.txt” de # weg moet.

    Echter in de beschrijving in het stuk over het voorkomen van van een corrupte sd card staat dat #DAEMON_ARGS=”$DAEMON_ARGS -log /tmp/domoticz.txt” moet worden veranderd in DAEMON_ARGS=”$DAEMON_ARGS -log /tmp/log/domoticz.log -loglevel=normal”.

    Kunnen deze twee instructies wel worden gecombineerd?

    Bedankt voor al je nuttige info en hopelijk heb je de tijd om mijn vragen te beantwoorden.

    Mvrg Harald

    Beantwoorden
    • 12 oktober 2019 om 21:25
      Permalink

      Ze kunnen wel gecombineerd worden, maar je moet dan bij beiden .log óf .txt gebruiken.

      Beantwoorden

Geef een reactie

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