Translations of this page:

Einbindung in Icinga / Nagios

Das Plugin check_snmptraps.pl

Mit dem neuen Plugin, kann nach bestimmten Traps in der DB gesucht und alarmiert werden! Auch die Ausgabe der Message von einem Trap ist möglich.

Vorrausetzung:
Installation des Perl-Moduls DBI

Installation:
Kopiert das Plugin Euer libexec-Verzeichnis von Icinga oder Nagios. Damit sich das Plugin nun noch Eure DB verbinden kann, müsst Ihr noch folgende Parameter im Plugin anpassen:

my $dbHost = "localhost";
my $dbName = "snmptt";
my $dbUser = "root";
my $dbPass = "";
my $dbTable = "snmptt";

Das wars!

Aufruf des Plugins:

-H (--hostname)
   Host der in der DB auf Traps geprüft werden soll
-C (--category)
   Kategory vom SNMP-Trap (optional)
-O (--oid)
   OID vom SNMP-Trap (optional)
-w (--warning)
   Prüft nur nach warning Traps in der Datenbank
-c (--critical)
   Prüft nur nach critical Traps in der Datenbank
-u (--unknown)
   Prüft nur nach unknown Traps in der Datenbank
     (Default ist die Option -w, -c  und -u gesetzt)
-r (--read)
   Prüft auch Trap in der Datenbank, die als gelesen markiert sind
-m (--message)
   Gibt die Message des letzten warning, critical und unknown Traps in der DB aus
      Diese Option benötigt die Option -w, -c oder -u
-t (--timeout)
   Zeit in Sekunden, bevor das Plugin abbricht(default=15)
-V (--version)
   Plugin version
-h (--help)
    Diese Hilfe 

Ein Aufruf des Plugins kann folgendermaßen aussehen:

 ./check_snmptraps.pl -H srv_tes_02 -m -c

Ausgabe:

 CRITICAL - 1 critical Trap: This was only a test message for NagTrap|'critical trap='1;;;;

oder

 ./check_snmptraps.pl -H srv_tes_02 -m -c -O '.1.3.6.1.4.1.10418.2.1.3.0.27'

Ausgabe:

 CRITICAL - 1 critical Trap: This was only a test message for NagTrap|'critical trap='1;;;;

usw. Derzeit ist es noch nicht Möglich Schwellwerte mit zu übergeben!

Das Plugin check_snmp_traps

Zum auslesen der in der Datenbank gespeicherten Traps ist das Plugin check_snmp_traps zuständig. check_snmp_traps wird bei den anderen Plugins im Verzeichnis libexec abgelegt.

Das Plugin ist ein Bash Script. In den ersten Zeilen muss daher der zu verwendende DB User mit Passwort eingetragen werden.

#!/bin/bash
#set -xv
#
# Script zum prüfen der SNMPTT Datenbank.
#
#
#set -xv
 
MYSQL=/usr/bin/mysql
MYSQL_USER=snmptt
MYSQL_DB=snmptt
MYSQL_PASS=snmptt
....

Danach kann das Plugin als Benutzer icinga oder nagios gestestet werden.

 check_snmp_traps -H <ip-adresse oder hostname>

Ob der Hostname oder die IP Adresse angegeben werden muss, ist davon abhängig wie das Feld „hostname“ in der Datenbank gefüllt wird. Dies ist abhängig von den Einstellungen in der snmptt.ini.

Icinga / Nagios Service Extinfo

Die Icinga / Nagios Service Extinfo sollte so aussehen:

define  serviceextinfo {
        host_name                       < NAGIOS HOST >
        service_description             SNMP Alerting
        notes                           SNMP Alerts
        notes_url                       http://<servername>/nagios/nagtrap/index.php?hostname=$HOSTADDRESS$
        }

Für Icinga:

define  serviceextinfo {
        host_name                       < ICINGA HOST >
        service_description             SNMP Alerting
        notes                           SNMP Alerts
        notes_url                       http://<servername>/icinga/nagtrap/index.php?hostname=$HOSTADDRESS$
        }

Einbindung in Icinga Classic UI

Hinweis:
Sollte der Icinga vom Standardpfad (/usr/local/icinga) abweichen, so muss dieser angepasste werden!

Um einen Link im Icinga anzulegen, muss folgende Datei editiert werden:

/usr/local/icinga/share/menu.html

Hier nun folgende Zeilen einfügen:

<h2>AddOn's</h2>
<ul>
   <li class="menuli_style1"><a href="/icinga/nagtrap/index.php" target="main">NagTrap</a></li>
</ul>

Vorher:

      <h2>Configuration</h2>
      <ul>
         <li class="menuli_style1"><a href="/icinga/cgi-bin/config.cgi" target="main">View Config</a></li>
      </ul>
   </div>
</body>
</html>

Nachher:

      <h2>Configuration</h2>
      <ul>
         <li class="menuli_style1"><a href="/icinga/cgi-bin/config.cgi" target="main">View Config</a></li>
      </ul>
      <h2>AddOn's</h2>
      <ul>
         <li class="menuli_style1"><a href="/icinga/nagtrap/index.php" target="main">NagTrap</a></li>
      </ul>
   </div>
</body>
</html>

Einbindung in Nagios

Hinweis:
Sollte der Nagios vom Standardpfad (/usr/local/nagios) abweichen, so muss dieser angepasste werden!

Um einen Link im Nagios z.B. in dem Bereich System anzulegen, muss folgende Datei editiert werden:

/usr/local/nagios/share/side.php

Hier nun folgende Zeile einfügen:

<li><a href="/nagios/nagtrap/index.php" target="<?php echo $link_target;?>">NagTrap</a></li>

Vorher:

<div class="navsection">
<div class="navsectiontitle">System</div>
<div class="navsectionlinks">
<ul class="navsectionlinks">
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=3" target="<?php echo $link_target;?>">Comments</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=6" target="<?php echo $link_target;?>">Downtime</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=0" target="<?php echo $link_target;?>">Process Info</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=4" target="<?php echo $link_target;?>">Performance Info</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=7" target="<?php echo $link_target;?>">Scheduling Queue</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/config.cgi" target="<?php echo $link_target;?>">Configuration</a></li>
</ul>
</div>
</div>

Nachher:

<div class="navsection">
<div class="navsectiontitle">System</div>
<div class="navsectionlinks">
<ul class="navsectionlinks">
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=3" target="<?php echo $link_target;?>">Comments</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=6" target="<?php echo $link_target;?>">Downtime</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=0" target="<?php echo $link_target;?>">Process Info</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=4" target="<?php echo $link_target;?>">Performance Info</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/extinfo.cgi?type=7" target="<?php echo $link_target;?>">Scheduling Queue</a></li>
<li><a href="<?php echo $cfg["cgi_base_url"];?>/config.cgi" target="<?php echo $link_target;?>">Configuration</a></li>
<li><a href="/nagios/nagtrap/index.php" target="<?php echo $link_target;?>">NagTrap</a></li>
</ul>
</div>
</div>
 
doku/nagios.txt · Zuletzt geändert: 2010/11/18 11:56 von mluebben     Nach oben