Einführung in Monit zur Serverüberwachung

Inhalt

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.shund 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.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.