Monit ist ein Serverüberwachungsprogramm, das die auf Ihrem System laufenden Prozesse überprüfen kann, um sicherzustellen, dass sie immer online sind und innerhalb angemessener CPU- und Speichergrenzen laufen. Es kommt auch mit einer Webschnittstelle, um Ihr System zu überwachen.
Was macht Monit?
Einfach, Monit überprüft alle zwei Minuten ein bestimmtes Verfahren (standardmäßig) um zu sehen wie es funktioniert. Verfolgt die Ressourcennutzung und kann Maßnahmen ergreifen, wenn ein Fehler auftritt. Dazu gehören das Neustarten von abgestürzten Prozessen und das Neustarten von Prozessen, die zu viele Ressourcen verbrauchen.
Monit stellt sein Verhalten vollständig über Konfigurationsdateien ein. Hier ist die Standardkonfiguration für MySQL als Beispiel:
check process mysql with pidfile /var/run/mysqld/mysqld.pid start program = "/usr/sbin/service mysql start" mit Timeout 60 seconds stop program = "/usr/sbin/service mysql Stopp" mit Timeout 60 seconds if totalmem > 400 MB für 5 cycles then alert if totalmem > 600 MB für 5 cycles then restart if cpu > 50% zum 5 cycles then alert if cpu > 90% zum 5 cycles then restart if 3 Neustarts innerhalb 5 Zyklen und dann Timeout
Monit ist so konfiguriert, dass die laufende MySQL-Prozedur überwacht wird. Wenn es fällt, Sie können es mit dem Symbol start program =
Konfiguration. Wenn MySQL anfängt, zu viele Ressourcen zu verwenden, kann automatisch neu gestartet werden, auch wenn Sie zunächst per E-Mail gewarnt werden.
Es kann auch so konfiguriert werden, dass es Ihr System als Ganzes überwacht und Sie warnt, wenn Ihr Server ungewöhnlich ausgelastet ist..
check system wp01 if loadavg(5Mindest) > 1 then alert if memory usage > 90% zum 5 cycles then alert if cpu usage (Benutzer) > 90% zum 5 Zyklen dann Alarm
Alles, was Monit überwacht, kann über das Webinterface angezeigt werden, Wird auf dem Port ausgeführt 2812 standardmäßig.
Zur selben Zeit, Sie können Daten von mehreren Hosts an einem Ort anzeigen mit dem Dienstprogramm M / Monit, Sie benötigen eine Lizenz, aber es ist kostenlos zu versuchen.
VERBUNDEN: So richten Sie Slack-Benachrichtigungen für geringen Speicherplatz auf Ihrem Server ein
Installation und Konfiguration überwachen
Monit installieren von Paketmanager Ihrer Distribution; für Debian-basierte Systeme wie Ubuntu, das wäre:
sudo apt-get install monit
Monit sollte mit den Standardeinstellungen kommen, im Allgemeinen in ~/.monitrc
. Wenn du es nicht getan hast (wie es bei einer macOS-Installation der Fall war), Sie finden die Standardkonfigurationsdateien Hier.
Die Monit-Weboberfläche ist so konfiguriert, dass sie auf dem Port ausgeführt wird 2812. Es ist okay, Es ist jedoch standardmäßig vollständig geöffnet mit einem Standardkennwort. Wir möchten Sie auf eine autorisierte IP-Adresse sperren und
HTTPD-Port festlegen 2812
allow your_ip
allow admin:Passwort
Dieses Kennwort ändern, auf jeden Fall. Da ist ein einige weitere Konfigurationsoptionen für das Webinterface, aber das ist gut für jetzt.
Anschließend, Monit kann für die Überwachung einzelner Prozesse konfiguriert werden. Im Allgemeinen, Dies geschieht mit der Prozess-PID-Datei (die häufig in /var/run/
) , die die aktuelle PID der Instanz speichert, auf der diese Prozedur ausgeführt wird, Da sich die PID bei jedem Neustart der Prozedur ändert.
check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx starten"
Programm stoppen = "/etc/init.d/nginx Stop"
Sie müssen einen Befehl an Monit übergeben, um Ihre Prozedur zu starten und zu beenden. Es sollte automatisch neu gestartet werden, wenn der Vorgang fehlschlägt, keine zusätzliche Konfiguration, Wenn Sie jedoch basierend auf der Ressourcennutzung neu starten möchten, Sie müssen es selbst mit einigen if
Aussagen:
check process nginx with pidfile /var/run/nginx.pid start program = "/etc/init.d/nginx starten" Programm stoppen = "/etc/init.d/nginx Stop" wenn totalmem > 600 MB für 5 cycles then restart if cpu > 90% zum 5 cycles then restart if 3 Neustarts innerhalb 5 Zyklen und dann Timeout
Monit sendet jedes Mal, wenn etwas neu gestartet wird, Benachrichtigungen, So werden Sie benachrichtigt, wenn etwas nicht stimmt.
Sobald Sie mit dem Setup fertig sind, Laden Sie den Monit-Daemon neu mit:
Nachladen überwachen
Und starten Sie die Überwachung mit:
monit starte alles
Damit sollte auch das Webinterface starten, mit dem Sie überprüfen können, ob der Monit ordnungsgemäß funktioniert, generell im Hafen laufen 2812.
Dies ist die Grundkonfiguration für Monit, um sofort einsatzbereit zu sein, aber Monit hat viel mehr Syntax. Du kannst Lesen Sie die vollständige Anleitung grundsätzlich was Monit tun kann, um mehr zu erfahren.
Benachrichtigungen konfigurieren
Monit kann so konfiguriert werden, dass E-Mail-Benachrichtigungen gesendet werden, wenn größere Probleme auftreten oder wenn Prozesse neu gestartet werden. Sie müssen die Einstellungen für Ihren Mailserver hinzufügen:
set mailserver smtp.gmail.com port 587 Nutzername "[email protected]" Passwort "geheim" mit Timeout 60 seconds set eventqueue basedir /var/lib/monit/events slots 100
Der erste Block richtet den zu verwendenden Mailserver ein. Die einfachste Methode wäre die Verwendung von smtp.gmail.com
mit einem Gmail-Konto, obwohl Sie Postfix auf Ihrem Server installieren können, um ihn lokal auszuführen oder einen Unternehmens-E-Mail-Dienst zu verwenden.
Die zweite Zeile weist Monit an, die Warnungen in die Warteschlange zu stellen, wenn der Mailserver aus irgendeinem Grund nicht erreichbar ist.
Offensichtlich, Sie müssen auch die E-Mail-Adresse konfigurieren, an die Sie senden:
Benachrichtigung an [email protected] einstellen
Zur selben Zeit, da Monit die Möglichkeit hat, Skripte mit dem exec
Befehl, Sie können benutzerdefinierte Benachrichtigungen einstellen, wie Sie möchten. Als Beispiel, Du kannst ein Skript einrichten, um dir Benachrichtigungen von Slack zu senden, Speichern Sie es als /usr/local/bin/slack-webhook.sh
und führen Sie es aus, wenn nginx die PID ändert oder von Monit neu gestartet wird:
check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx starten"
Programm stoppen = "/etc/init.d/nginx Stop"
Wenn pid geändert, dann exec "/bin/bash -c 'PROCESS=Nginx /usr/local/bin/slack-webhook.sh'"
wenn 1 Neustart innerhalb von 1 Zyklus dann ausführen "/bin/bash -c 'PROCESS=Nginx /usr/local/bin/slack-webhook.sh'"
Bitte beachten Sie, dass alle Routen vollständig bewertet werden müssen, inbegriffen /bin/bash
und Pfade zu ausführbaren Dateien in Ihren Räumlichkeiten bin
. Und wenn Sie mit dem Ändern der Konfigurationsdateien fertig sind, Sie müssen Monit . neu laden.