Inhaltsverzeichnis

Nagios3 auf OpenWRT mit SNMP Client

Diese Konfiguration soll zukünftig Wlan Accesspoints und sonstige SNMP Geräte überwachen.

Vorraussetzungen

Man braucht „spezielle“ Versionen von OpenWRT Paketen:

Step-by-step

  1. opkg update && opkg install lighttpd lighttpd-mod-cgi nagios nagios-plugins php5-cgi
  2. lighttpd docroot auf /usr/share zeigen lassen
  3. nagios dateien nach /usr/share/nagios schieben
  4. links der CGIs von /usr/sbin nach /usr/share/nagios/cgi-bin erstellen
  5. lighttpd mod-cgi einschalten und folgende Zeilen hinzufügen,um php einzuschalten und die nagios cgis auszuführen:
    cgi.assign = ( ".php" => "/usr/bin/php-cgi" )
                                   
    $HTTP["url"] =~ "^/nagios/cgi-bin" {
    cgi.assign = ( "" => "" )                                                   
    }    
  6. /etc/php.ini :
    doc_root = /usr/share
  7. nagios start script /etc/init.d/nagios:
    #!/bin/sh /etc/rc.common
    # Copyright (C) 2006 OpenWrt.org
    START=50
    
    BIN=nagios
    DEFAULT=/etc/default/$BIN
    PID_F=$RUN_D/$BIN.pid
    
    start() {
            [ -f $DEFAULT ] && . $DEFAULT
            $BIN $TEST &&
            $BIN $OPTIONS
    }
    
    stop() {
            [ -f $PID_F ] && kill $(cat $PID_F)
    }
    1. /etc/default/nagios:
      CFG="/etc/nagios/nagios.cfg"
      OPTIONS="-d $CFG"
      TEST="-v $CFG"
  8. nagios automatisch starten:
    cd /etc/nagios
    ln -s ../init.d/nagios S51nagios
  9. nagios braucht noch Verzeichnisse:
    mkdir -p /var/spool/checkresults
    mkdir /var/rw
  10. nagios muss auch seine plugins finden, daher muss in der Datei /etc/nagios/resource.cfg folgendes abgeändert werden:
    $USER1$=/usr/libexec/nagios/
  11. Nagios Zugang durch passwort schützen:
    1. zu lighttpd.conf hinzufügen:
      $HTTP["url"] =~ "nagios" {
              auth.backend = "htpasswd" 
              auth.backend.htpasswd.userfile = "/etc/nagios/passwd" 
              auth.require = ( "" => (
                      "method" => "basic",
                      "realm" => "nagios",
                      "require" => "user=nagiosadmin" 
                      )
              )
              setenv.add-environment = ( "REMOTE_USER" => "user" )
      }
    2. htpasswd installieren:
      opkg install mini-httpd-htpasswd
    3. htpasswd -c /etc/nagios/passwd nagiosadmin
    4. lighttpd auth modul installieren:
      opkg install lighttpd-mod-auth
    5. lighttpd neustarten

Anmerkungen zu OpenWrt Backfire

snmpwalk findet MIB Dateien nicht

Gibt Sachen aus wie z.B.:

Cannot find module....


Lösung:

  1. ntp-snmp source tarball (hier) runterladen und auspacken
  2. dort findet man unter ./mibs dann auch die MIB-Dateien
  3. MIB-Dateien auf Router kopieren (z.B. unter /usr/lib/snmp)
  4. die Datei unter /usr/lib/snmp/snmp.conf mit folgendem Inhalt füllen:
    mibdirs /usr/lib/snmp

nagios-plugins mit check_smnp Kommando

  1. package/feeds/packages/net-snmp/Makefile:253
    $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/snmp{get,getnext,set,status,test,trap,walk} $(1)/usr/bin/
  2. package/feeds/packages/nagios-plugins/Makefile:45
      --with-nslookup-command="/usr/bin/nslookup" \
      --with-snmpget-command="/usr/bin/snmpget" \
      --with-snmpgetnext-command="/usr/bin/snmpgetnext"