Monitoring Pt. II

Monitoring Pt. III
August 19, 2017
Monitoring Part I
August 19, 2017

Nachdem nun Nagios erfolgreich auf dem Server installiert ist und den Monitoring Server (localhost) bereits überwacht, kommen wir nun zum nächsten Schritt und fügen Netzwerkgeräte (clients) zur Überwachung hinzu. Folgende Arten der Überwachung werden dabei unterstützt:

  • SNMP Clients
  • Linux Clients
  • Windows Clients

1) SNMP Clients

a) Client

Die meisten Netzwerkgeräte wie Router, Switches, Drucker verfügen über eine SNMP Schnittstelle. In manchen Geräten ist SNMP bereits aktiviert, ansonsten kann man dies meistens über das Webinterface des Netzwerkgerätes erledigen:

Hier ist es wichtig, das richtige Protokoll auszuwählen rsp. sich zu merken. SNMP gibt es in der Version v1, v2 und v3. Ausserdem sollte man unbedingt den Community Namen ändern. Meistens lautet dieser auf public und dies ist allgemein bekannt und daher ein Sicherheitsrisiko.

b) Monitoring Server

Beim Server gibt es in den verschiedenen Konfigurationsdateien Anpassungen vorzunehmen. In meinem Beispiel wäre dies ein HPE Switch, von dem man wissen will, ob er online ist, wie lange er online ist und ob Port 1 aktiv ist.

Als erstes muss man in der /usr/local/nagios/etc/nagios.cfg Hauptkonfigurationsdatei die Konfigurationsdatei für den Switch mitgeben. Dies tut man, indem in der folgenden Zeile das Kommentarzeichen # entfernt wird:

#cfg_file=/usr/local/nagios/etc/objects/switch.cfg

Danach die /usr/local/nagios/etc/objects/switch.cfg bearbeiten. Der Switch wird als Host eingetragen. Dazu wählt man einen Hostnamen und trägt die richtige IP Adresse ein:

define host {
    use         generic-switch   
    host_name   hpe1920      
    alias       HP hpe 1920 Switch
    address     192.168.1.253     
    hostgroups  switches    
}

Als nächstes definiert man das Monitoring der Dienste und trägt den host_name ein. Der Ping-Dienst ist natürlich kein SNMP Befehl:

# Create a service to PING to switch
define service{
 use generic-service ; Inherit values from a template
 host_name hpe1920 ; The name of the host
 service_description PING
 check_command check_ping!200.0,20%!600.0,60%
 check_interval 5
 retry_interval 1 
 }

# Monitor uptime via SNMP
define service{
 use generic-service ; Inherit values from a template
 host_name hpe1920
 service_description Uptime 
 check_command check_snmp!-C CommunityName -o 1.3.6.1.2.1.1.3.0
 }

# Monitor Port 1 status via SNMP
define service{
 use generic-service ; Inherit values from a template
 host_name hpe1920
 service_description Port 1 Link Status
 check_command check_snmp!-C CommunityName -o 1.3.6.1.2.1.2.2.1.8.1 -r 1
 }

Die lange Zahl ist übrigens die OID des SNMP Befehls. Diese kann auf Linux mittels snmpwalk abgefragt werden. Sollte der Befehl nicht verfügbar sein, so muss man das snmp Paket noch nachinstallieren. Die OID findet man aber auch mittels einer Google-Suche. Sollte es mit dem check_snmp zu Fehler führen, so ging etwas beim Installieren der Pakete und Plugins im ersten Teil schief. Folgendes hilft:
libsnmp installieren:

# apt-get install libsnmp-dev

Ins Plugins Verzeichnis wechseln und neu kompilieren:

# cd /Downloads/nagios-plugins-2.2.1 
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install

2) Linux Clients

a) Client

Eine Linux Box ist prinzipiell per SNMP abfragbar. Sobald eine Installation von Paketen möglich ist, kann man die Abfrage aber auch über NRPE erledigen. Als Firewall verwende ich eine pfSense Box. Hier ist es so, dass diese ein Package Manager enthält. Dieser ist im System Menu untergebracht. Unter den verfügbaren Paketen findet man hier auch den NRPEv2 Service. Diesen installieren und danach im Menu Service konfigurieren. Wichtig ist vor allem den Nagios Server mit der IP-Adresse des Debian Servers einzutragen:

Ein solcher Paket Manager ist eher selten und so geht die Installation für Linux Computer über die Konsole. Ein Anleitung dazu findet man in diesem NRPE-Dokument. Wichtig ist zu wissen, dass der Client den NRPE Server betreibt! Es gibt bei Debian übrigens auch ein NRPE Paket und dies wird wie folgt installiert:

# apt-get install nagios-nrpe-server
b) Monitoring Server

Da der Client den NRPE Server betreibt, muss man auf dem Monitoring Server nur das Plugin installieren. Als erstes lädt man die aktuelle NRPE Version von NRPE. Ins Download Verzeichnis wechseln und die Datei extrahieren.

# tar xzf nrpe-3.1.0.tar.gz

Ins nrpe Verzeichnis wechseln und das Plugin installieren:

# ./configure 
# make check_nrpe
# make install-plugin

Den Client testen:

# /usr/local/nagios/libexec/check_nrpe -H 192.168.0.12

Als Resultat sollte die verwendete NRPE Version zurückkommen:

NRPE v3.x

oder

NRPE v2.x

Damit die Resultate auch im Nagios Webinterface erscheinen, sind noch folgende Konfigurationsdateien zu ändern oder zu erstellen. Als erstes die Haupt Konfigurationsdatei nagios.cfg ergänzen:


Danach die templates.cfg ergänzen:


Und die commands.cfg:


In der commands.cfg habe ich 2 Befehle hinzugefügt. Der zweite Befehl bezieht sich auf die NRPE Version 2.
Zum Schluss eine neue Datei linux-box.cfg erstellen:


Da die pfSense noch mit der NRPE v2 arbeitet, habe ich den betreffenden Check-Befehl ausgewählt.
Nun noch den Server neustarten:

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# systemctl restart nagios.service

3) Windows Clients

a) Client

Es gibt diverse Clients, die man auf einem Windows Server installieren kann. Sobald ich dazu komme, werde ich ein Windows Client einrichten und davon berichten.

b) Monitoring Server

Analog der Einrichtung eines Switches sind die Konfigurationsdateien anzupassen. Im nagios.cfg das #-Zeichen vor dem Windows Eintrag entfernen sowie im windows.cfg den Host und die Services bearbeiten.

Es können keine Kommentare abgegeben werden.