Cómo Instalar NAGIOS 3 en Ubuntu 10.04 (Lucid Lynx)
How To install NAGIOS 3 in Ubuntu 10,04(Lucid Lynx)
| OS |
Ubuntu 10.04 (Lucid Lynx) |
| Versión Nagios |
Nagios 3 |
| Condición |
Instalar las librerías necesarias |
Nagios es una aplicación para monitoreo de equipos de Red, con Desarrollo Open-Source, por lo tanto podemos instalarlo sin necesidad de comprar algún tipo de licenciamiento.
Una de las ventajas de este software, es que nos permite monitorear dispositivos a través de los servicios que estos estan corriendo, como es el caso de, FTP, HTTP, HTTPS, PING, etc.
En otras guías que hemos desarrollado en este sitio, hemos explicado como hacer monitoreo de equipos a través de herramientas basadas en SNMP. Aunque Nagios tambien soporta implementaciones por SNMP, en este caso, la guía estará orientada a la instalación del mismo, y a monitorear dispositivos basandonos en los servicios.
Una vez tenemos definido el servidor en el cual instalaremos el Nagios, asumimos que ya está instalada la distribución de Ubuntu. Aquí hay una guía paso a paso sobre instalación de Ubuntu...
Para la instalación de Nagios, se necesita también tener instalado apache2 y postfix. Los cuales serán instalados como parte de las librerías necesarias para el Nagios.
Paso a paso:
Paso 1: Instalación de Nagios
| root@lynx:~#
sudo aptitude install nagios3 apache2 |
Nos indicará las demas librerías y/o dependencias que la aplicación requiere, las cuales instalará como parte del preceso. Una vez le demos "Y" en aceptar el proceso:
| root@lynx:~# sudo aptitude
install nagios3 apache2 Reading package lists... Done Building dependency tree Reading state information... Done Reading extended state information Initializing package states... Done The following NEW packages will be installed: bsd-mailx{a} libnet-snmp-perl{a} libradius1{a} nagios-images{a} nagios-plugins{a} nagios-plugins-basic{a} nagios-plugins-standard{a} nagios3 nagios3-cgi{a} nagios3-common{a} nagios3-core{a} postfix{a} radiusclient1{a} 0 packages upgraded, 13 newly installed, 0 to remove and 37 not upgraded. Need to get 6,485kB of archives. After unpacking 17.9MB will be used. Do you want to continue? [Y/n/?] |
Hecho esto, nos aparecerá un Wizard para la instalación del Postfix, el cual es muy necesario para poder enviar las notificaciones vía mail a nuestros usuarios de monitoreo. (Ver figura 1), en donde damos OK:
Figura 1:

Tal como se muestra en la figura 2, estamos utilizando para este caso una configuración de Postfix en modo "Internet Site", para que sea el mismo server de Postfix, el que se encargue de enviar los correos hasta sus usuarios.
Figura 2:

Luego, debemos indicar el nombre FQDN del equipos Server donde estamos haciendo la instalación.
Figura 3:

Seguidamente, nos toca, declarar el password de administrador para el Nagios, y que en nuestro laboratorio pondremos como, "labserver".
Figura 4:

Confirmamos nuevamente el password "labserver"
Figura 5:

Con estos pasos ya está listo, tanto el Postfix para enviar correos como el Nagios para ser administrado y accesar desde el GUI.
Para accesar basta con escribir en un navegador: http://<Dirección IP del Server>/<nagios3>, de la siguiente forma: http://192.168.10.236/nagios3.
User: nagiosadmin
Pass: labserver (o cualquier password que hayamos escrito)
CONFIGURANDO LOS
PARÁMETROS DEL NAGIOS
Paso 2: Configuración del archivo nagios.cfg.
Para poder declarar host, servicios, contactos, etc, es necesario hacer algunos cambios en el archivos nagios.cfg, ademas de modificar otros que estan bajo el directorio de /etc/nagios3/conf.d/.
Vamos primeramente a modificar el archivo "nagios.cfg"
| root@lynx:~# nano
/etc/nagios3/nagios.cfg |
Dentro de este archivo buscaremos las lineas con instrucción "cfg_dir=" las cuales por defecto vienen comentadas, por lo que abajo de ese bloque, crearemos una linea mas, donde indicaremos el directorio en donde guardaremos nuestros archivos con la información de los host a monitorear. <table style="text-align: left; background-color: rgb(153, 153, 153); width: 100%; height: 100%;" border="0" cellpadding="2" cellspacing="2">
#cfg_dir=/etc/nagios3/printers
#cfg_dir=/etc/nagios3/switches
#cfg_dir=/etc/nagios3/routers
cfg_dir=/etc/nagios3/objetos/
Asegurarnos que la linea que hemos agregado no quede comentada . En este archivo ademas podemos cambiar algunos parámetros adicionales al comportamiento del Nagios, tales como; notificaciones, tiempos, intervalos, etc. En todo caso, si se dejan los valores default es muy seguro que todo funcione muy cercano a los que ustedes buscan.
CONFIGURANDO LOS ARCHIVOS DE NAGIOS
Paso 3: Creando contactos: contacts_nagios2.cfg
| root@lynx:~# nano
/etc/nagios3/conf.d/contacts_nagios2.cfg |
*** En la primera, declaramos los contactos con toda su información específica, tal es el caso de: nombre, alias, correo, periodo de notificación, etc.
*** En la segunda parte, declaramos los grupos de contactos, en donde indicamos un nombre, un alias y ademas declaramos los miembros o contactos que pertenecerán a este grupo, tal como se muestra en los siguientes cuadros.
| #################################################### # In this simple config file, a single contact will receive all alerts. define contact{
#####################################################contact_name root alias Root service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r host_notification_options d,r service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email email root@localhost } # Nuevo usuario, creado para el laboratorio de esta guía. define contact{ contact_name Natanael alias Natanael Calderon service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r host_notification_options d,r service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email email natanael@linx.soportejm.com.sv } |
El archivo ya trae un contacto default para el usuario "root", pero nosotros hemos declarado otro usuario para dichas pruebas llamado "natanael" en donde hemos puesto información precisa sobre este contacto.
En este mismo archivo, podremos crear grupos específicos de Contactos, por ejemplo, Grupo "ingenieros level 3", grupo "clientes", etc.
Para este caso, creamos tambien un grupo llamado "soportelevel2" y como miembro pondremos al contacto "Natanael". Nótese que ya está declarado un Grupo llamado "Admins" el cual tiene como miembro al contacto "Root".
| define contactgroup{ contactgroup_name admins alias Nagios Administrators members root } # Grupo de contactos creado para pruebas de laboratorio: define contactgroup{ contactgroup_name soportelevel2 alias Ingenieros de Soporte Nivel II members Natanael } |
Paso 4: Creando los Grupos de Dispositivos: hostgroups_nagios2.cfg
| root@lynx:~# nano
/etc/nagios3/conf.d/hostgroups_nagios2.cfg |
A través de este archivo, podremos crear los grupos de host que requerimos para poder agrupar todos los dispositivos de la forma en que mejor nos resulte, por ejemplo: Hostgroup para servidores "HTTP", PING, SSH, etc.
Además de algunos grupos que el archivo contiene por defecto, agregaremos un grupo para los equipos de nuestro Laboratorio y agregaremos un miembro llamado "fortigate100A", que será el equipo para el cual monitorearemos el servicio de ping:
| # Grupo para los equipos de
Laboratorio define hostgroup { hostgroup_name laboratorio alias Equipos de Laboratorio members fortigate100A } |
Paso 5: Modificando los Servicios: services_nagios2.cfg
| root@lynx:~# nano /etc/nagios3/conf.d/services_nagios2.cfg |
En este archivo, es donde podremos crear y/o modificar los diferentes servicios que queremos monitorear para los dispositivos que nos interese.
Será en este archivo donde declararemos los grupos de host que deseamos monitorear para los diferentes servicios, por ejemplo: Declaramos un servicio de ping para los equipos que pertenecen al grupo de "laboratorio"
| # Servicio de Ping, para equipos
de laboratorio define service { hostgroup_name laboratorio service_description PING check_command check_ping!100.0,20%!500.0,60% use generic-service notification_interval 0 ; set > 0 if you want to be renotified } |
CREANDO LOS ARCHIVOS
PARA LOS EQUIPOS A MONITOREAR
Paso 6: Creación del directorio de host.
Es este paso, debemos crear el directorio bajo la ruta y el nombre que declaramos en el archivo de nagios.cfg en el paso 2. El cual quedó declarado como "objetos".
Para crearlo, lo hacemos de la siguiente manera:
| root@lynx:~# mkdir
/etc/nagios3/objetos |
Seguidamente podemos crear ya el primer archivo de configuración de dispositivos.
NOTA: Dentro del directorio "/etc/nagios3/objetos", podremos crear y ordenar los archivos de host, de la forma en que mas nos guste, debido a que el servidor Nagios leerá cualquier archivo que esté dentro de esta ruta.
Por lo tanto, para llevar un buen orden de todos los dispositivos, los podemos agrupar por clientes, tipos, modelos, importancia, etc.
En nuestro caso, crearemos un directorio mas llamado laboratorio, para poner allí, todos los archivos de configuración de los diferentes equipos de lab.
Entonces, creamos el directorio "laboratorio" y dentro de este el archivo para monitorear los firewalls:
| root@lynx:~# mkdir
/etc/nagios3/objetos/laboratorio |
El archivo lo creamos de una vez, con el editor de texto de nuestra preferencia, en nuestro caso estamos utilizando "nano", pero hay muchos mas como "vi", etc.
| root@lynx:~# nano
/etc/nagios3/objetos/laboratorio/fw.cfg |
Dentro de este archivo, escribiremos todos los parámetros necesarios, y tomando en cuenta algunos que ya hemos declarado en los archivos anteriormente editados:
| # Este host es para el Firewall
de Laboratorio define host{ host_name fortigate100A alias Firewall de Laboratorio address 192.168.10.1 check_command check-host-alive check_interval 5 retry_interval 1 max_check_attempts 5 check_period 24x7 process_perf_data 0 retain_nonstatus_information 0 contact_groups soportelevel2 notification_interval 30 notification_period 24x7 notification_options d,u,r hostgroups laboratorio parents gateway icon_image fortinet.png statusmap_image fortinet.png action_url https://192.168.10.1 } |
Descripción de los parámetros puestos en este file:
host_name: Nombre para el equipos a monitorear
alias: Nombre para identificar el host, en el GUI del Nagios
address: Dirección IP del Dispositivo a monitorear
check_command: El tipo de comando que deseamos ejecutar
check_interval: El intervalo de tiempo para ejecutar el comando
retry_interval: El intervalo de intentos
max_check_attempts: La cantidad de intentos máxima
check_period: El período de tiempo a monitorear
contact_groups: Grupo de contactos para los cuales enviaremos notificaciones
notification_interval: Intervalo de tiempo para las notificaciones
notification_period: Periodo de tiempo para notificar
notification_options: Las opciones de notificación
hostgroups: El grupo en donde agruparemos los dispositivos
parents: De qué equipo depende la conexión física o lógica del dispositivo que estamos declarando
icon_image: La imagen para representar a nuestro dispositivo a nivel de los servicios
statusmap_image: La imagen para representar a nuestro dispositivo dentro del mapa
action_url: Este parámetro nos permite declarar el link de administración de nuestro dispositivo, para poder accesarlo desde el GUI del administrador del Nagios.
Para mas información sobre los parámetros de configuración de los host, puede entrar aquí.
GUARDANDO LAS IMAGENES
PARA LOS HOST
Paso 7: Ahora podemos guardar las imágenes que hemos declarado en los parametros "icon_image" y "statusmap_image" dentro del archivo "fw.cfg". Para lo cual, basta con que descarguemos las imágenes necesarias y las guardemos en el directorio: /usr/share/nagios3/htdocs/images/logos/
Una vez descargada la imagen, la copiamos en el directorio arriba mencionado de la siguiente manera:
| root@lynx:~#
cp fortinet.png /usr/share/nagios3/htdocs/images/logos/ |
Ahora reiniciamos el servicio de Nagios con el comando:
| root@lynx:~#
/etc/init.d/nagios3 restart |
Y si no recibimos errores en la Terminal, significa que ya todo esta corriendo y que nuestros Host estan siendo monitoreados.
De esta forma, ya podremos ver, vía Nagios GUI, monitoreos como los siguientes:
Figura 6: Monitoreo de Servicios

Figura 7: Monitoreo en Mapa

En la sección de adjuntos les dejo tambien un archivo (servicios.txt)con algunos servicios específicos los cuales pueden usar para monitorear algunos protocolos tales como: smtp, pop, etc.
Relacionados :
Cómo implementar Monitoreo SNMP con Cacti
Cómo Monitorear Servidores de Correo en Listas Negras Usando Nagios
Cómo trabajar con Archivos MIBs
Cómo Configurar SNMP en un FortiGate
Referencias:
http://www.nagios.org





