Montag, 15. Juli 2013

Meine entwickelten Nagios Plugins

Da ich sehr viel im Bereich Monitoring, speziell Nagios und Icinga, unterwegs bin, habe ich natürlich mit der Zeit auch einige Plugins selbst geschrieben oder auch andere Plugins nach meinen Vorstellungen, Anforderungen überarbeitet bzw. Funktionen nachgerüstet.

Meine eigenen Plugins sind meist in PHP oder Bash geschrieben, die überarbeiteten Plugins sind in PHP, Perl, Powershell, Python etc. geschrieben.

Die meisten davon gibt es zum freien Download bei http://exchange.nagios.org

Diese Plugins will ich hier kurz vorstellen:

Eigenentwicklungen:
  • check_beronet (geschrieben in PHP)
    Überprüft die hervorragenden VoIP Gateways (ISDN,FXS/FXO,PRI zu SIP) der deutschen Marke Beronet (http://www.beronet.com)
    • Fehler der Ports (inkl. Performance Daten)
    • Status des Links
    • Gesamt Anrufe + durchschnittliche Zeit pro Gespräch (inkl. Performance Daten)
    •  Momentane Anrufe (inkl. Performance Daten)
    • Auslastung der Box/Karte (inkl. Performance Daten)
    • Systeminformationen: Revision, Firmware, Seriennummer
    • Uptime
  • check_all4xxx (geschrieben in PHP)
    Überprüft Sensorboxen [ALL4000/ALL4500] der deutschen Marke Allnet auf Schwellenwerte (z.B. Temperatur, Luftfeuchtigkeit, Rauchsensor, Lichtsensor, ...) und gibt diese inkl. Performance Daten zurück.
    Die Sensoren werden über Zahlenwerte ausgewählt.
  • check_otrs_tickets.php (geschrieben in PHP)
    Eines meiner weiteren Lieblingsprodukte, OTRS das führende Open-Source Ticket-Request System.
    Dieses Plugin überprüft eine konfigurierte OTRS Datenbank auf eine Menge an Tickets. Damit es flexibel ist, können die IDs der entsprechenden States und Queues über einen Parameter abgefragt und konfiguriert werden. Liefert ebenfalls Performance Daten zurück.
  • check_file_count.sh (geschrieben in BASH)
    Überprüft einen Pfad auf eine konfigurierbare Menge an Dateien und gibt die älteste Datei zurück (im Anwendungsfall gibt es einen Spooler, der manchmal nicht aufräumt..), inkl. Performance Daten.
  • check_file_count.ps1 (geschrieben in Powershell)
    Das selbe Plugin, nur für Windows. Überprüft einen Pfad auf eine konfigurierbare Menge an Dateien, inkl. Performance Daten.
Überarbeitete/übernommene Plugins:
  • check_printer (geschrieben in PHP) - hinzugefügt/überarbeitet: Performance Daten, zusätzliche Drucker, snmp v2c, snmp v3 vorbereitet, Bug-Fixes
    Dieses Plugin fragt die gängigsten Drucker mit SNMP 1/v2c und später mit SNMP Version 3 ab
    • counter - z.B. Menge an bisherig gedruckten Seiten, inkl. Performance Daten
    • toner/Ink  - liefert den Füllstand des Toners oder der Tinte zurück, inkl. Performance Daten
    • paper -  liefert den Füllstand der Papiertrays zurück (jedes tray kann separat abgefragt werden!), inkl. Performance Daten
    • hardware - gibt Hardware-Daten (z.B. CPU) zurück
    • parts - gibt den Zustand bestimmter Bauteile zurück
    • alerts - gibt Ereignisse zurück, unwichtige Ereignisse werden soweit ignoriert
    • accounting -  gibt den Status einer vorher konfigurierten Kostenstelle zurück
  • check_ups (geschrieben in PERL) -  hinzugefügt/überarbeitet check_APC: Schwellenwerte, Verbleibende Zeit auf Batterie, Ausgabe, Bug-Fixes
    Dieses Plugin fragt die gängigen USVen ab
    • Globaler Status
    • UPS/USV Type
    • Batteriekapazität
    • Leistung in %
    • Temperatur
    • Leistung in Wh
    • Verbleibende Zeit auf Batterie
    • Seriennummer, Herstellungsdatum (informativ..), Firmware-Version

Das sind natürlich nicht alle, aber schon mal eine gewisse Auswahl, vielleicht hilft es dem einen oder anderen mal.

Falls jemand Interesse, Ideen für neue Plugins oder Änderungen an bestehenden Plugins hat, bitte einfach kurz melden.

Kommentare:

  1. Hallo Olli,

    deine check_ups Plugins sind echt Top. Hilft mir bei zwei MGE USV Anlagen super!

    Nun haben wir aber noch zwei USV Anlagen von FTH (http://www.dfm-select.de)
    Diese haben eine Netman 100 Plus SNMP Karte drin. Leider haben die eine andere OID-Range.

    Ich würde ja gern selbst deine Scripte anpassen. Aber leider bin ich kein Programmierer. Nun die Frage ob vielleicht du Zeit findest hierfür ein passendes Plugin zu schreiben.
    MIB Dateien gibt es hier zum Downloaden: http://www.riello-ups.com/downloads/8-netman-101-and-102-plus

    Ein SNMPWalk: https://docs.google.com/file/d/0B3zRfVz1aB2FUkhXWGtONExGM1E/edit?usp=sharing

    Grüße
    Andreas

    AntwortenLöschen
    Antworten
    1. Moin Andreas,

      bitte versuch doch mal den SNMP-Walk mit den inkludierten MIB Dateien durchzuführen, dann muss ich die Ergebnisse nicht mühsam selbst übersetzen ;-)

      Ich schau mal, was man da rausholen kann.

      Grüße,
      Oliver

      Löschen
  2. Hey Oliver,

    danke schonmal für deine Rückmeldung.

    Hier mal ein SNMP-Walk mit MIB Datei.
    https://docs.google.com/file/d/0B3zRfVz1aB2FR1d3LUJLMFp3VFk/edit?usp=sharing

    Leider erstellt unter Windows mit dem Tool MibBrowser. Da ich leider unter Ubuntu es zurzeit nicht schaffe einen SNMP-Walk mit MIB Datei durchzuführen. Obwohl die benötigte RFC1628.MIB unter /usr/share/snmp/mibs liegt und in der snmp.conf Datei der Pfad angeben ist. Aber das ist ein anderes Thema. :)

    Hoffe der obige Walk hilft dir auch weiter.

    Grüße
    Andreas

    AntwortenLöschen
  3. Nun habe ich den SNMP-Walk doch noch direkt aus Ubuntu geschafft. Haben den Parameter -m All noch angehängt dann ging es. ;)

    https://docs.google.com/file/d/0B3zRfVz1aB2FMTZrWWJoQzNnTFk/edit?usp=sharing

    Grüße
    Andreas

    AntwortenLöschen
  4. Vielen Dank für das check_file_count.ps1 Skript.

    Hier sollte allerdings der "#nagios return stuff" Block vor "#check params" gesetzt werden, da bei falschen Pfaden sonst immer ExitCode 0 zurück gegeben wird.

    Grüße,
    Jürgen

    AntwortenLöschen
    Antworten
    1. Hallo Jürgen,

      vielen Dank für den Hinweis, ich habe das Skript entsprechend angepasst!

      Viele Grüße
      Oliver

      Löschen