Cómo Instalar NAGIOS 3 en Ubuntu 10.04 (Lucid Lynx)

Autor Natanael Calderon Cabrera February 1, 2010 | Imprimir | Agregar a favoritos

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/servers
#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
A través de este archivo, podremos enlistar los contactos para los cuales nos interesa enviar notificaciones de alarmas y monitoreo. El archivo "contacts_nagios2.cfg" se compone de dos partes:

*** 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

¿Encuentras este artículo de utilidad?

Si No
Archivos Adjuntos

Categoría: Ubuntu

Última actualización April 25, 2011 with 33121 views