Met ‘Monit’ kun je bewaken dat je Domoticz server altijd goed draait en dus al je Domotica taken goed kan uitvoeren. Een fijne gedachte.
Ik heb in een eerdere blog uitgelegd hoe ik ‘Monit’ gebruik om diverse processen van mijn Debian Server in te gaten te houden en automatisch te restarten indien nodig. Dit kun je natuurlijk ook gebruik voor Domoticz. Het is immers belangrijk dat deze altijd draait, want anders is dat slecht voor de WAF.
Om ‘Monit’ te installeren gebruik je het volgende commando op je Raspberry Pi waarop Domoticz draait:
sudo apt-get install monit
Hierna moet je nog wat instellingen plegen in de file ‘/etc/monit/monitrc’
Hierbij heb ik 3 dingen aangepast:
- Check Interval
- Secure Web-Interface met identificatie
- Domoticz Process checken
Zie hieronder de 3 stukken die ik respectievelijk heb veranderd/toegevoegd:
set daemon 120 # check services at 2-minute intervals with start delay 60 # delay the first check by 60 seconds # (by default Monit check immediately after Monit start)
set httpd port 2812 ssl enable pemfile /opt/domoticz/server_cert.pem allow admin:password # require user 'admin' with password 'password'
# Domoticz Process check process domoticz_process 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"
Om ‘Monit’ tenslotte te starten voer je het volgende commando uit:
sudo /etc/init.d/monit restart
Je kunt de web-interface van ‘Monit’ bereiken op:
http://<ip-adres raspberry pi>:2812
Alhoewel ik het tot nu nog nooit heb meegemaakt dat Domoticz is gecrasht is het toch wel een fijne gedachte dat je zeker weet dat Domoticz altijd draait.
Hallo Henri,
Ik krijg Monit niet gestart omdat er iets met de credentials van de pem file is. pi is de eigenaar van de pem file (664) maar krijg dit in monitrc niet aan de gang. Kan jij zo zien wat ik fout doe?
Sep 08 17:40:52 domoticz systemd[1]: Starting LSB: service and resource monitoring daemon…
Sep 08 17:40:52 domoticz monit[31480]: Starting daemon monitor: monitThe SSL server PEM file ‘/opt/domoticz/server_cert.pem’ must be owned by you.
Sep 08 17:40:52 domoticz monit[31480]: /etc/monit/monitrc:158: SSL server PEM file permissions check failed ‘allow’
Sep 08 17:40:52 domoticz monit[31480]: failed!
Zeer waarschijnljk is net je Let’s Encrypt certificaat verlopen. Zorg dat je een actuele versie hebt staan. Verder lijkt het er op dat je niet de goede eigenaar:groep hebt staan voor je file /opt/domoticz/server_cert.pem. Dit kun je checken met commando:
sudo ls -la /opt/domoticz/
In mijn geval is root:root hier de eigenaar. Dit kun je eventueel veranderen met commando:
sudo chown root:root /opt/domoticz/server_cert.pem
ok. Heeft die wijziging van pi:pi geen consequentie’s voor de uitvoer van het script voor hernieuwen van het certificaat? Overigens is deze nog geldig!
Het is allemaal afhankelijk onder welke gebruiker je Domoticz draait. Bij mij draait Domotiz en Monit onder gebruiker ‘root’ (kun je checken met commando
sudo ps aux | grep domoticz
ensudo ps aux | grep monit
).Ja hier ook beide als root.
Monit service start nu wel maar geen uitvoer op ip:2812
Waarschijnlijk heb je in monit ook delay ingebouwd (b.v. 60 of 120 seconden). Wacht tenminste deze tijd voordat je monit ip:2812 checkt.
Top. Draait nu. Dank je voor de hulp!
Test gedaan en domoticz service handmatig gestopt. Na een minuutje wordt deze keurig weer gestart!
Starting monit geeft error. Checking de syntax geeft het volgende resultaat.
Hoe kom ik aan deze server_cert.pem file?
Ik gebruik Let’s Encrypt voor SSL van Domoticz. Zie dit blog artikel met meer informatie hoe ik dat geconfigureerd heb.
Ik zie dat je voor Let’s Encrypt een domein-naam nodig hebt of is daar ookeen workaround voor. Domein-naam kost jaarlijks een abonnements prijs.
Voor Let’s Encrypt heb je inderdaad een domein-naam nodig. Je kunt ook gewoon Domoticz zonder SSL draaien lokaal draaien en eventueel van buitenaf benaderen met een VPN verbinding. In dat geval kun je het volgende stukje uit mijn artikel hierboven weglaten:
Eerst wireguard geinstalleerd,nu kan ik met VPN nar mij RPi Domoticz draait zonder SSL. Met Monit kan ik de boel in de gaten houden. Toppie
Ik probeer Monit te installeren maar krijg onderstaande foutmelding. Moet er wil bij vertellen dat ik Monit voor de 2de keer probeer te installeren. Iemand in idee hoe ik dit kan oplossen?
Het is lastig te bepalen met bovenstaande informatie wat er mis is, maar het lijkt te maken hebben met je configuratie-file (‘/etc/monit/monitrc’). Probeer eens de default versie hiervan (‘/etc/monit/monitrc.dpkg-dist’) te gebruiken en kijk of je nog steeds een foutmelding krijgt dan.
Ik ben niet zo goed thuis in deze materie. Ik voor alleen commando’s uit die in je blog staan en hoop dat alles dan goed komt :). Zou je me kunnen vertellen wat ik precies moet doen?
Alvast bedankt.
Als het dan werkt dan kun je nogmaals proberen om de file ‘/etc/monit/monitrc’ aan te passen zoals aangegeven in mijn blog.
Als ik het commando uitvoer dan krijg ik onderstaande melding:
Vreemd dat de default ‘monitrc’ file bij jou niet aanwezig is. Wellicht iets verkeerd gaan bij installeren. Attached mijn (zipped) default ‘monitrc’ file.
Ik heb de file in /etc/monit gekopieerd maar het probleem blijft hetzelfde. Is het mogelijk om Monit van scratch af opnieuw te installeren en zo ja hoe kan ik deze de-installeren en opnieuw installeren.
Alvast bedankt voor je hulp.
Je verwijdert monit volledig met de volgende commando’s:
Alles werkt nu. Bedankt voor je hulp
Fijn Ron, bedankt voor terugkoppeling.