Einführung
Monit ist ein hilfreiches Programm, das Serverprogramme automatisch überwacht und verwaltet, um sicherzustellen, dass sie nicht nur dauerhaft online bleiben, sondern auch, dass Dateigröße, Prüfsumme oder Berechtigungen immer korrekt sind.
# yum install monit ( To install monit On RedHat/CentOS/Fedora/ ) # sudo apt-get install monit ( To install monit On Ubuntu/Debian )
Konfiguriere den Monit-Daemon
# vi /etc/monit.conf ( Configuration file in RedHat/CentOS/Fedora/ ) # vi /etc/monit/monitrc ( Configuration file in Ubuntu/Debian )
HINZUFÜGEN DER DIENSTE JETZT ZUR MONIT-KONFIGURATIONSDATEI
Öffnen Sie die Konfigurationsdatei, z. B.
For RedHat/CentOS/Fedora (# vi /etc/monit.conf) For Ubuntu/Debian (# vi /etc/monit/monitrc)
Löschen Sie alle Zeilen in der Konfigurationsdatei und fügen Sie die unten angegebenen Zeilen hinzu. (jede Zeile wird unten kurz definiert)
Daemon-Intervall festlegen
Dies ist das Intervall (in Sekunden), in dem Monit seine Tests durchführt. Der von Ihnen gewählte Wert hängt davon ab, wie viele Tests Sie definieren. Wenn wir diesen Wert ändern, müssen Sie Monit neu starten.
# check services at 30 seconds of intervals set daemon 30
Protokolldatei setzen
# set logfile syslog facility log_daemon set logfile /var/log/monit.log
Überprüfen Sie die Speichernutzungseinstellungen und starten Sie neu
##To check the memory usage and restart the services. check system localhost if memory usage > 93% then exec "/usr/local/bin/httpd-start"aus
Überprüfen Sie den HTTPD-Dienst und starten Sie neu
Hier wird der Httpd-Dienst von monit überwacht, d. h. wenn der Dienst nicht läuft oder wenn der loadavg-Wert höher ist, führt monit den httpd-Dienst aus, um neu zu starten
#To check the Httpd service and restart the services. # Httpd check process httpd with pidfile /var/run/httpd/httpd.pid start program = "/usr/local/bin/httpd-start" stop program = "/usr/local/bin/httpd-kill" if loadavg (1min) greater than 10 for 1 cycles then restart
Prüfen Sie den mysqld-Dienst und starten Sie neu
Hier wird der Mysqld-Dienst von monit überwacht, d. h. wenn der Dienst nicht läuft oder wenn der loadavg-Wert größer ist, führt monit den Mysql-Dienst aus, um neu zu starten
#To check the mysql service and restart the services. # mysqld check process mysqld with pidfile /var/run/mysqld/mysqld.pid start program = "/etc/init.d/mysqld start" stop program = "/etc/init.d/mysqld stop" if memory usage > 70% for 1 cycles then restart if failed host 127.0.0.1 port 3306 then restart if loadavg (1min) greater than 5 for 1 cycles then restart
Auf die gleiche Weise können wir jeden Dienst hinzufügen, der von monit überwacht und neu gestartet werden muss
Sobald alle Dienste in der Konfigurationsdatei hinzugefügt wurden. Die Konfigurationsdatei sieht wie folgt aus..
# check services at 2-minute intervals set daemon 30 # set logfile syslog facility log_daemon set logfile /var/log/monit.log ##To check the memory usage and restart the services. check system localhost if memory usage > 93% then exec "/usr/local/bin/httpd-start" #To check the Httpd service and restart the services. # Httpd check process httpd with pidfile /var/run/httpd/httpd.pid start program = "/usr/local/bin/httpd-start" stop program = "/usr/local/bin/httpd-kill" if loadavg (1min) greater than 10 for 1 cycles then restart #To check the mysql service and restart the services. # mysqld check process mysqld with pidfile /var/run/mysqld/mysqld.pid start program = "/etc/init.d/mysqld start" stop program = "/etc/init.d/mysqld stop" if memory usage > 70% for 1 cycles then restart if failed host 127.0.0.1 port 3306 then restart if loadavg (1min) greater than 5 for 1 cycles then restart
HINWEIS:Da wir die folgende Zeile in der Konfigurationsdatei definiert haben
Programm starten =„/usr/local/bin/httpd-start“
Programm stoppen =„/usr/local/bin/httpd-kill“
Wir müssen die Skripte httpd-start, httpd-kill hinzufügen, d.h.
Erstellen Sie eine Datei mit dem folgenden Befehl und fügen Sie die folgenden Zeilen hinzu
vi /usr/local/bin/httpd-start
#!/bin/bash /usr/bin/killall -9 httpd; /usr/bin/killall -9 php-cgi; /usr/bin/ipcs |grep apache | /bin/cut -d" " -f2 | /usr/bin/xargs /usr/bin/ipcrm sem {}; /bin/sleep .5; /usr/sbin/apachectl start #/sbin/swapoff -a #/sbin/swapon -a exit 0;
Jetzt speichern und beenden mit dem Befehl
:wq!
Jetzt dasselbe für das httpd-kill-Skript
Erstellen Sie eine Datei mit dem folgenden Befehl und fügen Sie die folgenden Zeilen hinzu
vi /usr/local/bin/httpd-kill
#!/bin/bash /usr/bin/killall -9 httpd; /usr/bin/ipcs |grep apache | /bin/cut -d" " -f2 | /usr/bin/xargs /usr/bin/ipcrm sem {}; /bin/sleep .5; exit 0;
die gleiche Art und Weise müssen wir für Mysqld-Skripte definieren..
Nachdem Sie alle Programme für die Überwachung konfiguriert haben, überprüfen Sie die Monit-Syntax auf Fehler. Wenn Fehler gefunden werden, beheben Sie diese, es ist nicht so schwer herauszufinden, was schief gelaufen ist. Verwenden Sie den folgenden Befehl
# monit -t
Wenn die Monit-Konfigurationsdatei korrekt ist, erhalten Sie eine Meldung wie „Steuerdateisyntax OK“, oder wenn Sie keine Fehler sehen,
Nachdem Sie alle möglichen Fehler behoben haben, können Sie den folgenden Befehl eingeben, um den Monit-Dienst zu starten.
# /etc/init.d/monit start
Überprüfen des Monit-Dienstes
Sie können überprüfen, ob der Monit-Dienst gestartet wurde, indem Sie die Protokolldatei überprüfen.
# tail -f /var/log/monit
Beispielprotokollausgabe ist wie folgt
[BDT Apr 3 03:06:04] info : Starting monit HTTP server at [localhost:2812] [BDT Apr 3 03:06:04] info : monit HTTP server started [BDT Apr 3 03:06:04] info : 'e2enetworks.com' Monit started [BDT Apr 3 03:06:04] error : 'nginx' process is not running [BDT Apr 3 03:06:04] info : 'nginx' trying to restart [BDT Apr 3 03:06:04] info : 'nginx' start: /etc/init.d/nginx