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 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.
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/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.
e ingresar a ella
ya dentro de esta carpeta procedemos a descargar los dos archivos:
o ir de modo web a el sitio de descargas: http://www.nagios.org/download
Descomprimimos nagios.
Dentro de esta carpeta viene un script que debemos correr para la instalación, el cual debemos agregar el grupo que previamente creamos.
Ahora compilamos.
make all
Instalamos los binarios, configuraciones, arranque y la interfaz web.
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
Es necesario reiniciar apache para que surtan efectos estos cambios.
Ahora es turno de los plugins, después de bajar el archivo, lo descomprimimos.
tar xzf nagios-plugins-1.4.11.tar.gz
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.......