====== SNMP-Traps annehmen mit SNMPTT/NagTrap ====== ===== Voraussetzungen (Pakete) ===== * php5 * libconfig-inifiles-perl * snmpd apt-get install php5 libconfig-inifiles-perl snmpd Sicherstellen, dass in ''/etc/apache2/mods-enabled'' diese Links gesetzt sind: php5.conf -> ../mods-available/php5.conf php5.load -> ../mods-available/php5.load ===== snmptt ===== ''snmptt_1.2.tgz'' gibt es bei [http://downloads.sourceforge.net/snmptt/snmptt_1.2.tgz?modtime=1181989825&big_mirror=0 sourceforge.net] oder im Download-Bereich http://www.jbackes.de/downloads/nagios/snmptt/snmptt_1.2.tgz Entpacken und in das Verzeichnis wechseln, die Dateien an die richtigen Stellen kopieren und Ausführungsrechte setzen. cp snmptt /usr/sbin/ chmod +x snmptt cp snmptthandler /usr/sbin/ chmod +x snmptthandler cp snmptt.ini /etc/snmp/ Anpassungen in der ''snmptt.ini'' # mode = standalone mode = daemon # mysql_dbi_enable = 0 mysql_dbi_enable = 1 # damit auch unbekannte Traps weggeschrieben werden unknown_trap_log_enable = 1 # Benutzer-Informationen mysql_dbi_username = user mysql_dbi_password = password Hiernach im Verzeichnis ''/etc/snmp/'' die Datei ''snmptt.conf'' anlegen. Hier werden alle Traps definiert. Beispiel für den HP-Agent Testtrap: # HP Agents Test Trap EVENT cpqTestTrap .1.3.6.1.4.1.232.0.11003 "Test Trap" INFO FORMAT Test Trap Für den ''deamonmode'' muss folgendes in der ''/etc/snmp/snmptrapd.conf'' konfiguriert sein: disableAuthorization yes traphandle default /usr/sbin/snmptthandler Der ''snmptrapd'' übergibt somit dem ''snmptthandler'' den eingehenden SNMPTRAP. Das Startscript ''snmptt-init.d'' nach ''/etc/init.d/snmptt'' kopieren, ausführbar machen, anpassen, testen und starten. cp snmptt-init.d /etc/init.d/snmptt chmod +x /etc/init.d/snmptt Ein für Ubuntu angepasstes Startscript, findet sich auch im Downloadbereich: http://www.jbackes.de/downloads/nagios/snmptt/snmptt_startscript.txt (umbenennen und ausführbar machen nicht vergessen). Den ''snmptrapd'' mit der Option ''-On'' starten. (-On bedeutet, dass die Traps nummerisch an den snmptt übergeben werden) snmptrapd -On Das Verzeichnis ''/usr/spool/snmptt'' anlegen. Hier werden temporär Daten von snmptt gespeichert. ===== MySQL ===== ''mysql-server-5.0'' installieren: apt-get install mysql-server-5.0 Anlegen der snmptt DB: mysqladmin -p create snmptt Es wird automatisch ein User ''snmptt'' in der DB angelegt, der für das Frontend, snmptt und das Nagiosplugin genutzt werden kann. Diesem ein Passwort geben (z.B.: über phpmyadmin unter Rechte / Rechte ändern). ===== NagTrap ===== Herunterladen von [http://www.nagtrap.org/dokuwiki/doku.php?id=download:files nagtrap-0.1.2.tar.gz] In das htdocs - Verzeichnis von Nagios ( z.B. ''/usr/share/nagios2/htdocs/'') entpacken. Im Verzeichnis ''*/htdocs/nagtrap/db'' liegen drei SQL Scripte. Zwei Versionen der von ''snmptt'' und eine von ''snmptt_unknown.sql''. Genutzt wird ''snmptt-1.2.sql'' und ''snmptt_unknown.sql''. Mit diesen Scripten wird die DB-Struktur angelegt: mysql -u user -p snmptt < snmptt-1.2.sql mysql -u user -p snmptt < snmptt_unknown.sql (...-p snmptt... = snmptt ist nicht das Passwort sondern die Datenbank, in der die Struktur angelegt werden soll) Das Frontend benötigt unter anderem die Zugangsdaten zur Mysql Datenbank. Dies erfolgt in der Datei ''config.ini.php'' ;# Enter here your information that were used to connect to your database [database] host = localhost user = user password = pasword name = snmptt tableSnmptt = snmptt ... Der allowedUser muss von nagiosadmin auf nagios geändert werden. ;# If you use the authentification, then entry here the User that ;# may changes on the Web-Frontend comma seperated. allowedUser = nagios ... Die "URL to Nagios" muss auf nagios2 geaädert ertden: [nagios] ;# Url to Nagios prefix = /nagios2 ... ===== Einbinden in Nagios ===== Das mitgelieferte Nagiosplugin von ''*/htdocs/nagtrap/plugin/check_snmptraps.pl'' in das Nagiospluginverzeichnis kopieren. Mit diesem Plugin kann geziehlt nach Traps in der DB gesucht werden. Das Plugin benötigt Ebenfalls die Zugangsdaten zur MYSQL DB. # ==================== Database connect information ==================== my $dbHost = "localhost"; # my $dbName = "snmptt_new"; my $dbName = "snmptt"; my $dbUser = "USER"; my $dbPass = "PASSWORD"; my $dbTable = "snmptt"; ... Der Pfad zum ''util.pm'' muss ebenfalls angepasst werden: # use lib "./"; # Pfad zur util.pm !! use lib "/usr/lib/nagios/plugins"; # Pfad zur util.pm !! ... ==== Konfigurationsbeispiel 1 Allgemein ==== ###### NagTrap define command{ command_name NagTrap command_line /usr/lib/nagios/plugins/check_snmptraps.pl -H $HOSTADSESS$ } ###### NagTrap define service{ use generic-service host_name localhost service_description NagTrap check_command NagTrap } ===== Weblinks ===== * http://www.nagtrap.org/dokuwiki/doku.php?id=doku:nagios * http://www.nagtrap.org/dokuwiki/doku.php * http://www.nagios-wiki.de/nagios/howtos/snmptt * http://www.snmptt.org/docs/snmptt.shtml#Installation-Overview