Installation des Nagios-Ubuntu-Servers 14.04. Einfache Nagios-Einrichtung. Verwenden Sie Ihre eigenen Überwachungsprogramme

29.10.2019 externe HDs

Nagios ist eines der am weitesten verbreiteten Open-Source-Tools zur Überwachung von Linux- und Windows-Servern. Damit können Sie die Ausführung verschiedener Anwendungen und Dienste über eine Webschnittstelle fernüberwachen. Nagios kann auch Router und andere Netzwerkgeräte überwachen.

Mit Nagios können Sie grundlegende Serverparameter wie CPU-Auslastung, Speicherauslastung usw. überwachen. All dies ist in einer Weboberfläche verfügbar, für deren Zugriff eine einfache Authentifizierung erforderlich ist. In diesem Artikel werden wir uns ansehen, wie die Installation von Nagios Ubuntu durchgeführt wird, sowie die Konfiguration dieses Programms.

Es gibt mehrere Möglichkeiten, Nagios Ubuntu 16.04 zu installieren. Sie können das PPA verwenden oder mithilfe des von der offiziellen Website heruntergeladenen Archivs installieren. Momentan am meisten letzte Version- 4.3. Im PPA ist nur 4.2 verfügbar, daher ziehen wir eine manuelle Installation über das Archiv in Betracht.

Aber bevor wir mit der Installation fortfahren, müssen Sie das System aktualisieren und alle notwendigen Komponenten installieren, um das Programm zu erstellen:

sudo apt install build-essential apache2 php7.0 openssl perl make php7.0-gd libgd2-xpm-dev libapache2-mod-php7.0 libperl-dev libssl-dev daemon wget apache2-utils unzip

Dann müssen Sie eine Gruppe und einen Benutzer erstellen, unter denen Nagios ausgeführt wird, sowie Shell-Befehle, die in der Weboberfläche ausgeführt werden:

sudo useradd Nagios
$ sudo groupadd nagcmd

Fügen Sie den nagios-Benutzer und den Benutzer, unter dem Apache läuft, zur nagcmd-Gruppe hinzu:

sudo usermod -a -G nagcmd Nagios
$ sudo usermod -a -G nagcmd www-data

Als nächstes müssen wir die Nagios-Quellen herunterladen. Dies kann mit dem Terminalbefehl erfolgen, aber da wir die neueste Version erhalten möchten, ist es besser, auf die offizielle Website zu gehen und herunterzuladen.

Klicken Sie zuerst auf den Artikel "Nagio-Kern", scrollen Sie dann nach unten und drücken Sie Download:

In diesem Stadium können Sie Informationen über sich selbst eingeben oder durch Klicken überspringen "Download überspringen":

Es bleibt die Version zu wählen, zum Beispiel 4.3.2. Gehen Sie nach Abschluss des Downloads in den Download-Ordner und entpacken Sie das Archiv:

cd ~/Downloads/
$ tar -zxvf /tmp/nagios-4.3.2.tar.gz

Jetzt können wir mit dem Kompilieren von Nagios fortfahren. Dazu müssen Sie die folgenden Befehle ausführen:

./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/sites-enabled/
$alles machen
$ sudo make install
$ sudo make install-init
$ sudo make install-config
$ sudo make install-commandmode
$ sudo make install-webconf

Nagios auf Ubuntu einrichten

Alle Konfigurationsdateien des Programms werden vom Installer in /usr/local/nagios/etc/ abgelegt. Die Standardeinstellungen lassen Nagios laufen, aber wir müssen noch ein paar Änderungen vornehmen. Öffnen Sie die Datei contact.cfg und ändern Sie die E-Mail-Adresse, an die Benachrichtigungen gesendet werden:

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

Kontakt definieren (
Kontaktname nagiosadmin ; Kurzer Benutzername
verwenden Sie generischen Kontakt ; Standardvorlage
alias Nagios-Admin ; Vollständiger Benutzername
Email [E-Mail geschützt] Webseite ; Deine E-Mail
}

Damit die Webschnittstelle funktioniert, müssen Sie mit htpasswd ein Passwort für den Benutzer nagiosadmin erstellen, ohne das Sie die Schnittstelle einfach nicht aufrufen können:

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Schließlich z korrekter Betrieb Sie müssen einige Einstellungen für den Webserver vornehmen. Aktivieren Sie das CGI-Modul:

sudo a2enmod cgi

Starten Sie den Webserver neu:

sudo-Dienst apache2 neu starten

Zum bekommen Zusatzfunktionen Nagios können Sie eine Reihe von Plugins installieren. Laden Sie es dazu zunächst herunter:


Entpacken Sie nun das Archiv und gehen Sie in den Ordner damit:

tar -zxvf /tmp/nagios-plugins-2.1.1.tar.gz
$ cd /tmp/nagios-plugins-2.1.1/

Um Module zu kompilieren, führen Sie Folgendes aus:

./configure --with-nagios-user=nagios --with-nagios-group=nagios
$machen
$ make install

Die Module werden im Nagios-Ordner installiert, prüfen Sie nun, ob die Konfiguration korrekt ist:

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

Um automatisch zu starten, erstellen Sie eine Unit-Datei für systemd:

sudo vi /etc/systemd/system/nagios.service


Beschreibung=Nagios
BindTo=network.target


WantedBy=multi-user.target


Benutzer=nagios
Gruppe=nagios
Typ=einfach
ExecStart=/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg

Starten von Nagios

Fast alles ist fertig, es bleibt noch, den Dienst zu starten und zu verwenden. Um den Dienst zu starten, geben Sie Folgendes ein:

sudo systemctl stat Nagios

Um die Nagios-Weboberfläche zu öffnen, reicht es aus, die IP-Adresse und die URL von Nagios in den Browser einzugeben. Wenn du das alles installiert hast lokalen Computer dann benutze:

http://localhost/nagios

Unmittelbar nach dem Öffnen der Seite müssen Sie den Benutzernamen nagiosadmin und das zuvor festgelegte Passwort eingeben. Danach können Sie alle Funktionen des Programms nutzen:

Schlussfolgerungen

In diesem Artikel haben wir uns angesehen, wie Nagios 4 konfiguriert ist, sowie Vollinstallation die neueste Version im Ubuntu-Betriebssystem. Obwohl auf den ersten Blick alles kompliziert erscheint, ist der Prozess recht einfach. Jetzt können Sie Nagios Ubuntu 16.04 überwachen. Ich hoffe, diese Informationen waren hilfreich für Sie.

Derzeit bauen immer mehr kleine und mittelständische Unternehmen eine verteilte IT-Infrastruktur auf, deren integraler Bestandteil die effektive Überwachung aller ihrer Komponenten ist, um ein kontinuierliches und qualitativ hochwertiges Funktionieren sicherzustellen. Solche Lösungen haben normalerweise die folgenden nicht funktionalen Anforderungen: schnelle Reaktion auf Ereignisse und die Fähigkeit, mit begrenzten Rechenressourcen zu arbeiten. Dieser Artikel beschreibt die Möglichkeit, ein solches System basierend auf frei verteilter Überwachungssoftware - Nagios - aufzubauen.

Kurze Beschreibung von Nagios

Die Hauptkomponente von Nagios, der Basisserver, kann auf fast jedem Linux/Unix-Server bereitgestellt werden. Es ist in fast allen gängigen enthalten Linux-Distributionen und Unix. Bei Bedarf können Sie den Quellcode von der Projektseite herunterladen und darauf basierend Ihre eigene Version von Nagios erstellen. Zusammen mit dem Nagios-Hauptpaket wird auch die Dokumentation dafür installiert.

Nagios hat eine modulare und erweiterbare Architektur. Um die Fähigkeiten von Nagios zu erweitern, können Sie die folgenden Arten von Komponenten verwenden: Plugins (Nagios-Plugins) und Erweiterungen (Nagios-Addons).

Plugins werden vom Nagios-Hauptprozess verwendet, um die folgenden Informationen zu erhalten: Antwortzeit des Remote-Knotens, freier Speicherplatz auf der Festplattenpartition usw. Wenn kein Plug-in mit der gewünschten Funktionalität gefunden werden konnte, wird eine komfortable Schnittstelle zum Erstellen eigener Plug-ins angeboten.

Der Begriff „Addon“ wurde eingeführt, um Verwechslungen mit Plugins zu vermeiden, da Erweiterungen verwendet werden, um grundlegend neue Funktionen zu Nagios hinzuzufügen oder mit anderen externen Produkten zu integrieren.

Die Fähigkeit, Plugins schnell zu schreiben, hat Nagios zu einem vielseitigen Netzwerküberwachungstool gemacht. Es gibt Plug-Ins zum Abfragen von Knoten über SNMP, um die Verfügbarkeit eines Remote-Knotens mit einer Vielzahl von Netzwerkprotokollen zu überprüfen. Im Nagios-Exchange-Projekt können Sie unter bereits geschriebenen Plugins oder Erweiterungen suchen oder dort ein Plugin Ihrer eigenen Entwicklung hinzufügen.

Die Benutzeroberfläche von Nagios ist als Webanwendung implementiert. Die notwendigen CGI-Skripte und die Konfiguration des Webservers sind im Basispaket von Nagios enthalten. Es gibt auch ein Benachrichtigungssubsystem, mit dem Sie per E-Mail über das Auftreten von Notfallsituationen und deren Beseitigung informiert werden können.

Abbildung 1 zeigt die Struktur des Nagios-Hauptservers.


Abbildung 2 zeigt den Mechanismus zum Ausführen von Nagios-Plugins auf einem entfernten Host.


Die Schlüsselkomponenten in Abbildung 2 sind das Plugin check_nrpe knotenseitige Überwachung und Erweiterung NRPE auf dem entfernten Host. Zwischen Plugin check_nrpe und NRPE- Der Daemon baut eine verschlüsselte SSL-Verbindung auf, über die nagiosd sendet Befehle zum Ausführen von Plugins und empfängt die Ergebnisse ihrer Ausführung. NRPE"projiziert" die Plugins auf dem Remote-Host auf den Haupt-Nagios-Server ( nagiosd), sodass Sie alle Plugins auf jedem Remote-Host ausführen können.

Für die Fernüberwachung von Windows-Knoten können Sie die Erweiterung verwenden NSClient++. In diesem Fall von der Seite nagiosd Plug-in muss verwendet werden check_nt.

Ein Beispiel für die Verwendung von Nagios

Als Beispiel wird ein kleines Handelsunternehmen genommen, das über 3 Präsenzpunkte verfügt: ein Lager, ein Geschäft und ein Büro. Jeder Point of Presence hat seine eigene Verbindung zum lokalen ISP. An jedem Standort wird ein Linux/Unix-Server als Gateway installiert. Zwischen allen Standorten wird ein VPN organisiert. Im Büro ist das Intranet-Netzwerk 10.1.0.0/24. Auf Lager - 10.2.0.0/24. Im Laden - 10.3.0.0/24. Die Unternehmensleitung hat sich die Aufgabe gestellt, diese IT-Infrastruktur zu überwachen.


Dazu müssen Sie den Dienst auf jedem der Server installieren. NRPE und zwei von ihnen haben das grundlegende Nagios-Kit. Dies geschieht, damit, wenn einer der Nagios-Server ausfällt, der andere sofort eine Nachricht darüber sendet.

Zum Installieren nagiosd und NRPE kann verwendet werden regelmäßige Mittel Systeme. Dieses Vorgehen hängt von der gewählten Plattform ab und ist in der Regel nicht schwierig. Auch zusammen mit nagiosd oder NRPE Der Basissatz von Plug-Ins wird installiert. Außerdem müssen Sie die Webschnittstelle installieren und konfigurieren, um den Status des Knotens mit dem installierten Nagios-Server anzuzeigen. In einigen Distributionen ist es in ein separates Paket unterteilt. Schließlich müssen Sie eine htpasswd-Datei mit dem in der cgi.conf-Datei definierten nagiosadmin-Benutzer erstellen. Wenn Sie möchten, können Sie Änderungen an der Konfiguration vornehmen und anstelle dieses Namens einen anderen Benutzer verwenden.

Danach können Sie den Nagios-Server und den Webserver starten und sich mit Ihrem Benutzernamen und Passwort bei Ihrer lokalen Nagios-Freigabe anmelden. Bisher überwacht es nur einen Localhost-Host und zeigt mehrere seiner Parameter (Lastdurchschnitt (Lastdurchschnitt), aktuelle Benutzer (aktive Benutzer), Festplattenplatz(Festplattenplatz)). Einer der Abschnitte dieser Ressource enthält Dokumentation, sodass Sie keinen Internetverkehr aufwenden müssen, um darauf zuzugreifen. Die Hostbeschreibung befindet sich in der Datei localhost.cfg.


Bevor Sie andere Knoten zur Konfiguration hinzufügen, müssen Sie die E-Mail-Adressen der Personen angeben, die für deren Verwaltung verantwortlich sind. Dies geschieht in der Datei "contacts.cfg". Es wird dringend empfohlen, E-Mail-Adressen von unabhängigen E-Mail-Anbietern zu wählen. Beispielsweise können Sie auf installieren Handy Yandex-Mail-Client und geben Sie die Adresse auf yandex.ru in der Beschreibung an. Wenn das Internet im Büro, in dem der Firmen-Mailserver installiert ist, abgeschaltet ist, benachrichtigt der Nagios-Server aus dem Lager den Administrator auch nach Feierabend per Mobiltelefon darüber.

Listing 1 zeigt, wie Kontaktinformationen zur Datei "contacts.cfg" hinzugefügt werden.

Auflistung 1. Hinzufügen Kontaktinformationen.
define contact( contact_name zorin; // kurzer Benutzername // Standardwerte werden von der generischen Kontaktvorlage geerbt use generischer Kontakt; Alias ​​Alexander N. Zorin; // Vollständiger Name E-Mail-Benutzer [E-Mail geschützt]; }

Danach müssen Sie die zu überwachenden Knoten in Nagios registrieren. Listing 2 zeigt, wie Sie eine Warehouse-Knotendefinition in der Datei „warehouse-gw.cfg“ erstellen, ähnlich wie in der Datei „localhost.cfg“.

Listing 2. Knoten zu Nagios hinzufügen.
define host( // Name der Vorlage, die zur Beschreibung des Hosts verwendet wird. // Wenn Sie diesen Host definieren, erben Sie alle Einstellungen, // die in der Hostvorlage linux-server deklariert sind , Worehouse-Admin-Adresse 140.14.22.4 ) define service( // Name der Vorlage, die verwendet wird, um den Service zu beschreiben. use local-service ; host_name Warehouse-Gw service_description SSH check_command check_ssh notifications_enabled 1 ) define host( use linux-server; host_name Warehouse -intra alias Warehouse-Intra Display_Name Lokale Netzkontakte des Warehouse Zorin, Warehouse-Admin-Adresse 10.2.0.1 ) Define Service( // Name der Vorlage, die zur Beschreibung des Service verwendet wird. Use Local-Service; Hostname Warehouse-Intra Service_Description SMTP check_command check_smtp Notifications_enabled 1)

Knoten Lager-gw absichtlich zweimal registriert, um den Status von externen und internen LAN-Diensten zu verfolgen. BEI dieses Beispiel Der SMTP-Server bedient nur das lokale Netzwerk. Dashboards der Nagios-Webschnittstelle zeigen zwei Knoten Lager-gw und Lager-Intra. Wenn der Lager-Intra-Knoten verschwindet und nur verfügbar wird Lager-gw- Dies bedeutet, dass der VPN-Kanal getrennt wurde.

Einige Plugins werden über die Erweiterung ausgeführt NRPE(load average – check_load, disk space – check_disk, current users – check_users), um Informationen zu erhalten, die von außerhalb des Knotens nicht oder nur schwer zu erhalten sind. Dazu müssen Sie ein Plugin installieren check_nrpe2 auf Nagios-Servern und -Erweiterung NRPE auf allen Servern. Dies kann mit erfolgen Standard bedeutet Systeme.

In der Konfigurationsdatei nrpe.cfg müssen Sie die Adresse angeben, an die sie angehängt wird NRPE-daemon und vertrauenswürdige Knoten, von denen Anfragen akzeptiert werden. Für den Shop (Knoten shop-gw) werden folgende Parameter verwendet:

server_address=10.3.0.1 Allowed_hosts=10.1.0.1,10.2.0.1

Verkehr NRPE absichtlich durch das VPN geleitet. Vertrauenswürdige Knoten für NRPE-Daemon im shop sind ein büro und ein lager. Auf Nagios-Servern werden diese Dienste wie in Listing 3 gezeigt überwacht:

Listing 3. Konfigurieren der Überwachung für einen Remotedienst
define service( // Name der Vorlage, die verwendet wird, um den Service zu beschreiben. use local-service; host_name Warehouse-intra service_description Durchschnittlichen Index laden check_command check_nrpe2!-c check_load notifications_enabled 1 )

In diesem Fall NRPE-node-Daemon Lager-Intra Der Befehl wird gesendet check_load. Die Antwort ist der aktuelle Wert. Durchschnittslast für diesen Knoten. Bitte beachten Sie, dass die Parameter für das Plugin (und es können mehrere sein) getrennt werden müssen Ausrufezeichen. Im gezeigten Beispiel ist der Parameter -c check_load.

So wird Schritt für Schritt durch Hinzufügen neuer Knoten und der darauf überwachten Parameter ein hochfunktionales Überwachungssystem aufgebaut.

Arbeiten mit Plugins

Plugins sind einfache Programme oder Skripte, die Eingabeparameter annehmen, wenn sie Befehlszeilenoptionen durchlaufen, und die angeforderten Werte in einem genau definierten Format an stdout zurückgeben. Befehle zum Ausführen von Plugins können in die Datei commands.cfg geschrieben werden, während Plugins mit installiert werden nagiosd befinden sich bereits in dieser Datei. Es ist auch möglich, jedes Plugin in einer separaten Datei zu registrieren.

Listing 4 zeigt, wie das Plugin beschrieben wird. check_smtp A, der die Verfügbarkeit des SMTP-Servers auf dem Remote-Host und seine Antwortzeit überprüft.

Listing 4. Konfigurieren des check_smtp-Plugins
Befehl definieren ( Befehlsname check_smtp Befehlszeile /usr/lib/nagios/plugins/check_smtp -H $HOSTADDRESS$ )

Der Pfad zum Plugin wird hier explizit angegeben check_smtp und die Notwendigkeit, die Anfrage über die Option zu ergänzen -HÜFTE Adresse des überprüften Knotens, die automatisch basierend auf der Direktive ersetzt wird Dienst definieren Oben. Wenn Sie dieses Plugin über die Befehlszeile ausführen, werden die folgenden Informationen angezeigt:

/usr/lib/nagios/plugins/check_smtp -H 192.168.4.1 SMTP OK - 0,038 Sek. Antwortzeit|time=0.037518s;;;0.000000

Startoptionen können unterschiedlich sein, die Hauptsache ist, sie korrekt zur Befehlsbeschreibung hinzuzufügen. Das Ausgabeformat ist in der mit der Weboberfläche installierten Dokumentation ausführlich beschrieben.

Bei der Installation NRPE-daemon ist nur ein kleiner Teil der Plugins in der Datei nrpe.conf registriert, darunter der obige Befehl check_load:

command=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20

Die obige Zeile enthält den Pfad zum Plugin check_load und Startoptionen. Wenn das Plugin ohne Parameter ausgeführt wird, zeigt es eine Liste gültiger Parameter an. Beispielsweise müssen Sie einen Befehl erstellen check_usr zum NRPE, wodurch Informationen über die /dev/md2-Partition zurückgegeben würden, die im /usr-Pfad an den Überwachungsserver gemountet ist. Diese Funktionalität kann mit einem Standard-Plugin implementiert werden check_disk. Wenn Sie es ohne Parameter ausführen, wird eine Beschreibung der Startparameter angezeigt.

Verwendung: check_disk -w limit -c limit [-W limit] [-K limit] (-p Pfad | -x Gerät) [-C] [-E] [-e] [-g Gruppe ] [-k] [ -l] [-M] [-m] [-R Pfad ] [-r Pfad ] [-t Zeitüberschreitung] [-u Einheit] [-v] [-X Typ]

Basierend auf den bereitgestellten Informationen können Sie ein Team vorbereiten check_usr und fügen Sie es in die Datei nrpe.conf ein:

command=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/md2

Ein Testlauf dieses Befehls erzeugt die folgende Ausgabe:

/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/md2 DISK OK - freier Speicherplatz: /usr 20295 MB (86% Inode=92%);| /usr=3061MB;19684;22145;0;24606

Wie Sie sehen, können Sie in Nagios ganz einfach Plugins erstellen, um eine Vielzahl von Aufgaben auszuführen, und sie mit dem NRPE-Daemon verbinden.

Nagios-Erweiterungen

Bei der Erörterung der Fähigkeiten von Nagios ist es unbedingt erforderlich, die interessantesten Erweiterungen zu berücksichtigen, die die Fähigkeiten von Nagios erheblich verbessern.

pnp4nagios-Erweiterung

Standardmäßig führt Nagios eine Historie des Zustands der überwachten Parameter nur nach ihrer Kritikalität (normal, Warnung, kritisch). Der Benutzer kann sehen, in welchen Zeiträumen sich der Parameter in verschiedenen Zuständen befand und wie lange die Gesamtzeit in diesen Zuständen für den Berichtszeitraum verbracht wurde.


Wie in Abbildung 5 gezeigt, ist die kritische Periode rot markiert, und die Perioden des normalen Funktionierens sind grün markiert. Diese Lösung eignet sich für Parameter eines booleschen Typs (ja/nein), beispielsweise die Integrität eines RAID-Arrays. Bei numerischen Parametern wäre es sinnvoller, die Dynamik von Änderungen zu verfolgen.

Verlängerung pnp4nagios, regelmäßig erhalten von nagiosd Parameterwerte, speichert den Verlauf ihrer Änderungen und erstellt einen Bericht in grafische Form. Grafiken lassen sich beliebig kombinieren und bei Bedarf die resultierende Webseite in eine PDF-Datei umwandeln. Abbildung 6 zeigt einen Parameteränderungsbericht Durchschnittslast für einen bestimmten Knoten.

Abbildung 6. Webseite der pnp4nagios-Erweiterung
Fazit

Besonders hervorzuheben ist die geringe Ressourcenintensität dieser Lösung. Ein Unternehmen verwendet Nagios, um 14 Knoten und 140 Dienste darauf zu überwachen, während der NRPE-Daemon 512 KB groß ist Arbeitsspeicher, und der Nagiosd-Server hat nur 140 KB RAM. Der Verbrauch von Prozessorressourcen durch beide Komponenten und ihre untergeordneten Prozesse auf einer Pentium-IV-CPU überschreitet 1 % nicht. Unter den überwachten Parametern: die Temperatur von Festplatten und Motherboards, Festplattenpartitionsstatus, Mail-Warteschlangengrößen, Lüftergeschwindigkeiten, Integrität RAID-Arrays und vieles mehr.

Wie in diesem Artikel gezeigt, hat das Nagios-Paket extrem niedrige Ressourcenanforderungen, ist hochgradig anpassbar und offen für neue Plugins und Erweiterungen. Für ein kleines oder mittleres Unternehmen, das bereits über mindestens einen Linux/Unix-Server verfügt, ist Nagios die ideale Lösung zur Überwachung ihrer bestehenden IT-Infrastruktur.

Um anzufangen server01 Sie müssen das Nagios-Paket installieren. Geben Sie dazu im Terminal ein:

sudo apt-get install nagios3 nagios-nrpe-plugin

Sie werden aufgefordert, ein Kennwort für den Benutzer einzugeben Nagiosadmin. Benutzerkonten befinden sich in /etc/nagios3/htpasswd.users. Um das Passwort des Benutzers zu ändern Nagiosadmin oder das Hinzufügen anderer Benutzer zum Ausführen von Nagios-CGI-Skripten mithilfe des Dienstprogramms htpasswd, die Teil des Pakets ist apache2-utils.

Zum Beispiel, um das Passwort des Benutzers zu ändern Nagiosadmin Terminal eingeben:

sudo htpasswd /etc/nagios3/htpasswd.users nagiosadmin

So fügen Sie einen Benutzer hinzu:

sudo htpasswd /etc/nagios3/htpasswd.users steve

sudo apt-get install nagios-nrpe-server

NRPE ermöglicht es Ihnen, lokale Prüfungen auf einem entfernten Computer durchzuführen. Aber es gibt andere Möglichkeiten, dieses Ziel zu erreichen, indem andere Nagios-Plugins verwendet werden, sowie andere Überprüfungsmethoden.

Übersicht über Konfigurationsdateien

Es gibt mehrere Verzeichnisse, die Nagios-Konfigurationsdateien sowie Prüfdateien enthalten.

1. /etc/nagios3: enthält Konfigurationsdateien zum Ausführen des Nagios-Daemons, CGI-Dateien, Computerbeschreibungen usw.

2. /etc/nagios-plugins: Konfigurationsdateien für Dienstprüfungen.

3. /etc/nagios: enthält Konfigurationsdateien auf dem Remote-Computer nagios-nrpe-server.

4. /usr/lib/nagios/plugins/: Hier sind binäre Prüfungen. Verwenden Sie zum Anzeigen der Scanoptionen die Taste „-h“.

Zum Beispiel:/usr/lib/nagios/plugins/check_dhcp -h

Es gibt viele Nagios-Prüfungen, die so konfiguriert werden können, dass sie auf jedem Rechner ausgeführt werden. In diesem Beispiel wird Nagios so konfiguriert, dass der Festplattenspeicher, der DNS-Dienst und die MySQL-Benutzergruppen überprüft werden. DNS-Check wird am umgesetzt server02, und die MySQL-Maschinengruppe enthält beides server01 so und server02.

Siehe Sektion HTTPD-Apache2 Webserver für detailliertere Apache-Einstellungen, Domain Name Service (DNS) für DNS-Einstellungen sowie MySQL für die Einrichtung MySQL.

Darüber hinaus werden einige Begriffe gegeben, die Ihnen helfen sollen, Nagios einfach einzurichten:

Rechner (Host): Server, Arbeitsplatz, Netzwerkgerät usw., das verfolgt wird.

Computergruppe: Gruppe ähnlicher Computer. Sie können beispielsweise alle Webserver gruppieren, Dateiserver usw.

Service: ein Dienst, der auf einem Computer überwacht wird. Zum Beispiel HTTP , DNS , NFS usw.

Servicegruppe: ermöglicht es Ihnen, mehrere Dienste miteinander zu kombinieren. Dies wäre beispielsweise nützlich, um mehrere Webserver zusammenzuführen.

Kontakt: die Person, die benachrichtigt wird, wenn ein Ereignis eintritt. Nagios kann so konfiguriert werden eine E-Mail senden, SMS-Nachrichten usw.

Standardmäßig ist Nagios so konfiguriert, dass es HTTP , Speicherplatz, SSH , aktuelle Benutzer und Prozesse prüft und die Auslastung auf dem lokalen Computer überwacht. Nagios führt mit dem Befehl auch einen Gateway-Check durch Klingeln.

Die Menge der installierten Nagios-Systeme kann umfassend konfiguriert werden. Es ist besser, mit mehreren Computern zu beginnen, einem oder zwei, und dann optimal zu konfigurieren, anstatt Add-Ons zu verwenden.

Einstellung

1.1. Zuerst müssen Sie eine Konfigurationsdatei für erstellen server02. Führen Sie alle diese Befehle aus, sofern nicht anders angegeben server01. Terminal eingeben:

sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg \ /etc/nagios3/conf.d/server02.cfg

Ersetzen Sie im obigen und folgenden Beispiel „server01“, „server02“ 172.18.100.100 und 172.18.100.101 durch den Namen und die IP-Adresse Ihrer Server.

Define host( use generic-host ; Name of host template to use host_name server02 alias Server 02 address 172.18.100.101 ) # DNS-Dienst prüfen. Dienst definieren (verwenden Sie den allgemeinen Dienst host_name server02 service_description DNS check_command check_dns!172.18.100.101 )

1.3. Laden Sie den Nagios-Daemon neu, um die neuen Einstellungen zu aktivieren:

2.1 Fügen wir nun eine Dienstbeschreibung zum Überprüfen von MySQL hinzu, indem wir hinzufügen folgenden Zeilen in /etc/nagios3/conf.d/services_nagios2.cfg:

# MySQL-Server prüfen. define service ( hostgroup_name mysql-servers service_description MySQL check_command check_mysql_cmdlinecred!nagios!secret!$HOSTADDRESS use generic-service notification_interval 0 ; setzen Sie > 0 wenn Sie erneut benachrichtigt werden möchten )

2.2. Die MySQL-Gruppenserver sollten jetzt definiert sein. Bearbeiten Sie /etc/nagios3/conf.d/hostgroups_nagios2.cfg, um Folgendes hinzuzufügen:

# MySQL-Hostgruppe. Hostgruppe definieren ( hostgroup_name mysql-servers alias MySQL-Server Mitglieder localhost, server02 )

Mysql -u root -p -e "Benutzer-Nagios erstellen, die durch "geheim" identifiziert werden;"

Der Nagios-Benutzer muss auf allen Computern vorhanden sein Arbeitsgruppe MySQL-Server.

2.4. Starten Sie Nagios neu, um den MySQL-Server zu testen.

sudo /etc/init.d/nagios3 neu starten

3.1. Schließlich müssen Sie NRPE konfigurieren, um den Speicherplatz zu überprüfen server02.

Auf der server01 fügen Sie eine Dienstprüfung zu /etc/nagios3/conf.d/server02.cfg hinzu:

# NRPE-Festplattenprüfung. Dienst definieren (verwenden Sie den allgemeinen Dienst host_name server02 service_description nrpe-disk check_command check_nrpe_1arg!check_all_disks!172.18.100.101 )

3.2. Jetzt weiter server02 editiere /etc/nagios/nrpe.cfg:

Allowed_hosts=172.18.100.100

Und in der Befehlsdeklarationszeile fügen Sie hinzu:

Command=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e

3.3. Starten Sie schließlich nagios-nrpe-server neu:

sudo /etc/init.d/nagios-nrpe-server neustarten

3.4. Auf der server01 Sie müssen auch Nagios neu laden:

sudo /etc/init.d/nagios3 neu starten

Sie sollten jetzt Ihre Server sehen können und Büroschecks in Nagios-CGI-Dateien. Um darauf zuzugreifen, geben Sie http://server01/nagios3 in Ihren Browser ein. Sie werden aufgefordert, einen Benutzernamen und ein Passwort für nagiosadmin einzugeben.

Verknüpfungen

In diesem Abschnitt wurden nur kleinere Funktionen von Nagios beschrieben. nagios-plugins-extra und nagios-snmp-plugins enthalten viele weitere Service-Check-Dateien.

1. Ausführlichere Informationen finden Sie in der Dokumentation auf der offiziellen Nagios-Website.

2. Eng fokussierte Dokumentation zu Nagios.

3. Es gibt mehrere Bücher über Nagios und Netzwerküberwachung.

4. Die Wiki-Seite von Nagios Ubuntu enthält auch eine Menge Dokumentation.

Nagios (Nagios wird nicht auf Heiligkeit bestehen)- ein Open-Source-Programm zur Überwachung Computersysteme und Netzwerke. Es führt eine Überwachung durch, überwacht den Status von Knoten und Diensten und warnt den Administrator, wenn einer der Dienste seine Arbeit stoppt (oder wieder aufnimmt).

Im heutigen Artikel zeigen wir Ihnen die Installation Nagios 4.1 auf der Ubuntu 15.04.

Sie können testen und sehen, wie Nagios und andere Programme / Dienste / PBX sind, indem Sie zum Abschnitt gehen.

Ausbildung

Stellen Sie sicher, dass Ihr Server voll funktionsfähig ist LAMPE, falls nicht installiert, installieren Sie, bevor Sie fortfahren LAMPE Server. Lassen Sie uns die folgenden Komponenten installieren:

sudo apt-get install build-essential libgd2-xpm-dev apache2-utils unzip

Erstellen Sie einen Nagios-Benutzer und eine Gruppe

Erstellen Sie ein neues Benutzerkonto Nagios und Gruppe nagcmd:

Sudo useradd -m nagios
sudo passwd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd Nagios
sudo usermod -a -G nagcmd www-data

Laden Sie Nagios und Plugins dafür herunter

Auf der offiziellen Website wird die neueste Version als aufgeführt 4.1.0 Release Candidate 2, und laden Sie es herunter.

CD /usr/src
sudo wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.0rc2.tar.gz

Plugins herunterladen

Sudo wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

Nagios installieren

Gehen Sie zu dem Ordner, in den wir Nagios und Plugins heruntergeladen haben, und entpacken Sie ihn mit dem Befehl:

Sudo tar xzf nagios-4.1.0rc2.tar.gz

cd nagios-4.1.0rc2/

Führen Sie die folgenden Befehle zum Kompilieren und Installieren aus Nagios:

Sudo ./configure --with-command-group=nagcmd
sudo alles machen
sudo make install
sudo make install-init
sudo make install-config
sudo make install-commandmode

Installation der Weboberfläche Nagios:

sudo make install-webconf

Wenn Sie während des Installationsvorgangs die folgende Fehlermeldung erhalten:

/usr/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf
/usr/bin/install: Reguläre Datei '/etc/httpd/conf.d/nagios.conf' kann nicht erstellt werden: Keine solche Datei oder Verzeichnis
Makefile:296: Rezept für Ziel „install-webconf“ fehlgeschlagen
machen: *** Fehler 1

Nagios versucht, die Datei nagios.conf darin zu erstellen /etc/httpd.conf/directory, sondern in Systemen Ubuntu nagios.conf-Dateien sollten eingefügt werden /etc/apache2/sites-enabled/directory. Wir verwenden dann stattdessen einen anderen Befehl sudo make install-webconf

sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-enabled/nagios.conf

Lassen Sie uns ein Konto erstellen Nagiosadmin um das Webinterface aufzurufen Nagios. Merken Sie sich das von Ihnen festgelegte Passwort, Sie benötigen es, wenn Sie sich bei der Weboberfläche anmelden.

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Starten Sie Apache neu, damit die neuen Einstellungen wirksam werden:

sudo systemctl Apache2 neu starten

Wir kehren zu dem Ordner zurück, in den wir die Plugins heruntergeladen haben, und entpacken die Plugins:

CD /usr/src
tar xzf nagios-plugins-2.0.3.tar.gz

Gehen Sie in das entpackte Verzeichnis:

cd nagios-plugins-2.0.3/

Führen Sie die folgenden Befehle aus, um Plugins zu kompilieren und zu installieren:

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

Starten von Nagios

Überprüfung nagios.conf für Fehler:

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

Wenn keine Fehler vorhanden sind, führen Sie sie aus Nagios und füge es zu autorun hinzu:

Sudo-Dienst Nagios starten
sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Wenn beim Start Nagios Sie haben den folgenden Fehler gesehen:

nagios.service konnte nicht gestartet werden: Unit nagios.service konnte nicht geladen werden: Keine solche Datei oder Verzeichnis.

[....] Nagios starten (über systemctl): nagios.serviceFailed to start nagios.service: Unit nagios.service failed to load: No such file or directory.failed!

Um es zu beheben, müssen Sie kopieren /etc/init.d/skelett in /etc/init.d/nagios

sudo cp /etc/init.d/skeleton /etc/init.d/nagios

bearbeiten /etc/init.d/nagios:

sudo nano /etc/init.d/nagios

Indem Sie ganz am Ende Folgendes hinzufügen:

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

Wir speichern und beenden.

Der letzte Schliff - wir erteilen die Ausführungsrechte:

sudo chmod +x /etc/init.d/nagios

und Renn Nagios:

sudo /etc/init.d/nagios starten

Jetzt im Browser eingeben http://nagios-server-ip/nagios, geben Sie im Feld Benutzername ein Nagiosadmin und das Passwort, das wir während des Installationsvorgangs festgelegt haben.



Klicken Sie im linken Bereich der Konsole auf „Host“. Sie werden sehen, dass Nagios derzeit keinen anderen Host als sich selbst überwacht.



Damit ist unsere Installation abgeschlossen. Den Anweisungen folgend haben wir Nagios 4.1 auf Ubuntu 15.04 installiert

Nagios ist ein Überwachungsprogramm Informationssysteme aufgrund Open Source. Das Produkt ist praktisch der Standard für Überwachungssysteme. Es erlaubt (einschließlich):

  • Überwachung von Hosts (Prozessorlast, Festplattennutzung, Protokolle usw.) mit einer Vielzahl von Betriebssystemen – Windows, Linux, AIX, Solaris usw.;
  • kontrollieren Netzwerkdienste(SMTP, POP3, HTTP, SSH usw.);
  • zusätzliche Erweiterungsmodule (Plugins) in beliebigen Programmiersprachen (Shell, C++, Perl, Python, PHP, C# usw. - die Modularchitektur muss offen sein) anbinden, eigene Methoden zur Überprüfung von Diensten verwenden;
  • parallele Überprüfungen von Systemen durchführen (um die Leistung zu verbessern);
  • Benachrichtigungen bei Problemen per E-Mail senden, SMS-Nachrichten usw.;
  • automatisch auf Service- oder Host-Ereignisse reagieren.

Nagios installieren

Nagios ist ein Open-Source-Projekt, das sowohl in Quellcodes als auch in vorbereiteten Paketen für verschiedene Linux-Klone zur Installation verfügbar ist. Es ist klar, dass die Installation aus den Quellen neuer ist als die vorbereiteten Pakete.

Die Installation aus vorbereiteten Paketen erfolgt nach den Regeln der entsprechenden Version des Betriebssystems. Für Ubuntu würde der Befehl beispielsweise so aussehen:

apt-get install nagios2

Dies garantiert die Installation aller für den Betrieb erforderlichen Bibliotheken und ist das Beste auf einfache Weise für allgemeine Benutzer empfohlen.

Die Vorgehensweise zur Schnellinstallation des Programms auf Ubuntu ist auf der Website im Dokumentationsbereich (http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html) beschrieben. Bitte beachten Sie, dass der Installation aus den Quellen die Installation der erforderlichen Plugins und Add-Ons folgen muss.

Nachdem die Installation abgeschlossen ist, können Sie den Betrieb des Programms überprüfen, indem Sie die Seite http://localhost/nagios/ öffnen (statt localhost sollten Sie den Namen des Nagios-Servers verwenden, wenn Sie die Seite mit öffnen entfernter Computer). Bei der Abfrage von Autorisierungsparametern müssen Sie den Namen nagiosadmin und das von Ihnen dafür vergebene Passwort eingeben Konto auf den vorherigen Schritten.

Auf Abb. 7.14 zeigt eine der Seiten des Programms - die Struktur eines kleinen Systems, das von Nagios gesteuert wird (das Schema wird automatisch in Nagios erstellt).

Reis. 7.14.
Netzwerkdiagramm in Nagios

Ein wenig über die Logik von Nagios

Nagios kann bedingt als zwei Teile dargestellt werden: ein Server (eigentlich wurde seine Installation im vorherigen Unterabschnitt besprochen) und ein Client, d. h. ein System, das mit oder ohne installiertem Agenten gesteuert wird.

Existieren verschiedene Versionen Agenten installiert auf Betriebssysteme. Am häufigsten wird für Linux-basierte Systeme das NRPE-Programm verwendet (der Link zu diesem Plugin ist auf der offiziellen Nagios-Website verfügbar - http://www.nagios.org/) und für Windows-Computer - NSClient++ (http:/ /trac.nacktnuns.org /nscp/).

    Notiz

    Historisch gesehen war der erste Windows-Client eine Variante des NPRE-Programms. Aus Kompatibilitätsgründen behält NSClient++ das von NPRE verwendete Protokoll bei. In den Client-Einstellungen können Sie die Verwendung einer der Arbeitsoptionen oder beider angeben (einige Plugins werden beispielsweise für eine bestimmte Version des Clients entwickelt). Beachten Sie, dass NPRe in einigen Fällen mehr Kontrolle bietet, z. B. indem es die Konfiguration von Skripts erleichtert, die auf dem kontrollierten System selbst ausgeführt werden.

Beachten Sie, dass jeder Client wie in den folgenden Abschnitten beschrieben konfiguriert werden muss.

Mit Hilfe von Clients wird die Arbeit aktiv überwacht: Der Server initiiert auf dem Client durch die Einstellungen festgelegt befehlen und die empfangenen Daten analysieren. Darüber hinaus ist eine passive Arbeitsweise möglich, wenn auf Initiative des Clients Daten an den Server gesendet werden. So werden beispielsweise SNMP-Traps gehandhabt.

Wie bereits erwähnt, um Informationen vom Client auf dem Nagios-Server zu erhalten, führen Sie spezielle Mannschaften(oder Programme). In Bezug auf Nagios werden diese Befehle als Plugins bezeichnet.

    Notiz

    Plugins sind im Web leicht zu finden: Nagios hat einen Link zu Projekten auf SourceForge.net, Sie können die Plugin-Austauschseite http://www. monitoringexchange.org/ und anderen Quellen.

Damit das Überwachungssystem sie verwenden kann, müssen solche Befehle in einer speziellen Konfigurationsdatei - commands.cfg - beschrieben werden. Es sind diese Beschreibungen in Bezug auf Nagios, die Steuerbefehle genannt werden.

Zusätzlich zur Beschreibung des Befehls selbst muss das Überwachungssystem wissen, welche Systeme überprüft werden sollen, wie oft der Prüfbefehl ausgeführt werden muss, ob es notwendig ist, Pausen bei seiner Verwendung einzulegen (z. B. an bestimmten Wochentagen nicht auszuführen). oder zu bestimmten Tageszeiten usw.). Der Satz solcher Einstellungen in Nagios wird normalerweise als Dienst bezeichnet und sie werden durch einen separaten Block in der Datei definiert, der die Parameter des gesteuerten Systems beschreibt. Da der Service viele Parameter enthält (etwa anderthalb Dutzend) und viele davon normalerweise wiederholt werden, ist es üblich, die sich wiederholenden Teile in Vorlagen (Vorlage) zu beschreiben und in der Servicebeschreibung einfach direkt auf eine solche Vorlage zu verweisen (Vorlagenbeschreibungen werden in der Datei templates.cfg gespeichert). Bitte beachten Sie, dass die Verschachtelung in Vorlagen erlaubt ist: Einige der Parameter können in einer separaten Vorlage getrennt und in anderen Beschreibungen verwendet werden.

Jede Regelstrecke muss in der Nagios-Konfiguration beschrieben werden. Der Einfachheit halber erfolgt dies in separaten Dateien (nach Gerätetypen), die beim Start des Servers darin enthalten sind allgemeine Konfiguration. Anfänglich sind Links zu diesen Dateien „durch Anweisungen“ auskommentiert. Wenn Sie also mit der Überwachung einer beliebigen Geräteklasse beginnen müssen, sollten Sie zunächst das Symbol „#“ in der entsprechenden Zeile der Datei nagios.cfg entfernen und fügen Sie dann den Systembeschreibungsblock der entsprechenden Datei hinzu.

Infolgedessen führt Nagios regelmäßig bestimmte Befehle auf überwachten Systemen aus, sammelt die Ergebnisse und benachrichtigt die Bediener im Falle eines kritischen Ereignisses. Kontrollergebnisse können gespeichert (standardmäßig werden keine Leistungsdaten gespeichert) und in angezeigt grafische Form B. zur Analyse (siehe Abschnitt „Grafiken in Nagios zeichnen"). Nagios bietet Ihnen auch die Möglichkeit, Befehle zuzuweisen, die ausgeführt werden, wenn Ereignisse eintreten. Auf diese Weise können Sie auftretende Probleme automatisch beheben.

Wenn das System viele Computer und Geräte steuert, ist es praktisch, sie zu gruppieren. In Nagios können Sie Gruppen von Computern (Geräten) und Diensten erstellen. Wenn Sie beispielsweise den Status aller Dienste auf Servern überwachen möchten, sollten Sie eine Gruppe erstellen, die die Namen dieser Systeme enthält. Und wenn Sie beispielsweise den Status eines DNS-Namensauflösungsdienstes überwachen möchten, der auf mehreren läuft physikalische Systeme, dann ist es in diesem Fall praktisch, eine Gruppe für den Dienst zu erstellen: Es reicht aus, den Status der gesamten Gruppe wie gewohnt zu sehen, um sicherzustellen, dass die DNS-Dienste auf allen Computern funktionieren. Dies kann die Verwaltungs- und Überwachungseinstellungen vereinfachen.

Von den allgemeinen Konfigurationseinstellungen notieren wir auch die Parameter der Operatoren - diejenigen Personen, an die das Programm bei bestimmten Ereignissen Nachrichten sendet. In Nagios können einzelne Operatoren auch zu Gruppen zusammengefasst und so konfiguriert werden, dass sie Nachrichten eines bestimmten Typs an eine bestimmte Gruppe von Spezialisten senden. Sie können auch Zeiträume festlegen. Sie können verwendet werden, um beispielsweise verschiedene Arten von Steuerungen an Wochentagen und Wochenenden anzuwenden, z verschiedene Wege Benachrichtigungen an Administratoren (zum Beispiel nachmittags am Email, und nachts - zu einem Pager) usw.

Alarme können eskaliert werden: Bei wiederholten Ereignissen kann ein Alarm in der Hierarchie nach oben an den nächsten Spezialisten gesendet werden.

Struktur der Nagios-Konfigurationsdateien

Die Liste der Standard-Nagios-Konfigurationsdateien ist in Tabelle angegeben. 7.1.

Tabelle 7.1.
Liste der Nagios-Konfigurationsdateien

Dateiname

Zweck

Grundlegende Konfigurationsdatei. Enthält den Namen und die Adresse des Nagios-Administrators, Links zu Konfigurationsdateien, die beim Systemstart importiert werden

Ressourcenbeschreibungsdatei. Enthält Synonyme, um die tatsächlichen Standortpfade von Nagios-Befehlen vor dem Endbenutzer zu verbergen, um die Sicherheit zu verbessern

Optionen für die Einstellungen des Webservers. Diese Datei beschreibt zusätzliche Nagios-Benutzer und die ihnen erteilten Berechtigungen.

Objektordner usw.

Ordner mit getrennte Dateien, die beim Start von Nagios in die Konfiguration importiert werden. Diese Ordner sind in der Datei nagios.cfg beschrieben

Beschreibung der Nagios-Befehle

Nagios-Befehle werden in der Datei commands.cfg beschrieben (der Standardpfad ist /usr/local/nagios/etc/object/commands.cfg).

In der Praxis müssen Sie in der Datei commands.cfg normalerweise den Speicherort der ausführbaren Datei, ihren Namen, der in Nagios verwendet wird, und die Parameter der Startzeile angeben. Standard in der Konfigurationsdatei installiertes System enthält bereits einige Beschreibungen typischer Überprüfungsbefehle (Ping-Prüfungen - check_ping, HTTP-Serverprüfungen - check_http und viele andere). Basierend auf diesen Beispielen können Sie leicht Ihre eigenen Verifikationsteams erstellen, obwohl sie normalerweise vorgefertigte Designs verwenden, die für fast jede Kontrolloption leicht im Internet zu finden sind. Das Folgende ist ein Beispiel für eine Beschreibung des einfachsten Befehls - Überprüfung der Erreichbarkeit eines Hosts mit dem Ping-Befehl:

Diese Beschreibung erstellt einen Befehl namens check-host-alive, wobei der Befehl check_ping aus den installierten Nagios-Dienstprogrammen als ausführbare Datei verwendet wird. Die in Dollarzeichen eingeschlossenen Symbole zeigen die verwendeten Variablen an. In Bezug auf Nagios sind dies Makros (Makros), die zum Zeitpunkt der Ausführung durch Werte ersetzt werden. Da wir normalerweise an eine andere Definition von Makros gewöhnt sind, werden wir diese Namen in diesem Buch als Variablen bezeichnen. $hostaddress$ wird traditionell beim Aufruf durch den Namen des zu testenden Systems ersetzt, und $arg1$, $arg2$ usw. - nacheinander durch die in der Dienstbeschreibung angegebenen Argumente. Die Schlüssel w und c definieren die Werte, die verwendet werden, um den Status Warnung (w) oder Fehler (c) zu generieren. In der Regel können Sie absolute oder relative Werte angeben (oder beides: In einer typischen Konfiguration wird der w-Parameter beispielsweise mit 3000.0.80 angegeben). Der letzte Schalter (-p) gibt an, dass der Ping-Befehl fünf Prüfpakete senden soll.

Nagios-Dienste

Dienste werden normalerweise in Konfigurationsdateien getrennt für jeden Typ von gesteuerten Systemen beschrieben (in der allgemeinen Nagios-Konfiguration werden solche Dateien durch die cgf_file=...-Direktiven in der Datei nagios.cfg importiert). Das Erstellen von Konfigurationsdateien beginnt mit Vorlagenbeschreibungen, gefolgt von Hostbeschreibungen und schließlich Dienstbeschreibungen.

In einer Dienstbeschreibung können Sie gängige Werte aus Vorlagen nicht mehr wiederholen, daher könnte eine typische Dienstdefinition etwa so aussehen:

In diesem Beispiel verwendet der Dienst mit dem Namen „Memory Usage“ die Einstellungen aus der Vorlage „generischer Dienst“, damit der unter dem Namen „winserver“ beschriebene Host betrieben werden kann. Als Befehl führt der Dienst check_nt mit den Kommandozeilenoptionen memuse und -w 80 -c 90 aus (die zweite Option gibt an, welcher Rückgabewert des belegten Speichers als kritisch angesehen werden soll – 90 %, und welcher auf Warnung gesetzt werden soll – ab 80 bis 90%; selbst Parameter werden durch das Symbol "!") aufgelistet.

Normalerweise kann der gleiche Befehl verwendet werden, um Geräte des gleichen Typs zu steuern. In diesem Fall reicht es aus, in der Beschreibung des Dienstes alle diese Geräte durch Kommas getrennt aufzulisten:

Sie können Abhängigkeiten für Dienste definieren. Dies geschieht, um die "zusätzlichen" Warnungen auszublenden. Befinden sich beispielsweise einige der Systeme im lokalen Netzwerk nach dem Router, dann können Sie deren Abhängigkeit von diesem Gerät ermitteln. Es ist klar, dass wenn dieser Router ausfällt, alle Geräte dahinter nicht erreichbar sind. Das Konfigurieren einer Abhängigkeit ermöglicht es, im Falle eines Abhängigkeitsfehlers, Warnungen über die Nichtverfügbarkeit abhängiger Geräte auszublenden, bis der Switch wiederhergestellt ist, und den Status der entsprechenden Dienste auf ihnen nicht zu überprüfen.

Beschreibung von Regelstrecken in Nagios

Der Einfachheit halber werden verschiedene Arten von Regelstrecken normalerweise in verschiedenen Konfigurationsdateien beschrieben. Die Liste der verwendeten typischen Konfigurationsdateien ist in usr/local/nagios/etc/nagios.cfg angegeben, und einige der Dateien sind auskommentiert. Wenn Sie also Switches im Netzwerk steuern müssen, kommentieren Sie die Zeile #cfg_file=/usr/local/nagios/etc/objects/switch.cfg usw.

Die Beschreibung des Hosts selbst (wird in der Datei windows.cfg, oder switch.cfg, oder printer.cfg etc. enthalten sein) kann in diesem Fall minimal so aussehen:

Es gibt zwei Parameter, die in die Hostbeschreibung aufgenommen werden können, die die Maßnahmen bestimmen, die im Falle eines Systemausfalls zu ergreifen sind:

Nagios führt den check-host-alive-Befehl aus und sobald eine Änderung im Zustand des Hosts erkannt wird, wird das Server-Neustart-Programm ausgeführt. Auf diese Weise können Sie beispielsweise gestoppte Dienste auf überwachten Servern starten, Systeme neu starten usw.

Zur Vereinfachung der Analyse können Hosts in Gruppen zusammengefasst werden. Dazu müssen Sie die Gruppe in der Konfigurationsdatei wie folgt beschreiben:

Genau wie bei Diensten können Sie bei Hosts die Abhängigkeiten einiger Systeme von anderen beschreiben.

Beschreibung der Zeitparameter

Zeitparameter werden verwendet in verschiedene Konfigurationen: in den Beschreibungen von Hosts (der Zeitraum, in dem Sie überwachen müssen, und der Zeitraum, in dem Sie Nachrichten senden müssen), Dienste und Kontakte (Zeiträume, in denen Sie Nachrichten nach Hosts und nach Diensten senden können). Die Syntax zum Definieren eines neuen Zeitraums ist anhand der Beispiele in der Datei /usr/local/nagios/etc/objects/timeperiods.cfg leicht verständlich.

Es ist notwendig, der Vorlage in der Beschreibung einen Namen zu geben und die darin enthaltenen Zeitbereiche zeilenweise aufzulisten. Außerdem können Sie die Namen der Wochentage, Monate und fortlaufenden Nummern (letzter / erster Montag des Monats) verwenden. Zeiträume können durch Komma getrennt aufgelistet werden. Falls erforderlich, können in einer anderen Vorlage beschriebene Zeiträume aus einer Vorlage ausgeschlossen werden, indem die Exclude-Direktive gefolgt von einer Aufzählung der Zeiträume (durch Kommas getrennt) verwendet wird.

Verwenden der in Nagios integrierten Steuerbefehle

Mit Standard Installation von Nagios und Plugins enthält es eine Reihe von Befehlen (Plugins), die zur Steuerung von Systemen verwendet werden können. Eine Liste davon ist in der Tabelle angegeben. 7.2.

Tabelle 7.2.
Liste der Nagios-Plugins

Dienstprogramm

Zweck

Steuern von Updates für Linux-Systeme mit apt-get-Befehlen. Ermöglicht bei entsprechender Konfiguration den Start des Update-Vorgangs

Steuerung der Breezecom Wi-Fi-Signalstärke

Mit diesem Plug-in können Sie mithilfe des SSH-Protokolls Befehle auf einem Remote-System ausführen

Überprüfen der CLAMD-Verbindung ( Antivirus Programm) mit Remote-Host

Überprüfen des Status von Hosts in einem Linux-Cluster

Überprüfen der Verfügbarkeit von DHCP-Servern im Netzwerk

Überprüfen des DNS-Dienstes auf dem Host (mit dem Befehl dig)

Überprüfen der Speicherplatznutzung (native und gemountete Festplatten)

Überprüfung des Nutzungsvolumens von Laufwerken, die über das SMB-Protokoll verbunden sind (in der Regel sind dies Laufwerke von Windows-Systemen)

Überprüfen des DNS-Serverbetriebs mit nslookup

Tuning-Plug-in: Gibt einfach den numerischen Parameter und die Zeichenfolge zurück, die beim Ausführen beschrieben wurden

Überprüfen, wann Dateien erstellt wurden

Dienstüberprüfung des Flexlm-Lizenzmanagers

Überprüfen der FTP-Verbindung zum Remote-Host

Überprüfen des Status von Hewlett Packard-Druckern c installierte Karte JetDirect (Überprüfung erfolgt über das SNMP-Protokoll)

HTTP-Verbindungen zu einem entfernten System prüfen. Die Prüfung kann sowohl über das HTTP-Protokoll als auch über das HTTPS-Protokoll erfolgen. Sie können die Verbindungsaufbauzeit, die Gültigkeitsdauer der Serverzertifikate sowie die Serverantwort steuern (indem Sie nach einer bestimmten Zeichenfolge in der Antwort suchen, einschließlich der Verwendung regulärer Ausdrücke).

Überprüfung entfernter Hosts über das ICMP-Protokoll

Statusprüfung lokale Festplatte(auf einem Linux-System) mit S.M.A.R.T.-Technologie

check_ifoperstatus

Auftragsstatus prüfen Netzwerkschnittstelle auf einem bestimmten Linux-System

Überprüfen des Status einer Netzwerkschnittstelle auf einem bestimmten Linux-System

Überprüfen des Betriebs eines entfernten Hosts über das IMAP-Protokoll. Sie können die Serverantwort auf die an ihn gesendete Imap-Anforderungszeichenfolge analysieren

Überprüfung des Nagios IRCD-Plugins

Testen einer JABBER-Verbindung zu einem entfernten Host

Überprüfen des LDAP-Servers (Sie können eine Anfrage senden, um nach dem entsprechenden Attribut zu suchen)

Dieselbe Überprüfung des LDAP-Servers, nur über sichere Verbindungen (unter Verwendung des SSL-Protokolls)

Überprüfung des Linux-Boots

Überprüfen von Linux-Systemprotokollen auf eine Zeichenfolge

Überprüfen der Anzahl der Nachrichten in der Warteschlange Mail-Server(funktioniert mit verschiedenen Versionen von sendmail, qmail)

Überprüft die angegebene Variable im MRTG-Protokoll (Multi Router Traffic Grapher) auf Mindest-/Maximalwerte (check_mrtgtraf sollte verwendet werden, um Leistungsparameter zu steuern)

Überprüft die im MRTG-Protokoll aufgezeichneten ausgehenden und eingehenden Verkehrswerte der Switches. Erfordert Erstinstallation des MRTG-Pakets (http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/mrtg.html)

Überprüft den Zustand des Nagios-Prozesses auf dem lokalen Rechner

Überprüfung der NNTP-Verbindung zum angegebenen Host

Dasselbe, aber unter Verwendung des NNTPS-Protokolls

NRPE Nagios-Plugin

Dieses Plugin sammelt Daten vom NSClient-Dienst auf Windows-Systemen

Überprüfung des NTP-Servers. Es wird empfohlen, anstelle dieses Plugins check_ntp_peer zu verwenden

Überprüfung des NTP-Servers. Ermöglicht die Auswertung, unter anderem des Jitters (Jitter) des Zeitsignals

Dieses Plugin prüft den Zeitunterschied zwischen lokaler Server und angegebene Remote-Zeitserver

Wird verwendet, um Daten von Novell-Servern zu sammeln. Erfordert die Installation zusätzlicher Pakete

Überprüft die Verbindung zum Oracle-Server, lässt Sie die Größe der Datenbanken und die Verfügbarkeit abschätzen Freiraum, Zustand der Cache-Puffer usw.

Überprüft den Status des Over-CR Collector Daemon auf einem Remote-System (http://www.molitor.org/overcr)

Testet eine Verbindung zu einem entfernten System mithilfe von Ping-Paketen

Überprüfung entfernter Hosts mit dem POP-Protokoll. Ermöglicht Ihnen, eine Abfragezeichenfolge an den Mailserver zu senden und die Serverantwort zu parsen

Überprüft den Status von Linux-Systemprozessen

Überprüft den Status des REAL-Dienstes (RTCP-Verbindungen)

Überprüft den Status eines RPC-Dienstes auf dem angegebenen Host

Überprüft den Status von Hardwaresensoren auf einem Linux-System. Informationen von Sensoren werden mit dem Paket lm_sensors abgerufen

Überprüft eine sichere IMAP-Kanalverbindung zum Server. Kontrollierte Antwortzeit und Inhalt (durch Analyse der Antwort auf eine bestimmte Anfrage), Gültigkeit von Zertifikaten

Überprüft die SMTP-Verbindung zum Server. Die Antwort des Mailservers kann analysiert werden gegebene Saiten. Die Reaktionszeit wird ebenfalls gesteuert

Scannen entfernter Systeme (und Abrufen von Daten von ihnen) über SNMP

Überprüft eine POP-Verbindung über einen sicheren Kanal zum Server. Kontrollierte Antwortzeit und Inhalt (durch Analyse der Antwort auf eine bestimmte Anfrage), Gültigkeit von Zertifikaten

Überprüfung der Verbindung zum SSH-Server

Überprüft die SMTP-Verbindung über einen sicheren Kanal zum Server. Die Antwort des Mailservers kann auf die angegebenen Zeichenfolgen analysiert werden. Die Reaktionszeit wird ebenfalls gesteuert

Prüft auf freien Speicherplatz in der Auslagerungsdatei des lokalen Systems

Überprüfung der TCP-Verbindung zum angegebenen System. Das Vorhandensein einer Antwort, ihre Zeit, das Vorhandensein bestimmter Zeichenfolgen in der Antwort usw. werden überprüft.

Überprüfen der Uhrzeit auf dem angegebenen Host

Überprüfung der UDP-Verbindung zum angegebenen System. Das Vorhandensein einer Antwort, ihre Zeit, das Vorhandensein bestimmter Zeichenfolgen in der Antwort usw. werden überprüft.

Überprüfen des Status von unterbrechungsfreien Stromversorgungen auf einem lokalen oder entfernten Linux-System. Das Plugin erfordert, dass der UPSD-Daemon (http://www.networkupstools.org) auf dem System installiert ist.

Überprüfen der Anzahl der lokal angemeldeten Benutzer

Überprüfung des WI-FI-Signalpegels

Jedes dieser Plugins enthält Hilfeinformationen, die die Funktionen seiner Verwendung beschreiben (Anzeige der Hilfe zum Befehl<плагин>-h).

Um das Plugin für die Systemüberwachung zu verwenden, muss Nagios den Befehl beschreiben, der es verwendet. Die Datei commands.cfg enthält einige der am häufigsten verwendeten Beispiele für die Systemsteuerung. Im praktischen Einsatz von Nagios sollte diese Datei um eigene Steuerbefehle erweitert werden.

Überwachung von Windows-Servern in Nagios

Für die Überwachung von Windows-basierten Systemen wurden verschiedene Agenten entwickelt. Die am häufigsten verwendeten davon sind NSClient++, NC_NET (http://sourceforge.net/projects/nc-net) und OpMonAgent (http://www.opmon.org/project/opmonagent.zip). Die Funktionalität dieser Agenten ist fast identisch, daher werden wir die Verwendung des NSClient++-Agenten in Betracht ziehen, der nach Meinung des Autors der beliebteste Agent aus der genannten Liste ist.

Der NSClient++-Agent ist unter http://trac.nakednuns.org/nscp/ verfügbar. Dieses Programm kann als Archiv (zip) oder heruntergeladen werden Setup-Datei(msi) und unterschiedliche Versionen des Agenten sollten für 32-Bit- und 64-Bit-Plattformen verwendet werden. Wenn Sie das Archiv heruntergeladen haben, müssen Sie es in den gewünschten Ordner entpacken und den Windows-Dienst mit dem Befehl installieren

NSClient++ -installieren

Bequemer ist es, eine msi-Datei zu verwenden, da der Installationsassistent in diesem Fall einige der Einstellungen basierend auf den Ergebnissen Ihrer Antworten sofort zur Agentenkonfiguration hinzufügt (Abb. 7.15).

Reis. 7.15.
Konfigurieren der NSClient++-Programmeinstellungen.
Die während der Installationsphase eingegebenen Benutzereinstellungen werden vom Programm in der Konfigurationsdatei gespeichert

Nach der Installation müssen Sie dem Dienst erlauben, mit dem Desktop zu interagieren, wofür Sie die Eigenschaften des Dienstes öffnen sollten ( Bedienfeld | Verwaltung | Dienstleistungen| Suchen Sie den Dienst NSClientpp... (der vollständige Name hängt von der Version ab) und öffnen Sie seine Eigenschaften) und aktivieren Sie die Option Desktop-Interaktion zulassen.

Bevor Sie den Dienst starten, Notwendigüberprüfen Sie seine Einstellungen. Öffnen Sie dazu die Datei nsc.ini (im Installationsordner des Agenten) und kommentieren Sie die Zeilen aus, die den Programmmodulen entsprechen, die für die Systemüberwachung verwendet werden sollen. Genügend detaillierte Beschreibungen Konfigurationsparameter sind in der Plugin-Dokumentation unter http://trac angegeben. nakednuns.org/nscp/wiki/doc/Configuration.

Beim Einrichten einer Konfiguration sollten Sie von dem Grundsatz ausgehen, dass Sie nicht mehr Optionen einbauen sollten, als aktuell notwendig sind. Wenn Sie beispielsweise nicht vorhaben, Informationen über WMI-Abfragen zu erhalten, sollten Sie das Modul CheckWMI.dll nicht laden.

Achten Sie auf die Möglichkeit, den Agenten im Diagnosemodus auszuführen. In diesem Fall können Sie sowohl potenzielle Fehler in der Konfigurationsdatei sehen als auch Ihre eigenen Abfragen debuggen (Abb. 7.16).

Reis. 7.16.
NSClient++ Programmfenster im Diagnosemodus

Um NSClient++ im Diagnosemodus zu starten, reicht es aus Befehlszeile wählen

NSClient++ /test

Im NSClient++-Fenster können Sie erstens die Ergebnisse des Ladens aller Module sehen und zweitens Ihre eigenen Befehle eingeben und die Ergebnisse sowohl von Anfragen vom Nagios-Server als auch von lokalen Befehlen sehen. Auf Abb. 7.16 zeigt das Plugin-Debugging-Fenster, in dem der Befehl CheckDriveSize ShowAll MinWarnFree=20% MinCritFree=10% Drive=D:\ eingegeben wird und die Systemantwort sichtbar ist.

Mit dem NSClient++-Plugin können Sie die in der Tabelle gezeigten Parameter steuern. 7.3. Einzelheiten zur Verwendung sind in der technischen Dokumentation (http://trac.nakednuns.org/nscp/wiki/CheckCommands) aufgeführt, und es ist einfach, Ihre eigenen Befehle zur Überwachung des Windows-Zustands anhand der verfügbaren Beispiele zu schreiben.

Tabelle 7.3.
Windows-Einstellungen, gesteuert von NSClient++

Parameter

Beschreibung

Steuert die Größe einer Datei oder eines Ordners

Steuert die Menge an freiem oder verwendetem Speicherplatz auf Festplatten oder Wechseldatenträgern (der Laufwerkstyp kann im Befehl ausgewählt werden)

Steuert Dateien basierend auf ihrem Erstellungsdatum, letzter Zugriffszeit, Dateischreibvorgang oder Dateigröße

Sucht nach Fehlermeldungen in der Protokolldatei. Da es normalerweise viele solcher Nachrichten gibt, ist die Verwendung von diese Kontrolle belastet das System stark

Überwacht die CPU-Auslastung für einen konfigurierbaren Zeitraum

Steuert die Systemverfügbarkeit

CheckServiceState

Überwacht den Zustand Windows-Dienste(Eine kritische Meldung wird generiert, wenn der tatsächliche Status des Dienstes nicht mit dem übereinstimmt, der als Parameter im Befehl angegeben ist). Sie können alle Dienste gleichzeitig überwachen, indem Sie eine Ausnahme festlegen. Als Name des Dienstes müssen Sie denjenigen angeben, der in den Eigenschaften des Dienstes angezeigt wird

Überwacht den Zustand Windows-Prozesse. Tatsächlich ermöglicht es Ihnen, den Status des Prozesses zu überwachen, der anhand des Namens der ausführbaren Datei gefunden wird. Kann auch über die Anzahl gleichzeitig laufender Prozesse gesteuert werden

Überwacht den Zustand des virtuellen und physischen Speichers; der Parameter der Anzahl der geschriebenen Speicherseiten ist verfügbar (committed pages)

Überwacht Leistungszählerwerte. Zählerobjekte sind wünschenswert - für eine einfache Verwendung - in den Beschreibungen von Befehlen (Diensten) zu setzen

CheckAlwaysOK
CheckAlwaysCRITICAL
CheckAlwaysWARNUNG
Mehrere prüfen
Kreuzen Sie OK an
Überprüfen Sie KRITISCH
Überprüfen Sie WARNUNG
CheckVersion

Die sogenannten Helfer. Sie geben einen vorgegebenen Wert zurück (der anhand des Namens des Befehls beurteilt werden kann). Wird beim Einrichten und Debuggen des Systems verwendet

Die aufgeführte Liste ist nicht auf die Fähigkeit zur Steuerung von Windows-Systemen beschränkt. Sie können steuerbare Parameter beispielsweise durch die Verwendung externer Skripte hinzufügen.

Überwachung Windows-Systeme kann auf Basis verschiedener Protokolle durchgeführt werden. Die am häufigsten verwendeten Protokolle sind NSClient und NRPE (für „passive“ Überwachung können Sie auch das NSCA-Protokoll verwenden, über das Sie in der Online-Dokumentation mehr lesen können). In der Praxis können Sie alle verwenden, Sie müssen nur die entsprechenden Module in der Client-Einstellungsdatei (nsc.ini) aktivieren / deaktivieren. Gleichzeitig ist das NRPE-Protokoll nach Meinung des Autors etwas flexibler in der Anwendung und bietet eine Verschlüsselung des Datenaustauschs. Bei Verwendung des NRPE-Protokolls ist die Befehlssyntax wie folgt aufgebaut:

check_nrpe ... -c<команда>-a<аргументы>

Die Überprüfung des verfügbaren physischen Speichers kann beispielsweise wie folgt erfolgen:

check_nrpe -H 192.168.0.9 -c CheckMem -a MaxWarn=70% MaxCrit=>80% type=physical

Überwachung von Windows-Systemen auf Basis von WMI

NSClient++ enthält das Modul CheckWMI.dll, mit dem Sie ein Windows-System mit dem WMI-Toolkit steuern können.

Das CheckWMI-Modul besteht eigentlich aus zwei Untermodulen: CheckWMIValue und CheckWMI. Das Modul CheckWMIValue ist optimiert, um numerische Werte zu kontrollieren. Zum Beispiel die aktuelle Prozessorauslastung (das ist die prozentuale Anzahl der Auslastung) oder die Monitorauflösung (die Anzahl der Pixel) usw. In diesem Befehl können Sie einfach die zu überwachenden Parameter und die Minimal-/Maximalwerte angeben erlaubt, zum Beispiel so:

CheckWMIValue "(!LANG:Query=PelsWidth aus win32_DisplayConfiguration auswählen" !}
MinCrit=640 MinWarn=800 Check:Width=PelsWidth

Der hier gezeigte Befehl ist für die Verwendung im Debug-Modus geschrieben (nsclient++ /test). Es fragt die horizontale Anzeigeauflösung ab und meldet einen kritischen Zustand, wenn sie gleich oder kleiner als 640 ist, und gibt eine Warnung aus, wenn der Wert 800 nicht überschreitet. Von den Funktionen zur Verwendung dieses Befehls stellen wir fest, dass nach der Abfragezeichenfolge (what in Anführungszeichen eingeschlossen) müssen Sie Parameter mit minimalen / maximalen Werten schreiben und erst dann den Namen des Parameters angeben, der vom Befehl gesteuert wird (PelsWidth). Lassen Sie uns auch die Check-Option erklären, die auf der Kommandozeile verwendet wird. Nach Check müssen Sie den Namen des Parameters eingeben, der in der Steuerung verwendet wird (Sie können den Namen auch aus der Beschreibung in WMI speichern, aber es ist oft bequemer, Ihren eigenen Namen einzugeben) und den entsprechenden Namen das Klassenobjekt (dasjenige, das beispielsweise im Objektbrowser des WMI-Viewers angezeigt wird).

Weitere Beispiele (einschließlich Optionen für die Nagios-Konfiguration) sind unter http://trac.nakednuns.org/nscp/wiki/CheckWMIValue verfügbar.

Das CheckWMI-Modul sollte verwendet werden, wenn entweder das Parsen eines von einer WMI-Abfrage zurückgegebenen Zeichenfolgenparameters oder das Abfragen mehrerer Werte erwartet wird. Bei der Verwendung von CheckWMI werden Abfragezeichenfolgen aufgrund der Notwendigkeit von Filtern etwas komplizierter. Die CheckWMI-Syntax wird unter http://nsclient.org/nscp/wiki/CheckWMI/CheckWMI beschrieben. Von ihrer Konstruktion her ähneln CheckWMI-Abfragen Filtern, die zum Analysieren von Systembetriebsprotokollen verwendet werden.

Überwachung von Linux-Servern in Nagios

Der Betrieb von Linux-Servern wird über das NRPE-Plugin gesteuert, und auf dem Nagios-Server muss es als Plugin installiert und gesteuert werden Linux-System- als Dämon. Zur Installation können sowohl die vorbereitete Version als auch die Quellcodes des Plugins verwendet werden.

Neben dem Standard-Set kann der Administrator bei der Überwachung alle verfügbaren Plug-Ins verwenden, die im Internet weit verbreitet sind.

Mit dem NRPE-Protokoll können Sie den Befehl check_nrpe auf einem überwachten Host aufrufen, um einen anderen Host zu überprüfen. Auf diese Weise können Sie ein bestimmtes Subnetz über einen Computer steuern. Bei dieser Organisation der Steuerung müssen sowohl der NRPE-Protokoll-Daemon als auch das Plugin auf dem als Proxy verwendeten Host installiert sein.

Systemüberwachung mit SNMP-Protokoll

Um über das SNMP-Protokoll zu arbeiten, muss das entsprechende Plugin in Nagios installiert sein. Es ist in den Nagios-Plugins enthalten, kann aber nur verwendet werden, wenn zuvor das Paket net-snmp installiert wurde. Wenn Sie beabsichtigen, das SNMP-Modul zu verwenden, muss dieses Paket daher vom Server http://net-snmp.sourceforge.net/ heruntergeladen werden, dann müssen die Plugins neu kompiliert und neu installiert werden. Der Autor würde empfehlen neue Installation Führen Sie zuerst den Befehl make clean aus, der die Einstellungen aus der vorherigen Installation löschen würde.

    Notiz

    Auf der Seite http://net-snmp.sourceforge.net/ wird das erforderliche Paket nur im Quellcode oder im RPM-Format präsentiert.

Nachdem Sie die SNMP-Überwachungsfunktion konfiguriert haben, müssen Sie 1 Funktionalität für die einfachsten Anforderungen testen. Überprüfen Sie beispielsweise die Dauer des Geräts:

/usr/local/nagios/libexec/check_snmp -H<адрес_устройства>-C
sysUpTime. 0

Als Antwort sollten Sie etwa Folgendes erhalten:

SNMP OK - Timeticks: (622339555) 72 Tage, 0:43:15,55 |

Der Befehl check_snmp kann nach einem Parameter fragen, der einen numerischen Wert annimmt, und prüfen, ob sein Wert innerhalb eines bestimmten Bereichs liegt. So können Sie Werte für den Warnungs- und kritischen Status (Schalter -w und -c) oder einen Wertebereich (durch Doppelpunkt getrennt) angeben. Bitte beachten Sie, dass wenn zB die zurückgegebene Zahl im Bereich von a bis b (b > a) als kritischer Wert interpretiert werden soll, der Bereich b: a angegeben werden muss. Wenn Sie einen Bereich in der "üblichen" Form wie a:b angeben, wird das Ergebnis als normaler Zustand betrachtet, wenn der zurückgegebene Wert in diesen Bereich fällt, und wenn dies nicht der Fall ist, als Warnung oder kritisch ( abhängig vom verwendeten Schlüssel). Außerdem kann der Befehl den zurückgegebenen Stringwert prüfen (der Wert, mit dem die Antwort geprüft wird, sollte im Schalter -s angegeben werden) oder sogar mit regulären Ausdrücken prüfen (Schalter -r, -R). Sie können auch mehrere Parameter in einer Anfrage auf einmal prüfen, indem Sie ihre OIDs durch Kommas getrennt auflisten, wie hier:

Nachdem die Anforderung kompiliert und debuggt ist, reicht es aus, den neuen Befehl in der Datei commands.cfg zu beschreiben und die erforderlichen Dienste zu den Beschreibungsdateien der gesteuerten Geräte hinzuzufügen.

Im Internet finden Sie eine ausreichende Anzahl von Beispielen für die Konfiguration von Nagios zur Steuerung von Geräten mit dem SNMP-Protokoll, die in die Praxis umgesetzt werden können. Так, по адресу http://wiki.nagios.org/index.php/Howtos:snmp-apc-smart-ups содержится описание настроек, с помощью которых можно контролировать состояние источников бесперебойного питания от APC (состояние батареи, параметры напряжения, температуру usw.).

Überwachung von Schaltanlagen

Aktive Netzwerkgeräte - Switches, Hubs, Modems usw. werden über das SNMP-Protokoll gesteuert (verwaltete Modelle). Sie können den Status der Geräteports abrufen, Warnungen ausgeben, wenn eine bestimmte Anzahl von Paketübertragungsfehlern auf den Ports auftreten, die Temperatur des Geräts und die Anzahl der VPN-Sitzungen überwachen. Für die Überwachung über das SNMP-Protokoll müssen Sie lediglich die entsprechenden Kennungen gemäß Beschreibung auswählen. In den meisten Fällen reicht dies zur Kontrolle aus.

Zusätzlich zu den angegebenen Parametern möchten Administratoren jedoch häufig die tatsächliche Auslastung der Geräte, den Prozentsatz der Nutzung, kennen Bandbreite. Diese Werte können nicht durch Abfragen des einen oder anderen Hardware-Status-Parameters ermittelt werden. Sie werden auf der Grundlage der Analyse periodisch empfangener Daten berechnet. Eines der beliebtesten Programme, MRTG, wurde speziell für eine solche Überwachung entwickelt. Seine Fähigkeiten zur Verarbeitung von Schalterparametern werden von Nagios verwendet.

Das MRTG-Programm sammelt Statistiken von aktiven Geräten unter Verwendung des SNMP-Protokolls, die anschließend unter Verwendung des check_mrtgtraf-Plugins zur Anzeige an Nagios übertragen werden.

Nach der Installation des MRTG-Programms müssen Sie Einstellungsdateien erstellen, in denen Sie die Geräte und Parameterwerte angeben, die das Programm sammelt. Diese Einstellungen sollten in der Datei /etc/mrtg.conf angegeben werden. Das Bilden der MRTG-Konfiguration ist eine ziemlich komplizierte Aufgabe, daher bietet das Paket spezielles Programm, die das Gerät automatisch abfragt und eine Konfigurationsdatei generiert - cfgmaker. Wenn Sie es ausführen, müssen Sie den Community-String und die Geräteadresse als Parameter angeben. Die Ausgabe des Programms soll in eine Datei umgeleitet werden, deren Werte wir dann einfach in die Einstellungsdatei importieren. Es ist praktisch, den Namen (oder die Adresse) des abgefragten Geräts als Namen einer solchen Datei zu verwenden:

cfgmaker [E-Mail geschützt] Adresse > /etc/mrtg/address.cfg

Basierend auf den Ergebnissen des cfgmaker-Befehls reicht es aus, nur die Datenblöcke in der Konfigurationsdatei zu belassen, die analysiert werden sollen Dieses Gerät. In Anbetracht der Tatsache, dass das Programm gemäß den Dateiinformationen Titel und Leistungsbeschreibungen auf den Chartseiten erstellt, ist es sinnvoll, die Namen und Beschreibungen der Positionen zu korrigieren, die in den Charts angezeigt werden sollen. Da es keinen Sinn macht, die Bandbreite nach Ports zu analysieren, an denen Endgeräte (Server, Workstations) angeschlossen sind, empfiehlt es sich, die Bandbreitenüberwachung nur für Trunk-Ports (Ports, die mit anderen Switches oder Hubs verbunden sind) zu führen.

Nach dem Bearbeiten der Einstellungsdatei können Sie das mrtg-Programm ausführen und die Gerätekonfiguration als Parameter angeben. Für Systeme mit UTF-8-Kodierung sieht der Befehl run so aus:

env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

Bei der Installation des MRTG-Pakets wird das System so konfiguriert, dass alle fünf Minuten automatisch Informationen von den Switches erfasst werden. Falls gewünscht, kann dieser Zeitraum verlängert werden, indem die Datei /etc/cron.d/mrtg entsprechend bearbeitet wird.

Leistungsdiagramme für einzelne Geräteports können angezeigt werden, indem Sie den Ordner http://nagiosserver/mrtg/ im Browser öffnen und die entsprechende Datei auswählen. Falls gewünscht, können Sie eine gemeinsame Indexdatei erstellen, um die Anzeige zu vereinfachen. Dies geschieht mit dem Indexmaker-Befehl. Die notwendigen Schlüssel zum Generieren der Datei lassen sich einfach per angeben Hintergrundinformation nach Aufruf von indexmaker -h.

Solange das oben beschriebene Setup gilt, können Sie die Nagios-Befehle check_mrtg und check_mrtgtraf verwenden, um Leistungsdaten zu sammeln. Der Befehl check_mrtgtraf erfordert die folgenden Parameter:

check_mrtgtraf -F -a -w eingehend, ausgehend -c eingehend, ausgehend -e Ablaufzeitraum

In diesem Beispiel gibt der Parameter -a an, ob der Maximalwert (max) für den Analysezeitraum berücksichtigt wird oder ob das Programm den Durchschnittswert (avg) auswertet. Nach den Tasten w und c werden Grenzwertpaare für ausgehenden und eingehenden Datenverkehr an diesem Port angezeigt. Auf welchem ​​Port das System Daten überwacht, wird durch die ausgewählte Protokolldatei bestimmt. Auf Abb. 7.17 zeigt ein Beispiel eines Diagramms, das vom mrtg-Paket generiert wird.

Reis. 7.17.
Switch-Port-Ladezeitplan

Verwenden Sie Ihre eigenen Überwachungsprogramme

Nagios macht es einfach, benutzerdefinierte Plugins zu erstellen, um jedes System zu überwachen. Als solche können beliebige ausführbare Dateien verwendet werden. Es ist lediglich darauf zu achten, dass diese den Abschaltcode gemäß Tabelle melden. 7.4.

Tabelle 7.4.
Rückkehrcodes des Nagios-Systemmonitors

Denken Sie beim Erstellen von Skripts daran, dass sie im Auftrag des Überwachungsagentendiensts ausgeführt werden. Standardmäßig hat dieser Dienst maximale Rechte für das lokale System, kann aber nicht mit Computern im Netzwerk interagieren. Wenn Sie beabsichtigen, Skripts zum Erfassen von Daten von anderen Computern zu verwenden, müssen Sie entweder Verbindungsvorgänge mit den entsprechenden Kontoeinstellungen skripten oder den Agenten so konfigurieren, dass er unter einem anderen Namen ausgeführt wird.

Plotten in Nagios

Die Nagios-Befehle, die Systeme überwachen, geben nicht nur den Status (gut oder schlecht) zurück, sondern auch Daten zu bestimmten Parametern (z. B. Prozentsatz der Festplattennutzung oder Anzahl der am System angemeldeten Benutzer). Diese Daten werden standardmäßig nicht gespeichert, können aber beispielsweise dazu verwendet werden, Grafiken zu den jeweiligen Diensten zu erstellen.

Um diese Funktion zu implementieren, müssen Sie ein zusätzliches Plugin installieren. Eines der beliebtesten Plugins zum Erstellen von Diagrammen in Nagios ist das Nagiosgraph-Paket, das unter http://sourceforge.net/projects/nagiosgraph/ heruntergeladen werden kann.

Auf Abb. Abbildung 7.18 zeigt ein Beispiel einer Seite zur Überwachung des Status von Diensten, auf der, wenn der Mauszeiger über den entsprechenden Parameter bewegt wird, ein Diagramm seiner Änderung dynamisch angezeigt wird. Falls gewünscht, kann der Administrator mit der Auswahl eines Zeitplans für jeden Dienst und für fortfahren festgelegter Zeitraum Zeit.

Reis. 7.18.
Beispiel für eine dynamische Diagrammseite

Einrichten der Nagios-Schnittstelle

Für Nagios wurden viele Add-Ons entwickelt, mit denen Sie die Anzeige von Überwachungsdaten an die Bedürfnisse des Administrators anpassen können. Anstelle einer taktischen Übersicht (Abbildung 7.19) können Sie beispielsweise anpassbare Netzwerkkarten verwenden, auf denen Nagios den Status jedes Geräts anzeigt.

Reis. 7.19.
Die Standardmethode zur Anzeige des zusammenfassenden Systemstatus in Nagios

Auf Abb. Abbildung 7.20 (Beispiel von der Website http://www.nagvis.org) zeigt eine reale Version der Überwachungskarte, die mit dem NagVis-Paket erstellt wurde.

Reis. 7.20.
Anzeige des Netzwerkstatus bei Verwendung des NagVis-Pakets

In diesem Fall zeigt Nagios Echtzeitindikatoren für Geräte und Links an. Gleichzeitig ist es möglich, auf der Karte zusammenfassende Zustände nach Gruppen (von Hosts und Diensten), Werte des tatsächlichen Verkehrs entlang von Kommunikationsleitungen anzuzeigen usw. Es ist klar, dass solche Darstellungen in der praktischen Verwendung sehr praktisch sind.

1 Beispiele verwenden SNMP-Version 1. Reale Umgebungen verwenden normalerweise Version 3, daher müssen die Beispiele mit Authentifizierungsparametern ergänzt werden.