Nagios - Kurzanleitung

Der DevOps-Lebenszyklus ist eine kontinuierliche Schleife mit mehreren Stufen. Die kontinuierliche Überwachung ist die letzte Stufe dieser Schleife. Die kontinuierliche Überwachung ist eine der Phasen in diesem Lebenszyklus. In diesem Kapitel erfahren Sie ausführlich, was kontinuierliche Überwachung ist und wie Nagios für diesen Zweck hilfreich ist.

Was ist kontinuierliche Überwachung?

Die kontinuierliche Überwachung beginnt, wenn die Bereitstellung auf den Produktionsservern erfolgt. Von da an ist diese Phase dafür verantwortlich, alles zu überwachen, was passiert. Diese Phase ist sehr wichtig für die geschäftliche Produktivität.

Die kontinuierliche Überwachung bietet mehrere Vorteile:

  • Es erkennt alle Server- und Netzwerkprobleme.
  • Es findet die Grundursache des Fehlers.
  • Es hilft bei der Reduzierung der Wartungskosten.
  • Es hilft bei der Fehlerbehebung bei Leistungsproblemen.
  • Es hilft bei der Aktualisierung der Infrastruktur, bevor sie veraltet ist.
  • Es kann Probleme automatisch beheben, wenn es erkannt wird.
  • Es stellt sicher, dass die Server, Dienste, Anwendungen und das Netzwerk immer betriebsbereit sind.
  • Es überwacht jede Sekunde die gesamte Infrastruktur.

Was ist Nagios?

Nagios ist ein Open Source-Tool zur kontinuierlichen Überwachung, das Netzwerk, Anwendungen und Server überwacht. Es kann in der Infrastruktur erkannte Probleme finden und reparieren und zukünftige Probleme stoppen, bevor sie die Endbenutzer betreffen. Es gibt den vollständigen Status Ihrer IT-Infrastruktur und deren Leistung an.

Warum Nagios?

Nagios bietet die folgenden Funktionen, die es für eine große Gruppe von Benutzergemeinschaften nutzbar machen:

  • Es kann Datenbankserver wie SQL Server, Oracle, MySQL und Postgres überwachen
  • Es enthält Informationen auf Anwendungsebene (Apache, Postfix, LDAP, Citrix usw.).
  • Bietet aktive Entwicklung.
  • Hat ausgezeichnete Unterstützung von einer riesigen aktiven Community.
  • Nagios läuft auf jedem Betriebssystem.
  • Es kann pingen, um zu sehen, ob der Host erreichbar ist.

Vorteile von Nagios

Nagios bietet den Benutzern folgende Vorteile:

  • Es hilft dabei, regelmäßige Tests zu vermeiden.
  • Es erkennt Fehler in Sekundenbruchteilen, wenn sich die Handschlaufe noch im "intermittierenden" Stadium befindet.
  • Es reduziert die Wartungskosten ohne Leistungseinbußen.
  • Es bietet eine zeitnahe Benachrichtigung an das Management von Kontrolle und Ausfall.

Dieses Kapitel befasst sich ausführlich mit der Nagios-Architektur.

Nagios Architektur

Die folgenden Punkte sind in Bezug auf die Nagios-Architektur bemerkenswert:

  • Nagios hat eine Server-Agent-Architektur.

  • Der Nagios-Server ist auf dem Host installiert und Plugins sind auf den Remote-Hosts / Servern installiert, die überwacht werden sollen.

  • Nagios sendet ein Signal über einen Prozessplaner, um die Plugins auf den lokalen / Remote-Hosts / Servern auszuführen.

  • Plugins sammeln die Daten (CPU-Auslastung, Speicherauslastung usw.) und senden sie an den Scheduler zurück.

  • Anschließend senden die Prozesspläne die Benachrichtigungen an den / die Administrator (en) und aktualisieren die Nagios-Benutzeroberfläche.

Die folgende Abbildung zeigt die Nagios Server Agent-Architektur im Detail -

Nagios enthält verschiedene Produkte, wie unten ausführlich beschrieben -

Nagios XI

Es bietet Überwachung für vollständige IT-Infrastrukturkomponenten wie Anwendungen, Dienste, Netzwerk, Betriebssysteme usw. Es bietet einen vollständigen Überblick über Ihre Infrastruktur und Geschäftsprozesse. Die GUI ist leicht anpassbar und bietet die verwendete Flexibilität. Die Standardversion dieses Tools kostet 1995 USD und die Enterprise Edition 3495 USD.

Nagios Core

Es ist der Kern der Überwachung der IT-Infrastruktur. Das Nagios XI-Produkt basiert ebenfalls grundlegend auf dem Nagios-Kern. Wenn in der Infrastruktur ein Fehler auftritt, wird eine Warnung an den Administrator gesendet, der schnell Maßnahmen ergreifen kann, um das Problem zu beheben. Dieses Tool ist absolut kostenlos.

Nagios Log Server

Dies macht die Suche nach Protokolldaten sehr einfach und unkompliziert. Es speichert alle Protokolldaten an einem Ort mit Hochverfügbarkeits-Setup. Es kann leicht Warnungen senden, wenn ein Problem in den Protokolldaten gefunden wird. Es kann auf 1000 Server skaliert werden und bietet Ihrer Protokollanalyseplattform mehr Leistung, Geschwindigkeit, Speicherplatz und Zuverlässigkeit. Der Preis für dieses Tool hängt von der Anzahl der Instanzen ab - 1 Instanz 3995 USD, 2 Instanzen 4995 USD, 3 Instanzen 5995 USD, 4 Instanzen 6995 USD, 10 Instanzen 14995 USD.

Nagios Fusion

Dieses Produkt bietet eine zentrale Ansicht des gesamten Überwachungssystems. Mit Nagios Fusion scannen Sie separate Überwachungsserver nach unterschiedlichen Regionen. Es kann problemlos in Nagios XI und Nagios Core integriert werden, um die vollständige Transparenz der Infrastruktur zu gewährleisten. Dieses Tool kostet 2495 US-Dollar.

Nagios Network Analyzer

Es gibt dem Administrator die vollständigen Informationen der Netzwerkinfrastruktur mit den potenziellen Bedrohungen im Netzwerk, sodass der Administrator schnell Maßnahmen ergreifen kann. Nach eingehender Netzwerkanalyse werden sehr detaillierte Daten über das Netzwerk ausgetauscht. Dieses Tool kostet 1995 US-Dollar.

In diesem Kapitel werden die Schritte zum Einrichten von Nagios unter Ubuntu ausführlich erläutert.

Bevor Sie Nagios installieren, müssen einige Pakete wie Apache, PHP, Build-Pakete usw. auf Ihrem Ubuntu-System vorhanden sein. Lassen Sie uns sie daher zuerst installieren.

Step 1 - Führen Sie den folgenden Befehl aus, um die erforderlichen Pakete zu installieren. -

sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd
libgd-dev sendmail unzip

Step 2 - Erstellen Sie als Nächstes einen Benutzer und eine Gruppe für Nagios und fügen Sie sie dem Apache www-data-Benutzer hinzu.

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagios,nagcmd www-data

Step 3 - Laden Sie das neueste Nagios-Paket herunter.

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-
4.4.3.tar.gz

Step 4 - Extrahieren Sie die Tarball-Datei.

tar -xzf nagios-4.4.3.tar.gz
cd nagios-4.4.3/

Step 5 - Führen Sie den folgenden Befehl aus, um Nagios aus dem Quellcode zu kompilieren.

./configure --with-nagios-group=nagios --with-command-group=nagcmd

Step 6 - Führen Sie den folgenden Befehl aus, um Nagios-Dateien zu erstellen.

make all

Step 7 - Führen Sie den unten gezeigten Befehl aus, um alle Nagios-Dateien zu installieren.

sudo make install

Step 8 - Führen Sie die folgenden Befehle aus, um die Konfigurationsdateien für init und externe Befehle zu installieren.

sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sitesavailable/
nagios.conf

Step 9 - Kopieren Sie nun das Event-Handler-Verzeichnis in das Nagios-Verzeichnis.

sudo cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
sudo chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

Step 10 - Laden Sie Nagios-Plugins herunter und extrahieren Sie sie.

cd
wget https://nagios-plugins.org/download/nagiosplugins-
2.2.1.tar.gz
tar -xzf nagios-plugins*.tar.gz
cd nagios-plugins-2.2.1/

Step 11 - Installieren Sie Nagios-Plugins mit dem folgenden Befehl.

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
make
sudo make install

Step 12 - Bearbeiten Sie nun die Nagios-Konfigurationsdatei und kommentieren Sie die Zeilennummer 51 → cfg_dir = / usr / local / nagios / etc / servers

sudo gedit /usr/local/nagios/etc/nagios.cfg

Step 13 - Erstellen Sie jetzt ein Serververzeichnis.

sudo mkdir -p /usr/local/nagios/etc/servers

Step 14 - Kontaktkonfigurationsdatei bearbeiten.

sudo gedit /usr/local/nagios/etc/objects/contacts.cfg

Step 15 - Aktivieren Sie nun die Apache-Module und konfigurieren Sie einen Benutzer nagiosadmin.

sudo a2enmod rewrite
sudo a2enmod cgi
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

Step 16 - Starten Sie jetzt Apache und Nagios neu.

service apache2 restart
service nagios start
cd /etc/init.d/
sudo cp /etc/init.d/skeleton /etc/init.d/Nagios

Step 17 - Bearbeiten Sie die Nagios-Datei.

sudo gedit /etc/init.d/Nagios
DESC = "Nagios"
NAME = nagios
DAEMON = /usr/local/nagios/bin/$NAME
DAEMON_ARGS = "-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE = /usr/local/nagios/var/$NAME.lock

Step 18 - Machen Sie die Nagios-Datei ausführbar und starten Sie Nagios.

sudo chmod +x /etc/init.d/nagios
service apache2 restart
service nagios start

Step 19 - Gehen Sie nun zu Ihrem Browser und öffnen Sie die URL → http://localhost/nagios. Melden Sie sich jetzt mit dem Benutzernamen nagiosadmin bei Nagios an und verwenden Sie das zuvor festgelegte Passwort. Der Anmeldebildschirm von Nagios ist wie im folgenden Screenshot dargestellt -

Wenn Sie alle Schritte korrekt ausgeführt haben, wird die Nagios-Weboberfläche angezeigt. Sie finden das Nagios-Dashboard wie unten gezeigt -

Im vorherigen Kapitel haben wir die Installation von Nagios gesehen. Lassen Sie uns in diesem Kapitel die Konfiguration im Detail verstehen.

Die Konfigurationsdateien von Nagios befinden sich in / usr / local / nagios / etc. Diese Dateien werden im folgenden Screenshot gezeigt -

Lassen Sie uns jetzt die Wichtigkeit jeder Datei verstehen -

nagios.cfg

Dies ist die Hauptkonfigurationsdatei von Nagios Core. Diese Datei enthält den Speicherort der Protokolldatei von Nagios, das Aktualisierungsintervall für Hosts und Dienste, die Sperrdatei und die Datei status.dat. In dieser Datei sind Nagios-Benutzer und -Gruppen definiert, auf denen die Instanzen ausgeführt werden. Es enthält den Pfad aller einzelnen Objektkonfigurationsdateien wie Befehle, Kontakte, Vorlagen usw.

cgi.cfg

Standardmäßig heißt die CGI-Konfigurationsdatei von Nagios cgi.cfg. Es teilt den CGIs mit, wo sich die Hauptkonfigurationsdatei befindet. Die CGIs lesen die Haupt- und Host-Konfigurationsdateien für alle anderen Daten, die sie möglicherweise benötigen. Es enthält alle Benutzer- und Gruppeninformationen sowie deren Rechte und Berechtigungen. Es hat auch den Pfad für alle Frontend-Dateien von Nagios.

resource.cfg

In dieser Datei können Sie $ USERx $ -Makros definieren, die wiederum in Befehlsdefinitionen in Ihren Host-Konfigurationsdateien verwendet werden können. $ USERx $ -Makros sind nützlich zum Speichern vertraulicher Informationen wie Benutzernamen, Kennwörter usw.

Sie sind auch nützlich, um den Pfad zu Plugins und Ereignishandlern anzugeben. Wenn Sie die Plugins oder Ereignishandler in Zukunft in ein anderes Verzeichnis verschieben möchten, können Sie einfach ein oder zwei $ USERx $ -Makros aktualisieren, anstatt viele zu ändern Befehlsdefinitionen. Ressourcendateien können auch zum Speichern von Konfigurationsanweisungen für externe Datenquellen wie MySQL verwendet werden.

Die Konfigurationsdateien im Objektverzeichnis werden zum Definieren von Befehlen, Kontakten, Hosts, Diensten usw. verwendet.

befehle.cfg

Diese Konfigurationsdatei enthält einige Beispielbefehlsdefinitionen, auf die Sie in Host-, Dienst- und Kontaktdefinitionen verweisen können. Diese Befehle werden zum Überprüfen und Überwachen von Hosts und Diensten verwendet. Sie können diese Befehle lokal auf einer Linux-Konsole ausführen, wo Sie auch die Ausgabe des von Ihnen ausgeführten Befehls erhalten.

Beispiel

define command {
   command_name check_local_disk
   command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}

define command {
   command_name check_local_load
   command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
}

define command {
   command_name check_local_procs
   command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
}

contacts.cfg

Diese Datei enthält Kontakt- und Gruppeninformationen von Nagios. Standardmäßig ist bereits ein Kontakt Nagios-Administrator vorhanden.

Beispiel

define contact {
   contact_name nagiosadmin
   use generic-contact
   alias Nagios Admin
   email [email protected]
}

define contactgroup {
   contactgroup_name admins
   alias Nagios Administrators
   members nagiosadmin
}

templates.cfg

Diese Konfigurationsdatei enthält einige Beispielvorlagen für Objektdefinitionen, auf die von anderen Host-, Dienst-, Kontakt- usw. Definitionen in anderen Konfigurationsdateien verwiesen wird.

timeperiods.cfg

Diese Konfigurationsdatei enthält einige Beispiele für Zeitperiodendefinitionen, auf die Sie in Host-, Service-, Kontakt- und Abhängigkeitsdefinitionen verweisen können.

Nagios ist das Überwachungstool mit einer Vielzahl von Funktionen, wie unten angegeben -

  • Nagios Core ist Open Source und daher kostenlos zu verwenden.

  • Leistungsstarke Überwachungs-Engine, die Tausende von Hosts und Servern skalieren und verwalten kann.

  • Umfassendes Web-Dashboard, das die Sichtbarkeit vollständiger Netzwerkkomponenten und Überwachungsdaten ermöglicht.

  • Es verfügt über mandantenfähige Funktionen, bei denen mehrere Benutzer Zugriff auf das Nagios-Dashboard haben.

  • Es verfügt über eine erweiterbare Architektur, die problemlos in Anwendungen von Drittanbietern mit mehreren APIs integriert werden kann.

  • Nagios hat eine sehr aktive und große Community mit über 1 Million Nutzern auf der ganzen Welt.

  • Das schnelle Warnsystem sendet Benachrichtigungen an Administratoren, sobald ein Problem erkannt wurde.

  • Zur Unterstützung von Nagios stehen mehrere Plugins zur Verfügung. Benutzerdefinierte codierte Plugins können auch mit Nagios verwendet werden.

  • Es verfügt über ein gutes Protokoll- und Datenbanksystem, in dem alles, was im Netzwerk geschieht, problemlos gespeichert werden kann.

  • Mit der Funktion "Proaktive Planung" können Sie feststellen, wann die Infrastruktur aktualisiert werden muss.

Nagios kann auf eine Vielzahl von Anwendungen angewendet werden. Sie sind hier gegeben -

  • Überwachen Sie Hostressourcen wie Speicherplatz, Systemprotokolle usw.

  • Überwachen Sie die Netzwerkressourcen - http, ftp, smtp, ssh usw.

  • Überwachen Sie die Protokolldateien kontinuierlich, um Infra-Probleme zu identifizieren.

  • Überwachen Sie Windows / Linux / Unix / Webanwendungen und deren Status.

  • Nagios Remote Plugin Executer (NRPE) kann Dienste remote überwachen.

  • Führen Sie parallel Serviceprüfungen durch.

  • SSH- oder SSL-Tunnel können auch zur Fernüberwachung verwendet werden.

  • Senden Sie Warnungen / Benachrichtigungen

  • per E-Mail, SMS, Pager über Probleme mit der Infrastruktur

  • Empfehlung, wann die IT-Infrastruktur aktualisiert werden soll.

Nagios ist das beliebteste Tool zur Überwachung von Hosts und Diensten in Ihrer IT-Infrastruktur. Hosts und Servicekonfigurationen sind die Bausteine ​​von Nagios Core.

  • Host ist wie ein Computer; Es kann sich um ein physisches oder ein virtuelles Gerät handeln.

  • Dienste sind solche, die von Nagios verwendet werden, um etwas über einen Host zu überprüfen.

Sie können eine Hostdatei im Serververzeichnis von Nagios erstellen und die Host- und Dienstdefinitionen angeben. Zum Beispiel -

sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg

# Ubuntu Host Konfigurationsdatei

define host {
   use linux-server
   host_name ubuntu_host
   alias Ubuntu Host
   address 192.168.1.10
   register 1
}
define service {
   host_name ubuntu_host
   service_description PING
   check_command check_ping!100.0,20%!500.0,60%
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

Die obigen Definitionen fügen einen Host mit dem Namen ubuntu_host hinzu und definieren die Dienste, die auf diesem Host ausgeführt werden. Wenn Sie Nagios neu starten, wird dieser Host von Nagios überwacht und die angegebenen Dienste werden ausgeführt.

Es gibt viel mehr Dienste in Nagios, mit denen so ziemlich alles auf dem laufenden Host überwacht werden kann.

Eine Befehlsdefinition definiert einen Befehl. Zu den Befehlen gehören Dienstprüfungen, Dienstbenachrichtigungen, Dienstereignishandler, Hostprüfungen, Hostbenachrichtigungen und Hostereignishandler. Befehlsdefinitionen für Nagios werden in der Datei command.cfg definiert.

Das folgende Format definiert einen Befehl:

define command {
   command_name command_name
   command_line command_line
}

Command name- Diese Anweisung wird verwendet, um den Befehl zu identifizieren. Die Definitionen von Kontakt, Host und Dienst werden durch den Befehlsnamen referenziert.

Command line - Mit dieser Anweisung wird definiert, was von Nagios ausgeführt wird, wenn der Befehl für Service- oder Hostprüfungen, Benachrichtigungen oder Ereignishandler verwendet wird.

Beispiel

define command{
   command_name check_ssh
   command_line /usr/lib/nagios/plugins/check_ssh ‘$HOSTADDRESS$’
}

Dieser Befehl führt das Plugin - / usr / libl / nagios / plugins / check_ssh mit 1 Parameter aus: '$ HOSTADDRESS $'

Eine sehr kurze Hostdefinition, die diesen Überprüfungsbefehl verwenden würde, könnte der hier gezeigten ähnlich sein -

define host{
   host_name host_tutorial
   address 10.0.0.1
   check_command check_ssh
}

Die Befehlsdefinitionen geben an, wie Host- / Serviceprüfungen durchgeführt werden. Sie definieren auch, wie Benachrichtigungen generiert werden, wenn ein Problem festgestellt wird, und wie ein Ereignis behandelt werden soll. Es gibt verschiedene Befehle, um die Überprüfungen durchzuführen, z. B. Befehle zum Überprüfen, ob SSH ordnungsgemäß funktioniert oder nicht, Befehle zum Überprüfen, ob die Datenbank aktiv ist, Befehle zum Überprüfen, ob ein Host aktiv ist oder nicht, und viele weitere.

Es gibt Befehle, die Benutzern mitteilen, welche Probleme in der Infrastruktur vorhanden sind. Sie können Ihre eigenen benutzerdefinierten Befehle erstellen oder Befehle von Drittanbietern in Nagios verwenden. Diese werden ähnlich wie das Nagios-Plugins-Projekt behandelt. Es gibt keinen Unterschied zwischen ihnen.

Sie können im Befehl auch Argumente übergeben, um die Überprüfungen flexibler durchführen zu können. So müssen Sie einen Befehl mit Parameter definieren -

define command {
   command_name check-host-alive-limits
   command_line $USER5$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}

Die Hostdefinition für den obigen Befehl -

define host {
   host_name system2
   address 10.0.15.1
   check_command check-host-alive-limits!1000.0,70%!5000.0,100%
}

Sie können externe Befehle in Nagios ausführen, indem Sie sie der Befehlsdatei hinzufügen, die regelmäßig vom Nagios-Dämon verarbeitet wird.

Mit externen Befehlen können Sie viele Überprüfungen durchführen, während Nagios ausgeführt wird. Sie können einige Überprüfungen vorübergehend deaktivieren oder die sofortige Ausführung einiger Überprüfungen erzwingen, Benachrichtigungen vorübergehend deaktivieren usw. Die folgende Syntax für externe Befehle in Nagios muss in die Befehlsdatei geschrieben werden:

[time] command_id;command_arguments

Sie können hier auch die Liste aller externen Befehle einsehen, die in Nagios verwendet werden können -https://assets.nagios.com/downloads/nagioscore/docs/externalcmds/

Sobald der Host und die Dienste auf Nagios konfiguriert sind, wird überprüft, ob die Hosts und Dienste wie vorgesehen funktionieren oder nicht. Lassen Sie uns ein Beispiel sehen, um Überprüfungen auf dem Host durchzuführen -

Beachten Sie, dass Sie Ihre Hostdefinitionen in der Datei host1.cfg im Verzeichnis / usr / local / nagios / etc / object abgelegt haben.

cd /usr/local/nagios/etc/objects
gedit host1.cfg

So sehen Ihre Hostdefinitionen derzeit aus -

define host {
   host_name host1
   address 10.0.0.1
}

Fügen wir nun die Direktive check_interval hinzu. Diese Anweisung wird verwendet, um geplante Überprüfungen der Hosts auf die von Ihnen festgelegte Nummer durchzuführen. Standardmäßig ist es in Minuten. Unter Verwendung der folgenden Definition werden alle 3 Minuten Überprüfungen des Hosts durchgeführt.

define host {
   host_name host1
   address 10.0.0.1
   check_interval 3
}

In Nagios werden zwei Arten von Überprüfungen für Hosts und Dienste durchgeführt:

  • Aktive Prüfungen
  • Passive Schecks

Aktive Prüfungen

Aktive Überprüfungen werden vom Nagios-Prozess initiiert und dann regelmäßig ausgeführt. Die Prüflogik innerhalb des Nagios-Prozesses startet die aktive Prüfung. Um Hosts und Dienste zu überwachen, die auf Remotecomputern ausgeführt werden, führt Nagios Plugins aus und teilt mit, welche Informationen gesammelt werden sollen. Das Plugin wird dann auf dem Remote-Computer ausgeführt, auf dem die erforderlichen Informationen gesammelt und an den Nagios-Daemon zurückgesendet werden. Abhängig vom Status, der auf Hosts und Diensten empfangen wird, werden geeignete Maßnahmen ergriffen.

Die folgende Abbildung zeigt eine aktive Prüfung -

Diese werden in regelmäßigen Abständen ausgeführt, wie durch check_interval und retry_interval definiert.

Passive Prüfungen werden von externen Prozessen durchgeführt und die Ergebnisse zur Verarbeitung an Nagios zurückgegeben.

Passive Prüfungen funktionieren wie hier erklärt -

Eine externe Anwendung überprüft den Status auf Hosts / Diensten und schreibt das Ergebnis in die externe Befehlsdatei. Wenn der Nagios-Dämon eine externe Befehlsdatei liest, werden alle passiven Prüfungen in der Warteschlange gelesen und gesendet, um sie später zu verarbeiten. In regelmäßigen Abständen, wenn diese Prüfungen verarbeitet werden, werden abhängig von den Informationen im Prüfergebnis Benachrichtigungen oder Warnungen gesendet.

Die folgende Abbildung zeigt eine passive Prüfung -

Der Unterschied zwischen aktiver und passiver Prüfung besteht also darin, dass aktive Prüfungen von Nagios und passive Prüfungen von externen Anwendungen ausgeführt werden.

Diese Überprüfungen sind nützlich, wenn Sie Hosts / Dienste nicht regelmäßig überwachen können.

Nagios speichert den Status der Hosts und Dienste, die überwacht werden, um festzustellen, ob sie ordnungsgemäß funktionieren oder nicht. Es würde viele Fälle geben, in denen die Fehler zufällig auftreten und nur vorübergehend sind. Daher verwendet Nagios Status, um den aktuellen Status eines Hosts oder Dienstes zu überprüfen.

Es gibt zwei Arten von Zuständen -

  • Weicher Zustand
  • Harter Zustand

Weicher Zustand

Wenn ein Host oder Dienst für eine sehr kurze Zeit nicht verfügbar ist und sein Status nicht bekannt ist oder sich vom vorherigen unterscheidet, werden weiche Zustände verwendet. Der Host oder die Dienste werden immer wieder getestet, bis der Status dauerhaft ist.

Harter Zustand

Wenn max_check_attempts ausgeführt wird und der Status des Hosts oder Dienstes immer noch nicht in Ordnung ist, wird der Hard-Status verwendet. Nagios führt Ereignishandler aus, um schwierige Zustände zu verarbeiten.

Die folgende Abbildung zeigt weiche und harte Zustände.

Dieses Kapitel gibt einen Überblick über die Ports und Protokolle, die Nagios umfasst.

Protokolle

Die von Nagios verwendeten Standardprotokolle sind wie folgt angegeben:

  • http (s), Ports 80 und 443 - Die Produktschnittstellen sind in Nagios webbasiert. Nagios-Agenten können http verwenden, um Daten zu verschieben.

  • snmp, Ports 161 und 162 - snmp ist ein wichtiger Bestandteil der Netzwerküberwachung. Port 161 wird verwendet, um Anforderungen an Knoten zu senden, und Post 162 wird verwendet, um Ergebnisse zu empfangen.

  • ssh, Port 22 - Nagios kann nativ unter CentOS oder RHEL Linux ausgeführt werden. Der Administrator kann sich jederzeit über SSH bei Nagios anmelden und Überprüfungen durchführen.

Häfen

Die von gängigen Nagios-Plugins verwendeten Standardports sind wie folgt angegeben:

  • Butcheck_nt (nsclient ++) 12489
  • NRPE 5666
  • NSCA 5667
  • NCPA 5693
  • MSSQL 1433
  • MySQL 3306
  • PostgreSQL 5432
  • MongoDB 27017, 27018
  • OracleDB 1521
  • E-Mail (SMTP) 25, 465, 587
  • WMI 135, 445 / zusätzlich dynamisch zugewiesene Ports im Bereich 1024-1034

Plugins helfen bei der Überwachung von Datenbanken, Betriebssystemen, Anwendungen, Netzwerkgeräten und Protokollen mit Nagios. Plugins sind kompilierte ausführbare Dateien oder Skripte (Perl oder Nicht-Perl), die die Nagios-Funktionalität zur Überwachung von Servern und Hosts erweitern. Nagios führt ein Plugin aus, um den Status eines Dienstes oder Hosts zu überprüfen. Nagios kann mit Unterstützung für einen eingebetteten Perl-Interpreter kompiliert werden, um Perl-Plugins auszuführen. Ohne sie führt Nagios Perl- und Nicht-Perl-Plugins aus, indem die Plugins als externer Befehl gegabelt und ausgeführt werden.

Arten von Nagios-Plugins

Nagios enthält die folgenden Plugins:

Official Nagios Plugins- Es gibt 50 offizielle Nagios Plugins. Offizielle Nagios Plugins werden vom offiziellen Nagios Plugins Team entwickelt und gepflegt.

Community Plugins - Es gibt über 3.000 Nagios-Plugins von Drittanbietern, die von Hunderten von Nagios-Community-Mitgliedern entwickelt wurden.

Custom Plugins- Sie können auch Ihre eigenen benutzerdefinierten Plugins schreiben. Es gibt bestimmte Richtlinien, die befolgt werden müssen, um benutzerdefinierte Plugins zu schreiben.

Richtlinien zum Schreiben von benutzerdefinierten Nagios-Plugins

Beim Schreiben eines benutzerdefinierten Plugins in Nagios müssen Sie die folgenden Richtlinien befolgen -

  • Plugins sollten eine "-V" -Befehlszeilenoption bereitstellen (überprüfen Sie die Konfigurationsänderungen).
  • Drucken Sie nur eine Textzeile
  • Drucken Sie die Diagnose und nur einen Teil der Hilfemeldung aus
  • Netzwerk-Plugins verwenden DEFAULT_SOCKET_TIMEOUT zum Timeout
  • "-v" oder "--verbose" bezieht sich auf die Ausführlichkeitsstufe
  • "-t" oder "--timeout" (Plugin-Timeout);
  • "-w" oder "--warning" (Warnschwelle);
  • "-c" oder "--critical" (kritische Schwelle);
  • "-H" oder "--hostname" (Name des zu überprüfenden Hosts)

Mehrere Nagios-Plugins werden gleichzeitig ausgeführt und führen Überprüfungen durch. Damit alle reibungslos zusammenlaufen, folgt das Nagios-Plugin einem Statuscode. In der folgenden Tabelle sind der Status des Exit-Codes und seine Beschreibung aufgeführt.

Code beenden Status Beschreibung
0 in Ordnung Funktioniert gut
1 WARNUNG Funktioniert gut, braucht aber Aufmerksamkeit
2 KRITISCH Funktioniert nicht richtig
3 UNBEKANNT Wenn das Plugin den Status des Hosts / Dienstes nicht ermitteln kann

Nagios-Plugins verwenden Optionen für ihre Konfiguration. Im Folgenden sind einige wichtige Parameter aufgeführt, die vom Nagios-Plugin akzeptiert werden:

Sr.Nr. Option & Beschreibung
1

-h, --help

Dies bietet Hilfe

2

-V, --version

Dies druckt die genaue Version des Plugins

3

-v, --verbose

Dadurch gibt das Plugin detailliertere Informationen darüber, was es tut

4

-t, --timeout

Dies liefert das Zeitlimit (in Sekunden); Nach dieser Zeit meldet das Plugin den KRITISCHEN Status

5

-w, --warning

Dies liefert die Plugin-spezifischen Grenzwerte für den Status WARNING

6

-c, --critical

Dies liefert die Plugin-spezifischen Grenzwerte für den KRITISCHEN Status

7

-H, --hostname

Dies gibt den Hostnamen, die IP-Adresse oder den Unix-Socket an, mit dem kommuniziert werden soll

8

-4, --use-ipv4

Auf diese Weise können Sie IPv4 für die Netzwerkkonnektivität verwenden

9

-6, --use-ipv6

Auf diese Weise können Sie IPv6 für die Netzwerkkonnektivität verwenden

10

-p, --port

Dies wird verwendet, um eine Verbindung zum TCP- oder UDP-Port herzustellen

11

-s, -- send

Dies liefert die Zeichenfolge, die an den Server gesendet wird

12

-e, --expect

Dies liefert die Zeichenfolge, die vom Server zurückgesendet werden soll

13

-q, --quit

Dies stellt die Zeichenfolge bereit, die an den Server gesendet werden muss, um die Verbindung zu schließen

Das Nagios-Plugin-Paket bietet zahlreiche Überprüfungen für Hosts und Dienste zur Überwachung der Infrastruktur. Probieren wir Nagios-Plugins aus, um einige Überprüfungen durchzuführen.

SMTP ist ein Protokoll, das zum Senden von E-Mails verwendet wird. Nagios Standard-Plugins verfügen über Befehle zum Durchführen von SMTP-Überprüfungen. Die Befehlsdefinition für SMTP -

define command {
   command_name check_smtp
   command_line $USER2$/check_smtp -H $HOSTADDRESS$
}

Verwenden wir das Nagios-Plugin, um MySQL zu überwachen. Nagios bietet 2 Plugins zur Überwachung von MySQL. Das erste Plugin prüft, ob die MySQL-Verbindung funktioniert oder nicht, und das zweite Plugin berechnet die Zeit, die zum Ausführen einer SQL-Abfrage benötigt wird.

Die Befehlsdefinitionen für beide lauten wie folgt:

define command {
   command_name check_mysql
   command_line $USER1$/check_mysql –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -S –w 10 –c 30
}

define command {
   command_name check_mysql_query
   command_line $USER1$/check_mysql_query –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -q $ARG4$ –w $ARG5$ -c $ARG6$
}

Note - Benutzername, Kennwort und Datenbankname sind in beiden Befehlen als Argumente erforderlich.

Nagios bietet ein Plugin an, um den auf allen Partitionen bereitgestellten Speicherplatz zu überprüfen. Die Befehlsdefinition lautet wie folgt

define command {
   command_name check_partition
   command_line $USER1$/check_disk –p $ARG1$ –w $ARG2$ -c $ARG3$
}

Die meisten Überprüfungen können über Standard-Nagios-Plugins durchgeführt werden. Es gibt jedoch Anwendungen, für deren Überwachung spezielle Überprüfungen erforderlich sind. In diesem Fall können Sie Nagios-Plugins von Drittanbietern verwenden, die komplexere Überprüfungen der Anwendung ermöglichen. Es ist wichtig, über Sicherheits- und Lizenzprobleme Bescheid zu wissen, wenn Sie ein Plugin eines Drittanbieters von Nagios Exchange verwenden oder das Plugin von einer anderen Website herunterladen.

Der Nagios-Daemon, der Überprüfungen auf Remotecomputern in NRPE (Nagios Remote Plugin Executor) ausführt. Sie können Nagios-Plugins remote auf anderen Computern ausführen. Sie können Metriken für Remotecomputer wie Festplattennutzung, CPU-Auslastung usw. überwachen. Sie können auch Metriken für Remotecomputer von Windows über einige Windows Agent-Addons überprüfen.

Lassen Sie uns Schritt für Schritt sehen, wie NRPE auf dem zu überwachenden Client-Computer installiert und konfiguriert wird.

Step 1 - Führen Sie den folgenden Befehl aus, um NRPE auf dem zu überwachenden Remote-Linux-Computer zu installieren.

sudo apt-get install nagios-nrpe-server nagios-plugins

Step 2 - Erstellen Sie nun eine Hostdatei im Serververzeichnis und geben Sie alle erforderlichen Definitionen für den Host ein.

sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg
# Ubuntu Host configuration file

define host {
   use linux-server
   host_name ubuntu_host
   alias Ubuntu Host
   address 192.168.1.10
   register 1
}

define service {
   host_name ubuntu_host
   service_description PING
   check_command check_ping!100.0,20%!500.0,60%
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Check Users
   check_command check_local_users!20!50
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Local Disk
   check_command check_local_disk!20%!10%!/
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Check SSH
   check_command check_ssh
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Total Process
   check_command check_local_procs!250!400!RSZDT
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

Step 3 - Führen Sie den unten gezeigten Befehl zur Überprüfung der Konfigurationsdatei aus.

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Step 4 - Starten Sie NRPE, Apache und Nagios neu, wenn keine Fehler vorliegen.

service nagios-nrpe-server restart
service apache2 restart
service nagios restart

Step 5- Öffnen Sie Ihren Browser und rufen Sie die Nagios-Weboberfläche auf. Sie können sehen, dass der zu überwachende Host zum Nagios-Kerndienst hinzugefügt wurde. Ebenso können Sie weitere Hosts hinzufügen, die von Nagios überwacht werden sollen.

V-Shell ist eine leichte Webschnittstelle zu Nagios Core, die in PHP geschrieben wurde. Es ist einfach zu installieren und zu verwenden und eine Alternative zur Nagios-Ausgabe. Das Frontend von VShell befindet sich auf AngularJs, daher ist das Design reaktionsschnell und modern. Es bietet Quicksearch-Funktionen und eine RESTful-API, die von CodeIgniter unterstützt wird.

Nagios VShell ist kompatibel mit Nagios XI und Nagios Core 3.x. Es erfordert PHP 5.3 oder höher, PHP-CLI und Apache im System installiert. Lassen Sie uns sehen, wie Nagios VShell installiert wird.

Step 1 - Gehen Sie zum tmp-Verzeichnis und laden Sie die vshell tar-Datei herunter.

cd /tmp
wget http://assets.nagios.com/downloads/exchange/nagiosvshell/vshell.tar.gz

Step 2 - Extrahieren Sie die TAR-Datei.

tar zxf vshell.tar.gz

Step 3- Wechseln Sie in das Verzeichnis vshell und erteilen Sie der Datei install.php die ausführbare Berechtigung. Führen Sie abschließend das Installationsskript aus.

cd vshell
chmod +x install.php
./install.php

Step 4 - Jetzt geh zuhttps://192.168.56.101/vshell Melden Sie sich in Ihrem Browser mit nagiosadmin an, und Ihre Vshell wird angezeigt.

Lassen Sie uns in diesem Kapitel Fallstudien von zwei Organisationen untersuchen, die Nagios erfolgreich implementiert haben.

Bitnetix mit Nagios

Bitnetix in einer IT-Beratungsorganisation, die sich mit Netzwerk, Rechenzentrum, Überwachung und Voice over IP befasst. Durch ihre Angebote lassen sie kleine Unternehmen groß aussehen. Ihre Lösungen helfen Ihnen dabei, Kundenbeziehungen besser zu verwalten, indem sie mehr Engagement und Zufriedenheit steigern. Sie sagen, dass sie im Kommunikationsgeschäft tätig sind, daher ist es für sie sehr wichtig, ihren Kunden die richtige Botschaft zur richtigen Zeit zu vermitteln.

Bitnetix arbeitete mit einem Kunden zusammen, der sich für E-Mail-Marketing interessierte. Sie überwachten AWS-Server, die dynamisch zugewiesen wurden und für die Zustellung von Tausenden von E-Mails an Kunden verantwortlich waren. Sie verwendeten früher Nagios Core, wollten aber auf das neue Nagios XI umsteigen und sich ohne Ausfallzeiten in den Chef integrieren. Es gab Herausforderungen, die Live-Statuskonfiguration auf dem Nagios-Kern auf entsprechende Überprüfungen in Nagios XI umzustellen. Mit Nagios konnten sie jedoch die Nagios XI-Konfigurationsdatei mit integriertem Chef einrichten. Sie konnten alle Kunden ohne Ausfallzeiten von Nagios Core auf Nagios XI verlagern. Nagios XI konnte sich auch in PagerDuty integrieren, um sofortige Benachrichtigungen zu senden.

EverWatch.gobal mit Nagios

EverWatch.global ist eine IT-Management- und Beratungsorganisation, die gemeinnützigen und kleinen / mittleren Unternehmen hilft. Der Hauptsitz befindet sich in Rochester, New York. Sie haben zahlreiche Auszeichnungen für ihre Arbeit mit Nagios gewonnen.

EverWatch.global arbeitete mit einem E-Commerce-Einzelhandelskunden mit einem Jahresumsatz von einer Milliarde Dollar zusammen. Sie waren dafür verantwortlich, die Website jederzeit in Betrieb zu halten, die Warenkorb- und Checkout-Funktionen zu überwachen und im Falle einer Diffamierung Benachrichtigungen an die erforderlichen Mitarbeiter zu senden. Die Herausforderung bestand darin, dass sich die Server ihrer Kunden 500 Meilen von ihrem Hauptsitz in New York entfernt befanden. Für die Überwachung von Produktion, Bereitstellung, Qualitätssicherung und Entwicklung auf derselben Plattform sollten die Konfigurationen für beide Bereiche einzigartig und ähnlich sein.

Mithilfe von Nagios konnten sie SSH-Firewall-Regeln für Geräte und das Network Operations Center erstellen. Sie waren auch in der Lage, Überprüfungen auf Verleumdungsereignisse durchzuführen und Fehlalarme zu reduzieren. Durch die Konfiguration von Ereignishandlern in Nagios wurde die Anzahl der Benachrichtigungen drastisch verringert. Nagios half ihnen, indem es die Verfügbarkeit der Website ihrer Kunden von 85% auf 98% pro Jahr erhöhte. Dies war ein großer Erfolg.

"In realen Dollars konnte das Unternehmen dadurch einen zusätzlichen Umsatz von fast 125.000.000 USD erzielen." Eric Loyd, CEOEverWatch Global.