Serverüberwachung · 4 min read · Oct 15, 2025

Serverüberwachung Mit munin Und monit Auf Debian Etch - Seite 2

4 Installieren Und Konfigurieren von monit

Um monit zu installieren, machen wir Folgendes:

apt-get install monit

Jetzt müssen wir /etc/monit/monitrc bearbeiten. Die Standard-/etc/monit/monitrc hat viele Beispiele, und Sie finden weitere Konfigurationsbeispiele auf http://www.tildeslash.com/monit/doc/examples.php. In meinem Fall möchte ich proftpd, sshd, mysql, apache und postfix überwachen, ich möchte die monit-Weboberfläche auf Port 2812 aktivieren, ich möchte eine HTTPS-Weboberfläche, ich möchte mich mit dem Benutzernamen admin und dem Passwort test in die Weboberfläche einloggen, und ich möchte, dass monit E-Mail-Benachrichtigungen an root@localhost sendet, sodass meine Datei so aussieht:

cp /etc/monit/monitrc /etc/monit/monitrc_orig  
cat /dev/null > /etc/monit/monitrc  
vi /etc/monit/monitrc

| set daemon 60 set logfile syslog facility log_daemon set mailserver localhost set mail-format { from: [email protected] } set alert root@localhost set httpd port 2812 and SSL ENABLE PEMFILE /var/certs/monit.pem allow admin:test check process proftpd with pidfile /var/run/proftpd.pid start program = "/etc/init.d/proftpd start" stop program = "/etc/init.d/proftpd stop" if failed port 21 protocol ftp then restart if 5 restarts within 5 cycles then timeout check process sshd with pidfile /var/run/sshd.pid start program "/etc/init.d/ssh start" stop program "/etc/init.d/ssh stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout check process mysql with pidfile /var/run/mysqld/mysqld.pid group database start program = "/etc/init.d/mysql start" stop program = "/etc/init.d/mysql stop" if failed host 127.0.0.1 port 3306 then restart if 5 restarts within 5 cycles then timeout check process apache with pidfile /var/run/apache2.pid group www start program = "/etc/init.d/apache2 start" stop program = "/etc/init.d/apache2 stop" if failed host www.example.com port 80 protocol http and request "/monit/token" then restart if cpu is greater than 60% for 2 cycles then alert if cpu > 80% for 5 cycles then restart if totalmem > 500 MB for 5 cycles then restart if children > 250 then restart if loadavg(5min) greater than 10 for 8 cycles then stop if 3 restarts within 5 cycles then timeout check process postfix with pidfile /var/spool/postfix/pid/master.pid group mail start program = "/etc/init.d/postfix start" stop program = "/etc/init.d/postfix stop" if failed port 25 protocol smtp then restart if 5 restarts within 5 cycles then timeout |

(Bitte stellen Sie sicher, dass Sie nur Prozesse überprüfen, die tatsächlich auf Ihrem Server existieren - andernfalls wird monit nicht gestartet. Das heißt, wenn Sie monit anweisen, Postfix zu überprüfen, aber Postfix nicht auf dem System installiert ist, wird monit nicht gestartet.)

Die Konfigurationsdatei ist ziemlich selbsterklärend; wenn Sie sich über eine Option unsicher sind, werfen Sie einen Blick in die monit-Dokumentation: http://www.tildeslash.com/monit/doc/manual.php

Im Apache-Teil der monit-Konfiguration finden Sie dies:

| if failed host www.example.com port 80 protocol http and request "/monit/token" then restart |

was bedeutet, dass monit versucht, eine Verbindung zu www.example.com auf Port 80 herzustellen und die Datei /monit/token zuzugreifen, die /var/www/www.example.com/web/monit/token ist, da das Dokumentenstammverzeichnis unserer Website /var/www/www.example.com/web ist. Wenn monit keinen Erfolg hat, bedeutet das, dass Apache nicht läuft, und monit wird versuchen, es neu zu starten. Jetzt müssen wir die Datei /var/www/www.example.com/web/monit/token erstellen und einen zufälligen String hineinschreiben:

mkdir /var/www/www.example.com/web/monit  
echo "hello" > /var/www/www.example.com/web/monit/token

Als Nächstes erstellen wir das pem-Zertifikat (/var/certs/monit.pem), das wir für die SSL-verschlüsselte monit-Weboberfläche benötigen:

mkdir /var/certs  
cd /var/certs

Wir benötigen eine OpenSSL-Konfigurationsdatei, um unser Zertifikat zu erstellen. Sie kann so aussehen:

vi /var/certs/monit.cnf

| # Erstelle RSA-Zertifikate - Server RANDFILE = ./openssl.rnd [ req ] default_bits = 1024 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type [ req_dn ] countryName = Country Name (2 letter code) countryName_default = MO stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Monitoria localityName = Locality Name (eg, city) localityName_default = Monittown organizationName = Organization Name (eg, company) organizationName_default = Monit Inc. organizationalUnitName = Organizational Unit Name (eg, section) organizationalUnitName_default = Dept. of Monitoring Technologies commonName = Common Name (FQDN of your server) commonName_default = server.monit.mo emailAddress = Email Address emailAddress_default = [email protected] [ cert_type ] nsCertType = server |

Jetzt erstellen wir das Zertifikat so:

openssl req -new -x509 -days 365 -nodes -config ./monit.cnf -out /var/certs/monit.pem -keyout /var/certs/monit.pem
openssl gendh 512 >> /var/certs/monit.pem
openssl x509 -subject -dates -fingerprint -noout -in /var/certs/monit.pem
chmod 700 /var/certs/monit.pem

Danach bearbeiten wir /etc/default/monit, um den monit-Daemon zu aktivieren. Ändern Sie startup auf 1 und setzen Sie CHECK_INTERVALS auf das Intervall in Sekunden, in dem Sie möchten, dass monit Ihr System überprüft. Ich wähle 60 (Sekunden), sodass meine Datei so aussieht:

vi /etc/default/monit

| # Vorgaben für das monit-Initskript # wird von /etc/init.d/monit geladen # installiert in /etc/default/monit durch Wartungsskripte # Fredrik Steen <[email protected]> # Sie müssen diese Variable setzen, damit monit startet startup=1 # Um die Intervalle zu ändern, in denen monit ausgeführt werden soll, kommentieren Sie diese Variable aus # und ändern Sie sie. CHECK_INTERVALS=60 |

Schließlich können wir monit starten:

/etc/init.d/monit start

Jetzt zeigen Sie mit Ihrem Browser auf https://www.example.com:2812/ (stellen Sie sicher, dass Port 2812 nicht von Ihrer Firewall blockiert wird), melden Sie sich mit admin und test an, und Sie sollten die monit-Weboberfläche sehen. Sie sollte so aussehen:

(Hauptbildschirm)

(Apache-Statusseite)

Je nach Ihrer Konfiguration in /etc/monit/monitrc wird monit Ihre Dienste neu starten, wenn sie ausfallen, und Benachrichtigungs-E-Mails senden, wenn sich die Prozess-IDs der Dienste ändern usw.

Viel Spaß!

5 Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.