martes, 31 de enero de 2012

Instalar Nagios3 en Ubuntu 11.10


Nagios es una herramienta para monitorización de servidores y equipos de conectividad. Esta herramienta permite monitorear en tiempo real el comportamiento de dichos equipos midiendo una serie de parámetros configurables como pueden el uso de la memoria ram o del cpu, el estado de las particiones del disco duro etc.
Instalación de nagios:
apt-get install nagios3 apache2
Por defecto el software tratara de instalar todas las dependencias y librerías necesarias una vez le demos Y al proceso.
Una vez instalado nagios nos aparecerá en pantalla un wizard para la instalación de postfix, esto es muy importante debido a que lo necesitaremos para enviar notificaciones via email.
Configuramos Postfix usando la opción Internet Site.
Seguidamente tendremos que especificar el password para el administrador de nagios y confirmalo.
Para acceder a la interfaz web de nagios escribimos en el navegador http://<Dirección IP del Server>/<nagios3>
Configuración de Nagios:
Una vez instalado pasaremos a configurar la herramienta. Para poder declarar las pc, servidores, servicios y grupos de contactos debemos hacer algunos cambios en el fichero nagios.cfg, además de otros que están bajo el directorio /nagios3/conf.d :
Editamos el archivo nagios.cfg en este caso usamos el editor mcedit:
mcedit /etc/nagios3/nagios.cfg
Dentro del archivo buscamos las líneas cfg_dir= que están comentadas por defecto y creamos una línea mas donde especificamos el directorio donde guardaremos el fichero con la información de los equipos que vamos a monitorear.
#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/

Ahora pasaremos ha configurar los grupos de contactos a los que enviaremos notificaciones via email, para esto editamos el fichero contacts_nagios2.cfg
mcedit /etc/nagios3/conf.d/contacts_nagios2.cfg
El archivo se compone de dos partes en la primera de arriba configuramos los contactos con su información especifica nombre, email, alias. En la segunda configuramos los grupos de contactos donde indicamos un nombre, un alias y los miembros de dicho grupo.
#####################################################
define contact{
        contact_name                    name
        alias                           name
        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                           name@yahoo.com
        }
####################################################
define contactgroup{
        contactgroup_name       red
        alias                   Nagios Administrators
        members                 name
        }

Una vez definidos los contactos y los grupos pasamos a definir grupos de equipos que necesitamos monitorear para esto editamos el fichero:
mcedit /etc/nagios3/conf.d/hostgroups_nagios2.cfg

Este fichero lo podemos usar para agrupar los equipos en grupos por ejemplo el grupo servidores. Los parámetros que usamos son el nombre, alias y los equipos miembros del grupo.
define hostgroup {
        hostgroup_name  Red
        alias           Servidores Ceis
       members         localhost, serdns, serverftp, serverhttp, servermail       
}

Después de esto nos falta configurar el fichero services_nagios2.cfg en cual vamos a definir los servicios a monitorear para los equipos que nos interesen.
define service {
    hostgroup_name                Red
    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
}
En este caso estamos definiendo un servicio de monitoreo por PING ICMP a los host del grupo Red creado anteriormente.

Definiendo servicio de alertas para el grupo Red
define service {
        hostgroup_name                  Red
        service_description             Alertas Postfix
        check_command                   notify-host-by-email
        use                             generic-service
}
Definiendo servicio de Espacio en Disco (Disk Space) para el grupo Red
define service{
        use                             generic-service         ; Name of service template to use
        hostgroup_name                  Red
        service_description             Disk Space
        check_command                   check_all_disks!20%!10%
  }
Definiendo servicio SSH para el grupo Red
define service {
        hostgroup_name                  Red
        service_description             SSH
       check_command                   check_ssh
        use                             generic-service
       notification_interval           0 ; set > 0 if you want to be renotified
}

Es muy importante saber que podemos definer servicios para host individuales en caso de que sean servicios especificos como pop3,smtp para un servidor de correo.

Definición de servicio smtp para servidor de correo
define service{
        use                             generic-service         ; Name of service template to use
        host_name                       serveremail
        service_description             SMTP
        check_command           check_smtp
        }
Definición de servicio pop3 para servidor de correo
define service{
        use                             generic-service         ; Name of service template to use
        host_name                                 serveremail
        service_description             POP3
        check_command           check_pop
        }
Definición de servicio pop3 para servidor de correo
define service{
        use                             generic-service         ; Name of service template to use
        host_name                  serverftp
        service_description             FTP
        check_command           check_ftp
        }
Definición de servicio DNS para servidor de correo
define service{
        use                             generic-service         ; Name of service template to use
        host_name                  serverDNS
        service_description             DNS
        check_command           check_dns
        }
Definición de servicio DHCP para servidor de correo
define service{
        use                             generic-service         ; Name of service template to use
        host_name                  serverDHCP
        service_description             DHCP
        check_command           check_dhcp_interface
        }
Definición de servicio LDAP para servidor de correo
define service{
        use                             generic-service         ; Name of service template to use
        host_name                  serverLDAP
        service_description             LDAP
        check_command           check_ldap
        }
Definición de servicio HTTP para servidor de correo
define service{
        use                             generic-service         ; Name of service template to use
        host_name                  serverWeb
        service_description             HTTP
        check_command           check_http}
Ahora solo nos falta configurar el archivo donde definiremos los hosts o equipos que vamos a monitorear.  Para esto primero tenemos que crear el directorio donde vamos a tener dicho archivo y creamos el archivo y luego lo editamos.
mkdir /etc/nagios3/objetos
touch /etc/nagios3/objetos/laboratorio/fw.cfg
mcedit /etc/nagios3/objetos/laboratorio/fw.cfg
Definiendo un host servidor
define host{
    host_name                                        serverRouter
    alias                                                 Router
    address                                            192.168.1.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                                 red
    notification_interval                           30
    notification_period                            24x7
    notification_options                           d,u,r
    hostgroups                                       Red
    parents                                             router
    statusmap_image                              fortinet.png
    icon_image                                       fortinet.png
}
Definiendo un host switch
define host{
    use                                                   generic-host
    host_name                                        L2sNodo
    alias                                     Switch Allied Telesis AT-8000s
    address                                            192.168.1.10
    contact_groups                                 red
    parents                                             serverRouter
}

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.


Después de esto ya tenemos nuestro servidor nagios funcionando y monitoreando todos nuestros equipos. Espero que les haya servido de mucho este tutorial.

No hay comentarios:

Publicar un comentario