Gerade auf Debian-Servern eignet sich Monit hervorragend, um wichtige Dienste wie Apache, Nginx, MariaDB, PostgreSQL, Redis oder eigene Anwendungen permanent im Blick zu behalten.
In diesem Beitrag zeige ich Schritt für Schritt, wie du Monit unter Debian 13 installierst, absicherst und für die Überwachung wichtiger Dienste konfigurierst.
Was ist Monit?
Monit überwacht:
- Prozesse
- Dienste
- Dateien
- Verzeichnisse
- Netzwerkschnittstellen
- CPU-Auslastung
- RAM-Verbrauch
- Festplattenbelegung
Bei Problemen kann Monit:
- Dienste automatisch neu starten
- E-Mails versenden
- Skripte ausführen
- Ereignisse protokollieren
Dadurch eignet sich Monit perfekt als zusätzliche Sicherheitsebene für Server und Webanwendungen.
System aktualisieren
Vor der Installation solltest du dein System auf den aktuellen Stand bringen:
sudo apt update sudo apt upgrade -y
Monit installieren
Unter Debian 13 befindet sich Monit direkt in den Paketquellen:
sudo apt install monit -y
Version prüfen:
monit -V
Beispiel:
This is Monit version 5.34
Dienst aktivieren
Monit automatisch beim Systemstart aktivieren:
sudo systemctl enable monit sudo systemctl start monit
Status prüfen:
sudo systemctl status monit
Beispiel:
Active: active (running)
Grundkonfiguration
Die Hauptkonfiguration befindet sich unter:
/etc/monit/monitrc
Datei öffnen:
sudo nano /etc/monit/monitrc
Überwachungsintervall anpassen
Standardmäßig prüft Monit alle 120 Sekunden.
Empfehlung:
set daemon 60
Damit erfolgt die Überwachung jede Minute.
Webinterface aktivieren
Monit besitzt ein integriertes Webinterface.
Folgende Zeilen aktivieren:
set httpd port 2812
use address localhost
allow localhost
allow admin:SehrSicheresPasswort
Alternativ für den Zugriff aus dem Netzwerk:
set httpd port 2812
allow admin:SehrSicheresPasswort
Aus Sicherheitsgründen sollte der Zugriff möglichst über eine Firewall oder einen Reverse Proxy abgesichert werden.
Konfiguration testen
Vor jedem Neustart:
sudo monit -t
Erwartete Ausgabe:
Control file syntax OK
Monit neu starten
sudo systemctl restart monit
Zugriff auf das Webinterface
Browser öffnen:
http://SERVER-IP:2812
Nach der Anmeldung erscheint die Statusübersicht aller überwachten Dienste.
Apache überwachen
Neue Konfigurationsdatei erstellen:
sudo nano /etc/monit/conf-enabled/apache2
Inhalt:
check process apache2 with pidfile /run/apache2/apache2.pid
start program = "/usr/bin/systemctl start apache2"
stop program = "/usr/bin/systemctl stop apache2"
if failed port 80 protocol http then restart
if 5 restarts within 5 cycles then timeout
Aktivieren:
sudo monit reload
Nginx überwachen
sudo nano /etc/monit/conf-enabled/nginx
Inhalt:
check process nginx with pidfile /run/nginx.pid
start program = "/usr/bin/systemctl start nginx"
stop program = "/usr/bin/systemctl stop nginx"
if failed port 80 protocol http then restart
MariaDB überwachen
sudo nano /etc/monit/conf-enabled/mariadb
check process mariadb with pidfile /run/mysqld/mysqld.pid
start program = "/usr/bin/systemctl start mariadb"
stop program = "/usr/bin/systemctl stop mariadb"
if failed port 3306 protocol mysql then restart
PostgreSQL überwachen
sudo nano /etc/monit/conf-enabled/postgresql
check process postgresql with pidfile /run/postgresql/15-main.pid
start program = "/usr/bin/systemctl start postgresql"
stop program = "/usr/bin/systemctl stop postgresql"
if failed port 5432 then restart
Hinweis:
Die PID-Datei kann je nach PostgreSQL-Version anders heißen.
Prüfen:
ls -la /run/postgresql/
Redis überwachen
sudo nano /etc/monit/conf-enabled/redis
check process redis with pidfile /run/redis/redis-server.pid
start program = "/usr/bin/systemctl start redis-server"
stop program = "/usr/bin/systemctl stop redis-server"
if failed port 6379 then restart
Speicherüberwachung
RAM-Auslastung überwachen:
check system localhost
if memory usage > 85% then alert
CPU-Überwachung
check system localhost
if cpu usage > 90% for 5 cycles then alert
Festplattenüberwachung
check filesystem rootfs with path /
if space usage > 90% then alert
E-Mail-Benachrichtigungen einrichten
SMTP-Server konfigurieren:
set mailserver smtp.example.com port 587
username "monitor@example.com"
password "Passwort"
using tlsv12
Empfänger festlegen:
set alert admin@example.com
Monit sendet nun automatisch Warnmeldungen.
Status prüfen
Alle überwachten Dienste anzeigen:
sudo monit summary
Beispiel:
Process 'apache2' OK Process 'mariadb' OK Process 'redis' OK Filesystem 'rootfs' OK System 'localhost' OK
Einzelnen Dienst prüfen
sudo monit status apache2
oder:
sudo monit status mariadb
Konfiguration neu laden
Nach Änderungen:
sudo monit reload
Firewall anpassen
Falls das Webinterface extern erreichbar sein soll:
UFW-Beispiel:
sudo ufw allow 2812/tcp
Sicherer ist jedoch ein Zugriff ausschließlich über:
- VPN
- SSH-Tunnel
- Reverse Proxy mit Authentifizierung
Typische Einsatzszenarien
Monit eignet sich besonders für:
- Webserver (Apache, Nginx)
- Datenbanken (MariaDB, PostgreSQL)
- Redis
- Elasticsearch
- Nextcloud
- Zammad
- Eigene Python-Anwendungen
- Docker-Container
- Hintergrundprozesse und Cron-Jobs
Monit gehört zu den nützlichsten Werkzeugen für Linux-Administratoren. Die Installation unter Debian 13 ist in wenigen Minuten erledigt, der Ressourcenverbrauch ist minimal und die automatische Wiederherstellung ausgefallener Dienste kann viele Ausfälle verhindern.
Besonders in Kombination mit UFW, Fail2ban und einem regelmäßigen Backup-Konzept entsteht eine solide Grundlage für einen sicheren und stabilen Debian-Server. Monit überwacht dabei nicht nur einzelne Dienste, sondern auch die allgemeine Gesundheit des Systems – und informiert dich frühzeitig, bevor aus kleinen Problemen echte Ausfälle werden.