Table of Contents

Rangos de las alarmas

10 	< 0 or > 10, (outside the range of {0 .. 10})
10: 	< 10, (outside {10 .. ∞})
~:10 	> 10, (outside the range of {-∞ .. 10})
10:20 	< 10 or > 20, (outside the range of {10 .. 20})
@10:20 	≥ 10 and ≤ 20, (inside the range of {10 .. 20})

http://www.techadre.com/content/nagios-thresholds-ranges

SNMP

Tenemos un dispositivo con snmp activado, por ejemplo la ip 10.140.52.130

Probamos que podamos sacar los datos por snmp:

# snmpwalk -v1 -c public 10.140.52.130
iso.3.6.1.2.1.1.1.0 = STRING: "Linux 2.4.27-ubnt0 #28 Mon Nov 9 15:01:24 EET 2009 mips"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.10002.1
iso.3.6.1.2.1.1.3.0 = Timeticks: (766448000) 88 days, 17:01:20.00
iso.3.6.1.2.1.1.4.0 = STRING: "guifi@guifi.net"
iso.3.6.1.2.1.1.5.0 = STRING: "MatIsernSopaRd2"
iso.3.6.1.2.1.1.6.0 = STRING: "MatIsernSopa"
iso.3.6.1.2.1.1.7.0 = INTEGER: 79

Por ejemplo queremos monitorizar la memoria libre. Dependiendo del fabricante, cada OID que es el numerillo “iso.3.6.1.2.1.1.1.0”, es una casa. En el siguiente enlace encontramos algunas de las nanostation:

http://www.ubnt.com/forum/showthread.php?t=26169

CPU usage:
1 Minute Average - 1.3.6.1.4.1.10002.1.1.1.4.2.1.3.1
5 Minute Average - 1.3.6.1.4.1.10002.1.1.1.4.2.1.3.2
15 Minute Average - 1.3.6.1.4.1.10002.1.1.1.4.2.1.3.3
Memory:
Total memory - 1.3.6.1.4.1.10002.1.1.1.1.1.0
Free memory - 1.3.6.1.4.1.10002.1.1.1.1.2.0 

Para mirar la memoria lanzamos el comando (observar el punto antes del OID)

# snmpwalk -v1 -c public 10.139.56.138 .1.3.6.1.4.1.10002.1.1.1.1.2.0
iso.3.6.1.4.1.10002.1.1.1.1.2.0 = Gauge32: 5556

Con Nagios, se lanzaría así:

# /usr/lib/nagios/plugins/check_snmp -H 10.140.52.130 -C public -o 1.3.6.1.4.1.10002.1.1.1.1.2.0
SNMP OK - 752 | iso.3.6.1.4.1.10002.1.1.1.1.2.0=752

Da un OK, le podemos pasar lindares con -w -c (warning y critical). Por ejemplo:

Por ejemplo warning por debajo de 800 y crítica por debajo de 500:

# /usr/lib/nagios/plugins/check_snmp -H 10.140.52.130 -C public -o 1.3.6.1.4.1.10002.1.1.1.1.2.0 -w800: -c500:
SNMP WARNING - *748* | iso.3.6.1.4.1.10002.1.1.1.1.2.0=748 

Integración con Nagios

Como ya hemos validado que el comando funciona bien, creamos nuestro comando que se llamara check_snmp_memlliure
Creamos el comando en el fichero /etc/nagios3/commands.cfg

define command{

     command_name    check_snmp_memlliure
     command_line    /usr/lib/nagios/plugins/check_snmp -H  $HOSTADDRESS$ -o 1.3.6.1.4.1.10002.1.1.1.1.2.0 -C public -w $ARG1$: -c $ARG2$:
     }

Parámetros:

En nuestra máquina añadimos la alarma, editamos el fichero /etc/nagios3/conf.d/maquina.cfg

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       node_sopa
        service_description             Memoria Lliure
        check_command                   check_snmp_memlliure!800!500
        }

Nos dará warning por debajo de 800 y crítica por debajo de 500