Siguiendo con el tema anterior, una vez tenemos instalado el Nagios nos damos cuenta que por si solo no hace nada, debemos configurarlo y esta guía esta precisamente para ello. Antes de comenzar a agregar servicios para monitoreo, vamos a instalar un plugin llamado PNP4NAGIOS, este plugin nos permite tener a la mano gráficos de la data que produce Nagios, cabe acotar que este plugin no genera datos salvo que el check command (mas adelante hablaremos de esto) almacene información persistente de los datos que obtiene.
Realizaremos esto por etapas, la primera etapa es instalar el plugin PNP4NAGIOS y configurarlo, después descargaremos otro plugin llamado check_iftraffic64, el cual nos permite visualizar el consumo de ancho de banda de cada interfaz y trabaja muy bien con PNP4NAGIOS para generar gráficos en tiempo real de trafico de red. Luego les explicare de forma general como funciona Nagios y PNP4NAGIOS y procederemos al ejemplo (en este caso, vamos a monitorear un router TP-LINK flasheado con DD-WRT).
Instalando PNP4NAGIOS
Nota: Nuevamente asumiré que están en la consola de comandos de CentOS
1.- Descarga de PNP4NAGIOS
1.a- Nos vamos al directorio donde almacenamos los SRC de Nagios:
cd /usr/local/src/nagios/
1.b- Ejecutamos el siguiente comando:
wget http://sourceforge.net/projects/pnp4nagios/files/latest/download
2.- Instalando las dependencias de PNP4NAGIOS y check_iftraffic64
2.a- Ejecutamos el siguiente comando para instalar todas las dependencias de PNP4NAGIOS:
yum install perl rrdtool rrdtool-perl php-gd
2.b- Ejecutamos los siguientes comandos en orden:
perl -MCPAN -e shell
tras lo cual la linea de comandos cambiara a: cpan[1]>
Dentro de esta nueva linea de comandos ejecutamos:
install Net::SNMP
esperamos a que termine de procesar y se devuelva a cpan[1]>
Ejecutamos ahora
install Net::DNS
Nota: si tienen algún problema (se queda pegada la consola después de ejecutar alguno de los "install"), vayan a /usr/share/perl/CPAN5 y dentro de esta carpeta editen el archivo Config.pm, busquen la linea que dice 'cache_metadata' => q[1] y cambien ese 1, por un 0.
3.- Instalando PNP4NAGIOS y check_iftraffic64
3.a Descomprimimos el archivo de PNP4NAGIOS, seguimos en la carpeta donde lo descargamos así que nos toca ejecutar:
tar zxvf pnp4nagios-0.6.21.tar.gz
ahora nos pasamos al directorio donde se descomprimió
cd pnp4nagios-0.6.21
3.b Ejecutamos los siguientes comandos en orden para instalar PNP4NAGIOS:
./configure
make
make fullinstall
service httpd restart
3.c Verificamos que todo haya ido bien, para ello utilizando un navegador vamos a la pagina web http://IP-Servidor/pnp4nagios Si todo ha ido bien no veremos ningún error en esta pagina (todos los indicadores están en verde), de no ser este el caso, volver a revisar los pasos anteriores, de ser el caso entonces ejecutar:
mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php.back
Como referencia aquí les dejo la pagina web como deberían de apreciarla:
3.d Instalamos ahora el plugin check_iftraffic64:
Nos vamos al directorio donde se almacenan los plugins
cd /usr/local/nagios/libexec/
Descargamos el check_iftraffic64.pl
wget http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=4019&cf_id=24
Cambiamos el dueño del plugin
chown nagios:nagios check_iftraffic64.pl
Cambiamos los permisos de ejecucion del plugin
chmod +x check_iftraffic64.pl
¿Qué es SNMP?
SNMP es un protocolo que se utiliza para monitorear dispositivos por medio de la red, este protocolo permite que un servicio como Nagios, recopile información de distintos aparatos (routers, switches, firewalls, teléfonos, computadoras, radios, etc.) en tiempo real y la catalogue/muestre al personal encargado del mantenimiento de dichos aparatos, también es posible que el Nagios tome acciones preventivas basándose en parámetros previamente configurados, por ejemplo, enviar un mensaje de texto al Ingeniero encargado de la red avisandole que según los datos recopilados el router esta a punto de colapsar (por poner un ejemplo), o le muestre gráficos de estadísticas de funcionamiento.
Entre las cosas que podemos monitorear mediante SNMP se encuentran:
- Estado de interfaces
- Consumo de ancho de banda
- Frecuencias de operación de un radio
- Consumo de amperaje y estado de batería de un UPS
- Numero de llamadas concurrentes en un teléfono
- Aplicaciones en ejecución en un servidor
- Perdida de paquetes
- etc
Como se aprecia SNMP es un protocolo bastante completo, lo primero que se debe realizar es revisar la documentación correspondiente al dispositivo que queremos monitorear y revisar que permita ser monitoreado mediante SNMP, si tiene una interfaz de red es muy probable que si lo permita.
El community String y los OIDs
SNMP ya va por 3 versiones, en este caso solo hablaremos de la version 2, esta versión incluye algo que se denomina Community String, es como una contraseña, se le configura al equipo que se desea monitorear y luego, si se desea obtener información de este, el dispositivo que la solicita (ejemplo un servidor corriendo Nagios), debe utilizar esa misma "contraseña" para obtener la data, de lo contrario se le niega.
Los OIDs, son Identificadores de Objetos, OID significa, Object Identifier, un objeto en SNMP puede ser un servicio, una interfaz, el estado de una batería, etc. Luego de activar SNMP en el equipo que queremos monitorear y colocarle un community string, tocara hacer un "snmp walk" que no es otra cosa mas que hacer un listado de todos los OIDs que ese dispositivo en particular posee. Leer una lista de OIDs de un dispositivo recién empezando puede ser extremadamente confuso, lo importante es ir con calma y utilizando la lógica, los nombres si bien son abstractos, suelen tener un sentido lógico como veremos mas adelante.