martes, 24 de enero de 2012

Nagios..... sistema de monitoreo


Nagios
En esta ocasión traigo bajo la mano a Nagios un sistema que me ha ayudado a monitorear servicios y equipos de manera remota, podemos ver si un servicio se cae, su disco duro está a reventar o simplemente echarle un ojo, esto es muy útil para cuando tenemos a cargo más de un servicio, no vamos a estar haciendo ping manualmente a cada uno de ellos.

Nagios es un sistema de monitoreo y lo vamos a instalar en debian e hijos (ubuntu).

Paquetes necesarios

Es importante que tengamos estos paquetes instalados antes de instalar nagios.

Servidor Apache
PHP
Compilador GCC y sus respectivas librerías
librerías de desarrollo GD 

Pero como suponemos que nuestro debian está en blanco , procedemos con la instalación de paquetes (saltarse este paso si ya los tienen)

sudo apt-get install apache2

sudo apt-get install libapache2-mod-php5

sudo apt-get install build-essential

sudo apt-get install libgd2-xpm-dev

Para este momento ya tenemos todas las piezas, sólo falta crear el usuario, grupo que va a trabajar en nagios, para esto tenemos que hacernos root ya sea:

su -   "o"  sudo -s 

creamos la cuenta de nagios y su contraseña respectiva.

/usr/sbin/useradd -m -s /bin/bash nagios

passwd nagios


Creamos el  grupo nuevo nagcmd esto nos va a permitir trabajar nagios en la interfaz web, los dos usuarios nagios y apche los debemos agregar a este grupo.

/usr/sbin/groupadd nagcmd 
/usr/sbin/usermod -a -G nagcmd nagios 
/usr/sbin/usermod -a -G nagcmd www-data


Ahora necesitamos bajar a Nagios y a sus plugins, son dos archivos diferentes, yo aconsejo crear una carpeta llamada nagiosdw para descargar estos dos elementos.

mkdir nagiosdw
e ingresar a ella 

cd nagiosdw  o crearla desde modo gráfico con click derecho "create folder" e ingresar a ella.

ya dentro de esta carpeta procedemos a descargar los dos archivos:

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz

wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz

o ir de modo web a el sitio de descargas: http://www.nagios.org/download

Descomprimimos nagios.

tar xzf nagios-3.2.3.tar.gz cd nagios-3.2.3

Dentro de esta carpeta viene un script que debemos correr para la instalación, el cual debemos agregar el grupo que previamente creamos.

 ./configure --with-command-group=nagcmd si hubiese algún problema debemos de darle permisos chmod +x configure

Ahora compilamos.
make all

Instalamos los binarios, configuraciones, arranque y la interfaz web.

make install

make install-init

make install-config

make install-commandmode

make install-webconf


Necesitamos crear una la cuenta de usuario con la cual vamos a entrar a administrar nuestros sistemas por medio de la interfaz web

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Es necesario reiniciar apache para que surtan efectos estos cambios.

/etc/init.d/apache2 reload


Ahora es turno de los plugins, después de bajar el archivo, lo descomprimimos.

tar xzf nagios-plugins-1.4.11.tar.gz

Entramos a la carpeta decomprimida cd nagios-plugins-1.4.11

Procedemos con la compilación del script.
./configure --with-nagios-user=nagios --with-nagios-group=nagios 

make 

make install

Creamos el enlace simbólico para que reconozca de donde arrancar.
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Verificamos que no exista ningún error en lo que hicimos de la siguiente manera.
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Si no hay errores entonces procedemos a darle vida al engendro.
/etc/init.d/nagios start
Ahora viene lo bueno ingresamos por medio de explorador web a :
http://localhost/nagios/
y aquí es donde usamos nuestro usuario "nagiosadmin" y la contraseña que decidimos en ese momento.

Tendremos trabajando a Nagios y podremos observar a nuestros dispositivos o servicios.

Ahora que ya tenemos corriendo a Nagios, viene lo importante:

1.-¿Como ingreso servicios?
2.-¿Como puedo enterarme si se cae uno de ellos sin estar cada 5 minutos pegado a la pantalla?

Para ingresar un cliente, mejor explicación que un ejemplo, este se hace un archivo en un editpad, con vi, gedit o cualquier editor de texto de tu agrado, la terminación debe de ser "cfg" y este debe de estar alojado en una carpeta que ya debimos haber creado en la siguiente ruta:  /usr/local/nagios/etc/objects/carpeta_nueva

#####DEFINICION DEL HOSTGROUP
define hostgroup{
hostgroup_name         google
alias                  Cliente_Google
}
###### DEFINIR EL HOST
define host{
          use              generic-switch
          host_name        google
          alias            Cliente_Google
          address          74.125.113.99
          icon_image       google.png
          statusmap_image  google.png
          hostgroups       google
          notifications_enabled 1
}

########DEFINIR EL SERVICIO DE PING (PARA ESTE EJEMPLO)(PUEDE SER HHTP,HTTPS ETC)

define service{
         use                   generic-service
       host_name             google
         service_description   PING
         check_command         check_ping!200.0,20%!600.0,60%
         normal_check_interval  5
         retry_check_interval   1
}

########DEFINIR OTRO HOST O UNA RAMIFICACION (EN ESTE EJEMPLO ES UNA CAMARA IP)
define host{
         use                    generic-switch
         parents                google
         host_name              cam1_google
         alias                  cam1_google
         address                74.125.113.99
         icon_image             dcs2121.png
         statusmap_image        dcs2121.png
         hostgroups             google
         notifications_enabled  1
     }
######DEFINIR EL SERVICIO DEL HOST ANTERIOR
define service{
         use                   generic-service
         host_name             cam1_google
         service_description    HTTP
         check_command          check_http! -p 80
         notifications_enabled   1
#############fin del archivo solo un host y su cámara
        
Lo que pasó es que creamos primero un hostgroup, después el host y el switch, estos deben de seguir jerárquicamente un orden, si después creas otro archivo no es necesario crear la línea de hostgroup, claro si es otro diferente si tendrás que crearlo.

Creamos el nombre de host que en este ejemplo es "san google" con su ip, le pusimos un servicio de ping, cuyos valores se pueden cambiar, así como el intervalo de revisión y el número máximo de checkeos, es más pueden ponerse más cosas, pero esto es lo básico.

Para que estos nuevos servicios aparezcan en nagios tienes que modificar el archivo localizado en  /usr/local/nagios/etc/ llamado nagios.cfg y ya sea que agregando de forma individual como aparece aqui:
# OBJECT CONFIGURATION FILE(S)
# These are the object configuration files in which you define hosts,
# host groups, contacts, contact groups, services, etc.
# You can split your object definitions across several config files
# if you wish (as shown below), or keep them all in a single config file.

# You can specify individual object config files as shown below:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
cfg_file=/usr/local/nagios/etc/objects/carpeta_nueva/archivo_nuevo.cfg

o toda la carpeta
# directive as shown below:

#cfg_dir=/usr/local/nagios/etc/servers
#cfg_dir=/usr/local/nagios/etc/printers
#cfg_dir=/usr/local/nagios/etc/switches
#cfg_dir=/usr/local/nagios/etc/routers
#cfg_dir=/usr/local/nagios/etc/objects/carpeta_nueva

Después de todo esto es necesario reiniciar el servicio.

/etc/init.d/nagios restart

Las notificaciones son juy importantes para que no estemos revisando nuestro monitor cada 5 minutos, nos llegará por correo si un servicio se cae o le pasa algo "malo", tenemos que entrar a editar con vi o nano el archivo contacts.cfg, se hace de la siguiente manera:

vi /usr/local/nagios/etc/objects/contacts.cfg

Y en lugar de nagios@localhost colocamos la dirección de correo que hayamos establecido como    monitor, de esta manera Nagios nos informará por este medio como van las cosas.

Espero les haya sido útil la in formación.

saludos.......

No hay comentarios:

Publicar un comentario