====== 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: * -w 300 (alarma warning si supera el valor 300) * -w 300: (ojo a los ":" al final, alarma warning si está por debajo del valor 300) * -w 500 -c 1000 (warning por encima de 500 y crítica encima de 1000) 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: * **$HOSTADDRESS$** IP que le pasa el fichero de configuración de la máquina * **$ARG1$:** primer argumento que se le pasa (los dos puntos ":" es menor que) * **$ARG2$:** segundo argumento que se le pasa (los dos puntos ":" es menor que) 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