GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So überwachen Sie Hosts mit Nagios NRPE unter Debian 9

In unserem letzten Artikel haben wir gezeigt, wie man Nagios Core auf Debian 9 installiert, um die Dienste einiger Remote-Hosts zu überwachen. Dazu müssen Sie den Nagios NRPE-Daemon und die Plugins auf den Remote-Hosts installieren. Es ist ein Paket, das auf allen Remote-Hosts installiert wird, die überwacht werden müssen.

NRPE (Nagios Remote Plugin Executor) ist ein Addon, mit dem Sie Nagios-Plugins auf entfernten Linux-Rechnern remote ausführen können. Es ermöglicht Ihnen, die Metriken von Remote-Maschinen (Festplattennutzung, CPU-Last usw.) zu überwachen. Es kann auch mit einigen Windows-Agent-Addons wie NSClient++ kommunizieren, sodass Sie Skripte ausführen und Metriken auch auf entfernten Windows-Hosts überprüfen können. In diesem Artikel erkläre ich Ihnen, wie Sie Ihre Linux- und Windows-Host-Server mit Nagios überwachen können.

Wie funktioniert NRPE?

NRPE ist ein Überwachungsagent und -protokoll, das häufig verwendet wird, um entfernte Hosts mit Nagios zu überwachen. NRPE funktioniert mit:

  • ein Client (check_nrpe-Plugin), der auf dem Nagios-Server läuft
  • ein Daemon, der auf dem Remote-Server läuft, Anfragen vom Client verarbeitet und Statusinformationen zurückgibt.

Wir können den Prozess durch das folgende Schema zusammenfassen

Nagios Server (check_nrpe)-> Remote host (NRPE deamon)-> service_to_check
Nagios Server (check_nrpe) <-Remote host (NRPE deamon) <-service_to_check

Wenn Nagios eine Dienstressource von einem entfernten Rechner aus überwachen muss:

  • Nagios führt die check_nrpe aus Plugin und teilen Sie ihm mit, welche Dienste geprüft werden müssen
  • Die check_nrpe Plugin kontaktiert den NRPE-Daemon auf dem entfernten Host
  • Der NRPE-Daemon führt das entsprechende Nagios-Plugin aus, um den Dienst oder die Ressource zu prüfen
  • Die Ergebnisse der Dienstprüfung werden vom NRPE-Daemon zurück an check_nrpe übergeben plugin, das dann die Prüfergebnisse an den Nagios-Prozess zurückgibt.

NRPE kann so konfiguriert werden, dass es nur Verbindungen von einer bestimmten IP-Adresse akzeptiert. Sie können ihm einfach mitteilen, welche Befehle über die Verbindung ausgeführt werden sollen. Es werden nur Befehle zugelassen, die der lokale Host konfiguriert hat, und Sie können bestimmen, ob Argumente von Nagios gesendet werden.

1) Fügen Sie einen Linux-Host auf dem Nagios-Server hinzu

Um das NRPE-Add-On zu verwenden, müssen Sie einige Aufgaben sowohl auf dem Nagios-Server als auch auf dem entfernten Linux-Host ausführen, auf dem der NRPE-Daemon installiert ist. In unserem Fall ist der Remote-Linux-Host ein Debian 9-Server. Ich werde die Besonderheiten des Verfahrens für Centos- und Ubuntu-Server zeigen.

a) Konfigurieren Sie den Remote-Linux-Host

Wir müssen die Nagios- und NRPE-Plugins auf dem Remote-Server installieren, um sie zu überwachen.

Installieren Sie das Nagios-Plugin

Wir müssen zuerst Voraussetzungen installieren

# apt install -y autoconf gcc libc6 libmcrypt-dev make libssl-dev wget bc gawk dc build-essential snmp libnet-snmp-perl gettext

Installieren Sie auf Centos 7 die Voraussetzungen wie unten beschrieben

# yum install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils epel-release perl-Net-SNMP

Jetzt erstellen wir unser Arbeitsverzeichnis in /opt Verzeichnis, in das wir die Plugins herunterladen werden

# mkdir /opt/nagios && cd /opt/nagios
# wget --no-check-certificate -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/archive/release-2.2.1.tar.gz
# tar zxf nagios-plugins.tar.gz
# cd nagios-plugins-release-2.2.1

Jetzt werden wir die Plugins kompilieren und installieren

# ./tools/setup
# ./configure
# make
# make install

Installieren Sie das nrpe-Plugin

Jetzt können wir die neueste Version von nrpe herunterladen, nämlich nrpe plugin 3.2.0 wenn ich diesen Artikel schreibe.

# cd /opt/nagios/
# wget --no-check-certificate -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/archive/nrpe-3.2.0.tar.gz
# cd nrpe-nrpe-3.2.0
# tar xzf nrpe.tar.gz && cd nrpe-nrpe-3.2.0

Jetzt werden wir es kompilieren

# ./configure --enable-command-args
# make all

Für Ubuntu lautet der Kompilierungsbefehl

# ./configure --enable-command-args --with-ssl-lib=/usr/lib/x86_64-linux-gnu/
# make all

Wir müssen auch Nagios-Benutzer und -Gruppen auf dem Remote-Linux-Host erstellen

# make install-groups-users

Wir installieren die Binärdateien, das NRPE Daemon, der check_nrpe plugin und die Konfigurationsdateien

# make install && make install-config

Jetzt ordnen wir die nrpe-Portnummer (5666) zu zu einem benannten Dienst

# echo >> /etc/services
# echo '# Nagios services' >> /etc/services
# echo 'nrpe    5666/tcp' >> /etc/services

Wir installieren Dienste und stellen sicher, dass nrpe beim Systemstart gestartet wird

# make install-init && systemctl enable nrpe.service

Firewall konfigurieren

Es ist jetzt wichtig, die Firewall so zu konfigurieren, dass sie die gesamte nrpe-Kommunikation akzeptiert

# iptables -I INPUT -p tcp --destination-port 5666 -j ACCEPT

Wir werden iptables installieren -beständig der das automatische Laden der gespeicherten iptables-Regeln übernimmt. Dazu müssen die Regeln in der Datei /etc/iptables/rules.v4 gespeichert werden

# apt install -y iptables-persistent

Achten Sie darauf, mit ja zu antworten vorhandene Regeln zu speichern. Normalerweise können Sie iptables-save verwenden Befehl zum Speichern neuer iptables-Regeln.

Konfigurieren Sie auf Centos 7 die Firewall wie folgt

# firewall-cmd --zone=public --add-port=5666/tcp
# firewall-cmd --zone=public --add-port=5666/tcp --permanent

Autorisieren Sie den Nagios-Server, mit dem Host zu kommunizieren

Nach der Installation des nrpe-Plugins müssen wir alle Hosts konfigurieren, die mit dem nrpe-Plugin auf dem Linux-Host kommunizieren dürfen. Das bedeutet, dass wir die zu erreichenden Nagios-Serverinformationen (IP-Adresse usw.) angeben. Die Datei /usr/local/nagios/etc/nrpe.cfg ist diejenige, die alle nrpe-Einstellungen enthält.

Suchen Sie die Direktive allowed_hosts und fügen Sie die private IP-Adresse Ihres Nagios-Servers hinzu

allowed_hosts=172.16.20.128

Suchen Sie die Direktive dont_blame_nrpe um festzustellen, ob der NRPE-Daemon Clients erlaubt, Argumente für ausgeführte Befehle anzugeben.

dont_blame_nrpe=1

Starten und testen Sie den nrpe-Dienst

Um den nrpe-Dienst zu starten, verwenden Sie den folgenden Befehl

# systemctl start nrpe.service

Um nun zu sehen, ob die Dinge richtig funktionieren, müssen wir sicherstellen, dass der nrpe-Daemon zuerst läuft

# netstat -at | egrep "nrpe|5666"
tcp        0      0 0.0.0.0:nrpe            0.0.0.0:*               LISTEN     
tcp6       0      0 [::]:nrpe               [::]:*                  LISTEN

Jetzt können wir testen, ob nrpe lokal funktioniert, indem wir das check_nrpe-Plugin ausführen welches installiert wurde

# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v3.2.0

Sie sollten die obige Ausgabe haben, die anzeigt, dass das nrpe-Plugin auf dem Linux-Host perfekt funktioniert. Die installierte NRPE-Konfigurationsdatei enthält mehrere Befehlsdefinitionen, mit denen wir unseren Remote-Host überwachen können.

Jetzt müssen wir den Nagios-Server konfigurieren

b) Konfigurieren Sie den Nagios-Server, um den Remote-Host zu erkennen

Dieser Artikel geht davon aus, dass Sie den Nagios-Server bereits auf Debian 9 installiert und konfiguriert haben. Das bedeutet, dass Sie ihn jetzt so konfigurieren, dass er unseren Remote-Linux-Host erkennt und hinzufügt. Wenn Sie es noch nicht konfiguriert haben, folgen Sie bitte diesem Artikel.

Auf dem Nagios-Server müssen wir auch das nrpe-Plugin installieren und eine Konfigurationsdatei für den Linux-Host erstellen.

nrpe-Plugin installieren

Das Verfahren ist genau dasselbe wie auf dem Linux-Host, aber vergessen Sie nicht, dass wir auf dem Nagios-Server bereits einen Nagios-Benutzer und eine Nagios-Gruppe haben, sodass wir diesen Schritt überspringen können. Wir werden in unser Nagios-Arbeitsverzeichnis wechseln

# cd /opt/nagios
# wget --no-check-certificate -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/archive/nrpe-3.2.0.tar.gz
# cd nrpe-nrpe-3.2.0

Jetzt werden wir es kompilieren

# tar xzf nrpe.tar.gz && cd nrpe-nrpe-3.2.0
# ./configure --enable-command-args
# make all

Wir werden Binärdateien und Konfigurationsdateien installieren

# make install && make install-config

Wir müssen auch den nrpe-Dienst hinzufügen

# echo >> /etc/services
# echo '# Nagios services' >> /etc/services
# echo 'nrpe    5666/tcp' >> /etc/services

Wir werden Dienste installieren und sicherstellen, dass nrpe beim Systemstart gestartet wird

# make install-init && systemctl enable nrpe.service

Firewall und nrpe-Dienst konfigurieren

Wir werden auch die Firewall konfigurieren, um die nrpe-Kommunikation mit allen Hosts zuzulassen.

# iptables -I INPUT -p tcp --destination-port 5666 -j ACCEPT
# systemctl start nrpe.service

Testen Sie die Kommunikation mit dem Remote-Linux-Host nrpe-Daemon

Wir müssen sicherstellen, dass check_nrpe Das Plugin kann mit dem NRPE-Daemon auf dem Remote-Host kommunizieren. Wir werden die check_nrpe verwenden plugin mit der IP-Adresse des Remote-Hosts, wie Sie unten sehen können

# /usr/local/nagios/libexec/check_nrpe -H 172.16.20.129
NRPE v3.0

Jetzt werden wir eine Befehlsdefinition verwenden, um zu versuchen, einen Dienst zu überwachen (CPU-Last prüfen ) auf dem Remote-Linux.

# /usr/local/nagios/libexec/check_nrpe -H 172.16.20.129 -c check_load
CRITICAL - load average: 0.01, 0.28, 0.31|load1=0.010;0.150;0.300;0; load5=0.280;0.100;0.250;0; load15=0.310;0.050;0.200;0;

Sie können sehen, dass wir eine Antwort des Remote-Linux zur Überwachung haben. Es zeigt, dass unser Plugin auf dem Remote-Host perfekt funktioniert und die Kommunikation gut ist.

c) Definieren Sie einen neuen Linux-Host und Dienste auf dem Nagios-Server

Nagios enthält standardmäßig einige Objektdefinitionen in /usr/local/nagios/etc/objects Verzeichnis auf dem Nagios-Server, das jeden Hosttyp darstellt, den Sie möglicherweise überwachen müssen.

# ls /usr/local/nagios/etc/objects/
commands.cfg    printer.cfg    switch.cfg    localhost.cfg   timeperiods.cfg   windows.cfg
contacts.cfg    templates.cfg  

Zuerst erstellen wir einen Ordner, in dem wir alle Konfigurationsdateien des Remote-Hosts speichern, die der Nagios-Server überwachen muss.

# mkdir /usr/local/nagios/etc/objects/servers 

Nagios hat eine Vorlagendatei templates.cfg die einige Beispiele für Objektdefinitionsvorlagen enthält, auf die von anderen Hosts, Diensten usw. verwiesen wird. Diese Definitionen werden hilfreich sein, wenn wir jede Remote-Host-Dateidefinition erstellen werden.

Standardmäßig überwacht Nagios den Server, auf dem es installiert ist, über die localhost.cfg Datei. Wir werden diese Datei verwenden, um die Konfigurationsdatei für unseren Linux-Host zu erstellen.

# cp /usr/local/nagios/etc/objects/localhost.cfg /usr/local/nagios/etc/objects/servers/linux.cfg

Jetzt werden wir unsere Datei bearbeiten, um unseren Host hinzuzufügen.

# cd /usr/local/nagios/etc/objects/servers/
# vim linux.cfg
###############################################################################
###############################################################################
#
# HOST DEFINITION
#
###############################################################################
###############################################################################

# Define a host for the local machine

define host{
        use                     linux-server    ; Name of host template to use
						; This host definition will inherit all variables that are defined
						; in (or inherited by) the linux-server host template definition.
        host_name               debian9
        alias                   Debian 9
        address                 172.16.20.129
        }
###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################

# Define a service to "ping" the local machine

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       debian9
        service_description             PING
	check_command			check_ping!100.0,20%!500.0,60%
        }

# Define a service to check the disk space of the root partition
# on the local machine.  Warning if < 20% free, critical if
# < 10% free space on partition.

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       debian9
        service_description             Root Partition
	check_command			check_local_disk!20%!10%!
        }

Ihre Datei sollte wie oben aussehen. Diese Ausgabe wurde abgeschnitten. Sie werden mehr Dienstdefinitionen haben.

Die Direktive address sollte die Adresse des zu überwachenden Remote-Hosts enthalten.

Die Direktive host_name muss den Namen enthalten, der auf Ihrem Nagios-Dashboard erscheinen wird, und er sollte für Sie indikativ sein, also entfernen Sie den Standard-localhost Wert und ersetzen Sie ihn durch einen anderen Namen (debian9 ist der Name in meinem Fall). Sie sollten diese Direktive überall dort ersetzen, wo sie in der Datei erscheint, dh für Host- und alle Service-Definitionen.

Die in der Datei enthaltenen Dienstdefinitionen sind Standard. Ich gebe Ihnen unten drei Dienstdefinitionen, die Sie am Ende der Datei für imap, ftp und smtp hinzufügen können wenn Sie diese Dienste auf Ihrem Remote-Linux überwachen müssen.

#Checking FTP service

define service{
        use				generic-service         ; Inherit default values from a template
        host_name               	debian9
        service_description     	FTP
        check_command   		check_ftp
        }

#Checking SMTP service

define service{
        use             		generic-service         ; Inherit default values from a template
        host_name               	debian9
        service_description     	SMTP
        check_command   		check_smtp
        }

#Checking IMAP service

define service{
        use             		generic-service         ; Inherit default values from a template
        host_name               	debian9
        service_description     	IMAP
        check_command   		check_imap
        }

d) Aktualisieren Sie die Nagios-Konfigurationsdatei und starten Sie den Dienst neu

Nachdem wir nun ein neues Verzeichnis für unsere entfernten Hosts erstellt haben, müssen wir angeben, wo Nagios es finden kann, um es zu verwenden. So wird die Standard-Nagios-Konfigurationsdatei /usr/local/nagios/etc/nagios.cfg bearbeitet

 vim /usr/local/etc/nagios.cfg
# OBJECT CONFIGURATION FILE(S)
# These are the object configuration files in which you define hosts,
# host groups, contacts, contact groups, services, etc.
# You can split your object definitions across several config files
# if you wish (as shown below), or keep them all in a single config file.

# You can specify individual object config files as shown below:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg

# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
#cfg_file=/usr/local/nagios/etc/objects/linux.cfg

# Definitions for monitoring a Windows machine
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg

# Definitions for monitoring a router/switch
#cfg_file=/usr/local/nagios/etc/objects/switch.cfg

# Definitions for monitoring a network printer
#cfg_file=/usr/local/nagios/etc/objects/printer.cfg


# You can also tell Nagios to process all config files (with a .cfg
# extension) in a particular directory by using the cfg_dir
# directive as shown below:

cfg_dir=/usr/local/nagios/etc/objects/servers
#cfg_dir=/usr/local/nagios/etc/servers
#cfg_dir=/usr/local/nagios/etc/printers
#cfg_dir=/usr/local/nagios/etc/switches
#cfg_dir=/usr/local/nagios/etc/routers

Sie können feststellen, dass ich die Direktive cfg_dir=/usr/local/nagios/etc/objects/servers hinzugefügt habe was das zu berücksichtigende Verzeichnis des neuen Hosts angibt. Sie können feststellen, dass die Direktive cfg_file zeigt die verschiedenen Konfigurationsdateien für Dienste und Hosts an, die von Nagios verwendet werden.

Das bedeutet, dass wir kein Verzeichnis erstellt haben, sondern einfach die Datei linux.cfg im Standard /usr/local/nagios/etc/objects Verzeichnis, sollten wir einfach die Direktive cfg_file=/usr/local/nagios/etc/objects/linux.cfg hinzufügen müssen damit Nagios die Konfiguration unseres entfernten Hosts erkennt.

Jetzt müssen wir überprüfen, ob die Nagios-Konfiguration keine Fehler enthält, bevor wir den Dienst neu starten

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

Nagios Core 4.3.2
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2017-05-09
License: GPL

Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
	Checked 19 services.
	Checked 2 hosts.
	Checked 1 host groups.
	Checked 0 service groups.
	Checked 1 contacts.
	Checked 1 contact groups.
	Checked 17 commands.
	Checked 5 time periods.
	Checked 0 host escalations.
	Checked 0 service escalations.
Checking for circular paths...
	Checked 2 hosts
	Checked 0 service dependencies
	Checked 0 host dependencies
	Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Sie können sehen, dass wir keinen Fehler haben, also können wir den Nagios-Dienst neu starten

# systemctl restart nagios

e) Zugriff auf die Nagios-Weboberfläche

Jetzt, da alles in Ordnung ist, können wir unsere Nagios-Verwaltungsseite starten, um das Ergebnis unserer Konfiguration zu sehen. Greifen Sie auf Ihrem lokalen Server über http://localhost/nagios zu

Ich habe auf mein Remote-Linux zugegriffen, deshalb können Sie sehen, dass ich die IP meines Nagios-Servers angegeben habe. Sie können sehen, dass wir unser neues Remote-Linux mit seinen Diensten haben.

Wir haben den FTP-Dienst noch nicht auf unserem Remote-Host installiert. Aus diesem Grund befindet sich dieser Dienst in einem kritischen Zustand.

2) Fügen Sie einen Windows-Host auf dem Nagios-Server hinzu

Um Windows-Hosts mit Nagios zu überwachen, müssen Sie NSClient++ installieren auf Ihren entfernten Windows-Systemen. NSClient++ (nscp) ist ein Agent, der auf zu überwachenden Remote-Hosts bereitgestellt werden muss. NSClient++ bietet viele Möglichkeiten, Ihr System zu überprüfen:

  • Systemzustand abrufen (CPU, Festplatten …)
  • Leistungszähler erhalten
  • Protokolldatei prüfen
  • Geplante Aufgabe prüfen usw.

a) Konfigurieren Sie den Windows-Host

Auf einem entfernten Windows-Host müssen wir nsclient++ installieren. Sie können es von der offiziellen Seite herunterladen. Wir haben die msi-Datei NSCP-0.5.0.62-x64.msi heruntergeladen

nsclient installieren und konfigurieren

Starten Sie den Installationsvorgang.

Wählen Sie bei diesem Schritt Weiter

Wählen Sie in diesem Schritt benutzerdefiniert

Geben Sie die Nagios-Server-IP und das Nagios-Passwort für den Webzugriff an. Kleben Sie auch alle "Aktivieren " Optionen (Plugins prüfen, check_nt, check_nrpe, Webserver, nscaClient ) und abgesicherter Modus.

Sie können installieren, indem Sie das Kennwort leer lassen. Sie müssen es nicht angeben.

Überprüfen Sie den NSClient-Status

Nachdem es installiert ist, überprüfen wir, ob der NSClient-Dienst gestartet wurde, indem wir services.msc öffnen . Suchen Sie nun nach nsclient und überprüfen Sie seinen Status (muss Running sein ). Prüfen Sie, ob der Starttyp auf „Automatisch“ eingestellt ist "

Wir können sehen, dass unser Plugin funktioniert. Jetzt können wir unsere Nagios-Serverseite konfigurieren.

b) Konfigurieren Sie den Nagios-Server

Auf dem Nagios-Server müssen wir unseren neuen Windows-Host definieren, um ihn mit seinen Diensten zu überwachen.

Neue Windows-Hostdefinition hinzufügen

Wir werden eine neue Host-Definition für den Windows-Rechner hinzufügen, den wir überwachen werden, indem wir /usr/local/nagios/etc/objects/windows.cfg ändern Datei. Für unseren Linux-Host kopieren wir die Windows-Konfigurationsdatei auf die Server Verzeichnis, das wir zuvor erstellt haben.

# cp /usr/local/nagios/etc/objects/windows.cfg /usr/local/nagios/etc/objects/servers/

Normalerweise befinden wir uns bereits in /usr/local/nagios/etc/objects/servers/ Verzeichnis auf dem Server. Also bearbeiten wir die Windows-Hostdatei.

# vim windows.cfg

###############################################################################
###############################################################################
#
# HOST DEFINITIONS
#
###############################################################################
###############################################################################

# Define a host for the Windows machine we'll be monitoring
# Change the host_name, alias, and address to fit your situation

define host{
	use		windows-server	; Inherit default values from a template
	host_name	winserver	; The name we're giving to this host
	alias		My Windows Server	; A longer name associated with the host
	address		172.16.20.131	; IP address of the host
	}

###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################

# Create a service for monitoring the version of NSCLient++ that is installed
# Change the host_name to match the name of the host you defined above

define service{
	use			generic-service
	host_name		winserver
	service_description	NSClient++ Version
	check_command		check_nt!CLIENTVERSION
	}


# Create a service for monitoring the uptime of the server
# Change the host_name to match the name of the host you defined above

define service{
	use			generic-service
	host_name		winserver
	service_description	Uptime
	check_command		check_nt!UPTIME
	}

Versuchen Sie, etwas als Ausgabe oben zu haben. Diese Ausgabe wurde abgeschnitten. Die IP-Adresse muss Ihre Windows-IP-Adresse sein. Sie können einen anderen host_name verwenden Wert.

In der Windows-Hostdatei ist standardmäßig keine Dienstdefinition vorhanden, um den Ping zu überprüfen, sodass Sie den Dienst unten am Ende der Datei hinzufügen können. Dies ist der standardmäßige check_ping Dienst in der Linux-Hostdatei vorhanden.

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       winserver
        service_description             PING
	check_command			check_ping!100.0,20%!500.0,60%
        }

Denken Sie daran, dass wir den Nagios-Passwortschutz angegeben haben. Wenn Sie in der NSClient++-Konfigurationsdatei auf dem Windows-Rechner ein Passwort angegeben haben, müssen Sie das vorhandene check_nt ändern Befehlsdefinition, um das Passwort einzuschließen, indem Sie die commands.cfg ändern Datei. Öffnen Sie also die Datei und suchen Sie die entsprechende Zeile wie folgt:

# vim /usr/local/nagios/etc/objects/commands.cfg

define command{
			command_name	check_nt
			command_line	$USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$
			}

Wir müssen die Definition des Befehls check_nt ändern, um das Schlüsselwort „-s “ aufzunehmen " Argument wobei ist das Nagios-Passwort, das Sie auf dem Windows-Host angegeben haben (nagios in unserem Fall) während der Installation von NSClient++.

Wenn Sie das Passwort während der NSClient-Installation nicht angeben, können Sie diesen Schritt überspringen. Wenn Sie das Passwort festgelegt haben und es aufheben möchten, können Sie die NSClient-Datei mit Notepad an der Eingabeaufforderung wie unten bearbeiten

Und kommentieren Sie die Passwortzeile wie unten

Zu diesem Zeitpunkt sollten Sie das Passwort in der command.cfg nicht angeben müssen Datei, können Sie diesen Schritt überspringen.

Überprüfen Sie die Nagios-Konfigurationsdatei und starten Sie den Dienst neu

Nachdem wir unsere Windows-Host-Definition abgeschlossen haben, können wir jetzt überprüfen, ob unser Nagios keine Fehler zählt. Sie sollten bemerken, dass wir in der Nagios-Hauptkonfigurationsdatei /usr/local/nagios/etc/nagios.cfg nicht einmal eine Direktive hinzugefügt haben weil wir die Windows-Datei auf den Servern bearbeitet haben Verzeichnis, das wir zuvor angegeben haben. Wenn wir dieses Verzeichnis nicht erstellt haben, sollten wir einfach die Direktive cfg_file=/usr/local/nagios/etc/objects/windows.cfg auskommentieren

Jetzt können wir die Dateifehler überprüfen

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

Nagios Core 4.3.2
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2017-05-09
License: GPL

Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
	Checked 27 services.
	Checked 3 hosts.
	Checked 1 host groups.
	Checked 0 service groups.
	Checked 1 contacts.
	Checked 1 contact groups.
	Checked 25 commands.
	Checked 5 time periods.
	Checked 0 host escalations.
	Checked 0 service escalations.
Checking for circular paths...
	Checked 3 hosts
	Checked 0 service dependencies
	Checked 0 host dependencies
	Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Sie können sehen, dass wir keinen Fehler haben und ein neuer Host erkannt wurde. Jetzt haben wir 3 Hosts

# systemctl restart nagios

Zugriff auf die Nagios-Weboberfläche

Jetzt können Sie die Nagios-Dashboard-Seite öffnen, um unseren neuen Host mit seinen Prozessen zu sehen.

Sie können sehen, dass wir unseren Windows-Host hinzugefügt haben.

Wenn Sie sich die Dienste ansehen, können Sie den check_ping sehen die wir hinzugefügt haben. Wir haben den Explorer nicht gestartet, deshalb können Sie die kritische Nachricht dazu sehen.

Jetzt haben Sie zwei neue Server zu Ihrem Nagios-Dashboard hinzugefügt.

Schlussfolgerung

Wir haben gesehen, wie Linux- und Windows-Hosts auf einem Nagios-Server hinzugefügt werden, der auf Debian 9 implementiert ist. Wir haben beschrieben, wie NRPE installiert und konfiguriert wird die für die Überwachungsfunktion verantwortlich ist. Es wird verwendet, um Linux- und Windows-Rechner mit Nagios zu überwachen. Auf Windows-Hosts müssen Sie NSClient++ installieren.


Debian
  1. So installieren Sie Nagios unter Debian 9

  2. So installieren Sie Nagios unter Debian 10

  3. So installieren Sie Nagios unter Debian 11

  4. So überwachen Sie aktive VPN-Sitzungen und Temperatur mit Nagios

  5. So überwachen Sie Netzwerk-Switch und Ports mit Nagios

So bearbeiten Sie die Hosts-Datei unter Debian

Wie man Protokolldateien in Debian 10 ansieht oder überwacht

So installieren Sie Ansible unter Debian 8 (Jessie)

So installieren Sie Ansible unter Debian 9 (Stretch)

So überwachen Sie eine Linux-Maschine über Nagios

So richten Sie Apache Virtual Hosts unter Debian 11 ein