Custom Nagios NCPA Plugin: Remote Ping

In diesem Artikel möchte ich euch zeigen wie man sein eigenes benutzerdefiniertes Plugin in den Nagios Cross-Platform Agent integriert.

In diesem Fall möchten wir das ein Client lokal einen Ping ausführt und die Ausgabe dann an Nagios zurück liefert. Das kann hilfreich sein wenn man zum Beispiel nicht nur die Round Trip Time von Nagios zum Client wissen will, sondern auch von Client zu Client.

Windows NCPA-Client Installation

  1. Download des NCPA Clients für Windows:
    https://www.nagios.org/ncpa/#downloads
  2. Nach Aufruf des Setups können die Einstellungen auf Default gelassen werden, nur bei dem Token muss ein sicheres Passwort für die Agent-Kommunikation gewählt werden:
    NCPA_Setup_Token
  3. Ob die Installation erfolgreich war kann über die Web-GUI des Agents überprüft werden, indem man mit dem Browser auf https://localhost:5693/ navigiert:
    ncpa_dashboard

Remote-Ping Plugin Installation

  1. Download:
    https://exchange.nagios.org/directory/Plugins/Uncategorized/Operating-Systems/Windows-NRPE/NagiosPluginsNT/details
  2. Zip-Archiv entpacken nach: C:\Program Files (x86)\Nagios\NCPA\plugins
    ncpa_check_ping
  3. Zum Test kann das Plugin über das NCPA API-Dashboard aufgerufen werden:
    ncpa_check_ping_api

Check Installation am Nagios Server

  1. Installation des Nagios Plugins check_ncpa.py:
    wget https://assets.nagios.com/downloads/ncpa/check_ncpa.tar.gz
    tar xzvf check_ncpa.tar.gz
  2. Test der Agent-Kommunikation:
    python check_ncpa.py -H 192.168.1.161 -t 2XI3ADFIMlaRlpC3 -P 5693 -M system/agent_version
    OK: Agent_version was ['2.0.3']
  3. Command-Definition in der commands.cfg anlegen:
    define command {
     command_name check_ncpa
     command_line python $USER1$/check_ncpa.py -H $HOSTADDRESS$ $ARG1$
    }
  4. Service-Definition des Hosts konfigurieren:
    define service{
     use generic-service
     host_name Windows Test Machine
     service_description REMOTE Ping
     check_command check_ncpa!-t '2XI3ADFIMlaRlpC3' -P 5693 -M plugins/check_ping.exe -a '-H 8.8.8.8'
    }
  5. Nagios Konfiguration neu laden
  6. Fertig! Hier die Ansicht im Dashboard:
    remote_ping_serviceremote_ping_pnp4nagios

Windows Eventlog Monitoring mit Nagios NCPA

In diesem Artikel möchte ich euch zeigen wie man die EventLogs eines Windows-Rechners mit Nagios überwacht.

Es gibt viele Möglichkeiten eine EventLog Überwachung zu realisieren. Nach langem suchen und testen mit NSClient++, WMI, NagEventLog oder sogar SNMP-Traps ist mein erste Wahl der Nagios Cross-Platform Agent, kurz NCPA.

NCPA ist ein moderner Agent für alle gängigen Betriebssysteme. Er unterstützt aktive und passive Checks, Custom Scripts, hat eine einheitliche API und eine sehr ansehnliche Web-GUI.

In meinem Beispiel versuche ich den Eintrag mit der Event-ID 10016 aus den System Logs abzufragen. Das hat keinen speziellen Grund, ihr könnt das ganz nach Bedarf anpassen.

Nagios_NCPA_EventLog

Windows Client Installation

  1. Download des NCPA Clients für Windows:
    https://www.nagios.org/ncpa/#downloads
  2. Nach Aufruf des Setups können die Einstellungen auf Default gelassen werden, nur bei dem Token muss ein sicheres Passwort für die Agent-Kommunikation gewählt werden:
    NCPA_Setup_Token
  3. Ob die Installation erfolgreich war kann über die Web-GUI des Agents überprüft werden, indem man mit dem Browser auf https://localhost:5693/ navigiert. Hier hat man auch die Möglichkeit die gewünschte Abfrage vorab zu testen:
    NCPA_WebGUI

Check Installation am Nagios Server

  1. Installation des Nagios Plugins check_ncpa.py:
    wget https://assets.nagios.com/downloads/ncpa/check_ncpa.tar.gz
    tar xzvf check_ncpa.tar.gz
  2. Test der Agent-Kommunikation:
    python check_ncpa.py -H 192.168.1.161 -t 2XI3ADFIMlaRlpC3 -P 5693 -M system/agent_version
    OK: Agent_version was ['2.0.3']
  3. Command-Definition in der commands.cfg anlegen:
    define command {
     command_name check_ncpa
     command_line python $USER1$/check_ncpa.py -H $HOSTADDRESS$ $ARG1$
    }
  4. Service-Definition des Hosts konfigurieren:
    define service{
     use generic-service
     host_name Windows Test Machine
     service_description EventID 10016
     check_command check_ncpa!-t '2XI3ADFIMlaRlpC3' -P 5693 -M logs -q name=System,severity=ERROR,logged_after=1h,event_id=10016 -c 0
    }
  5. Nagios Konfiguration neu laden
  6. Fertig! Hier die Ansicht im Dashboard:
    Nagios_EventLog_Monitoring