Ya tenía algún tiempo que no publicaba nada relacionado con el tema de la administración de redes; en esta pagina encontrarán una entrada relacionada con la implementación de este sistema de monitoreo, sin embargo decidí actualizar ese manual con el presente tutorial.

Espero sea de utilidad en sus labores de administración de red. y sin más que decir manos a la obra.

En mi caso he utilizado el siguiente software:

Sistema Operativo Ubuntu Server 12.04

Lo siguiente será preparar nuestro entorno y descargar algunas utilierías que serán necesarias.

apt-get install apache2 libapache2-mod-php5 build-essential php5 libgd-graph-perl postfix libgd2-xpm-dev mailutils unzip

Si ya tenemos instalado LAMP en nuestro equipo el equipo instalará únicamente las librerías que requiera, excluyendo las correspondientes al servidor web.

El paso siguiente será crear nuestros usuarios y sus respectivos grupos

/usr/sbin/useradd -m -s /bin/bash nagios
passwd nagios
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd www-data

con esto crearemos el usuario nagios con su respectivo home y como login shell será definido Bash

se agrega el grupo nagcmd y se asigna el usuario nagios a dicho grupo de trabajo y tambien al grupo www-data (perteneciente a apache)

Descargamos los paquetes de nagios y plugins nagios en un directorio llamado downloads y procedemos a compilarlo

tar xzf nagios-3.2.3.tar.gz
cd nagios-3.2.3
./configure –with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf

Una vez tengamos todo compilado se procede a realizar las primeras configuraciones de nagios, lo primero será crear el contacto al cuál nagios alertará sobre los eventos de  la red.

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

define contact{
contact_name nagiosadmin ; Short name of user
use generic-contact ; Inherit default values from generic-contact template (defined above)
alias Nagios Admin ; Full name of user
email nagios@osties.com ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
}

Este paso pueden ser aplicado al tener completamente configurado nuestro monitor.

Hace falta compilar los plugins y permitir el acceso al usuario nagiosadmin a la interfaz web del sistema de monitoreo.

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
/etc/init.d/apache2 reload
cd ~/downloads
tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11
./configure –with-nagios-user=nagios –with-nagios-group=nagios
make
make install

Creamos un enlace simbólico para que nuestro servicio arranque con el servidor donde lo estamos instalando.

ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Con el siguiente comando lo que haremos es verificar que nuestra instalación funciona correctamente contra el binario de nagios.}

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

/etc/init.d/nagios start    ## Reiniciamos el servicio de nagios ###

A este punto Nagios ya esta funcionando en nuestro servidor, como plus le cambiaremos la interfaz web a nuestro monitor, recordemos que siempre es importante hacer copia de nuestros archivos originales; para cambiar el skin de nagios teclearemos lo siguiente.

cd ~/downloads
wget http://www.be-root.com/downloads/nagios/vautour/vautour_style.zip
mkdir vautour
unzip vautour_style.zip -d vautour
cp -Rfa /usr/local/nagios/share /usr/local/nagios/share_OLD
cp -Rfa vautour/* /usr/local/nagios/share/.

Una vez que ya tenemos nuestro nagios visiblemente “bonito” y funcionando nos queda empezar a definir nuestra red, en lo particular no me gusta utilizar todos los archivos de configuración que trae Nagios por defecto, sino que prefiero usar un solo archivo de configuración para centralizar Hosts, hostgroups, y services en un solo archivo. para esto seguiremos los siguientes pasos.

Editaremos el archivo /usr/local/nagios/etc/nagios.cfg

y y en la parte donde dice

# Definitions for monitoring the local (Linux) host
# cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

la cambiaremos por:

# Definición de la red a monitorear
cfg_file=/usr/local/nagios/etc/objects/red.cfg

OJO. yo hago este procedimiento así porque en un solo archivo incluire servicios, grupos, y hosts. es valido hacerlo con archivos independientes por cada item de los anteriores.

Lo siguiente sera crear el archivo red.cfg en la ruta antes indicada.

define host{
use linux-server
host_name nagios
alias Nagios Server
icon_image rack_linux.png
statusmap_image rack_linux.png
address 127.0.0.1
}

define host{
use linux-server
host_name pfsense
alias firewall
icon_image rack_bsd.png
statusmap_image rack_bsd.png
address 172.16.0.7 190.111.17.210
parents media#1
}

define host{
use generic-switch
host_name media#1
alias Router ADSL
icon_image black_box.png
statusmap_image black_box.png
address 190.111.17.214
parents nagios
}

define host{
use windows-server
host_name Backup
alias Servidor Backup
icon_image rack_windows.png
statusmap_image rack_windows.png
address 172.16.0.6
parents fortigate
}

en este caso y para no hacer tan larga la entrada unicamente puse 4 host como ejemplo y como se puede apreciar las estructuras son bastante sencillas.

ahora definiremos los grupos en el mismo archivo red.cfg

#### DEFINICION DE GRUPOS DE SERVIDORES

define hostgroup{
hostgroup_name linux-servers
alias Servidores Linux
members nagios, pfsense
}
define hostgroup{
hostgroup_name windows-servers
alias Servidores Windows
members Backup
}
define hostgroup{
hostgroup_name switches
alias Electrónica de red
members media#1
}

Como se observa en cada grupo se encuentran los host que definimos anteriormente.

Por ultimo agregaremos los servicios, para empezar el servicio de ping para que podamos ver constantement el estado (up / down) de nuestros hosts.

##### DEFINIFICION DE SERVICIOS

define service{
use generic-service
host_name nagios, media#1, Backup, pfsense
service_description PING
check_command check_ping!200.0,20%!600.0,60%
normal_check_interval 2
retry_check_interval 1
}

en este servicio los argumentos son warning 20% y critical 60%, el intervalo que se usa es 2sg. a diferencia de 5 que es el default.

El siguiente servicio y para mis efectos es monitorear el servidor apache que es lo que me interesa de este proyecto.

define service{
use generic-service
host_name Consejos, Backup, videoconf
service_description http
check_period 24×7
contact_groups admins
notification_period 24×7
notification_interval 30
check_command check_http
normal_check_interval 2
retry_check_interval 1
}

OJO: en este ejemplo los servidores Consejos y videoconf no estan definidos en las tablas anteriores, porque como lo dije anteriormente este es un ejemplo de como debe configurarse Nagios, y es aplicable a los hosts y necesidades que cada uno tenga.

Es bien fácil notar que este servicio es una variacion del anterior -ping- pero le hemos incrementado el periodo de chequeo, a quienes contactar al momento de tener una incidencia, y el intervalo de notificaciones.

Prácticamente tenemos Nagios configurado, ahora ejecutaremos comando de verificación anterior  para corroborar que todas nuestras configuraciones estén correctas.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Esta linea de código nos devolvera las alertas y los errores en la configuración de nuestro archivo red.cfg; si no tenemos ningun error o alerta procedemos a reiniciar nagios

/etc/init.d/nagios restart

Por último como pueden ver en la definición de los hosts del archivo red.cfg se hace referencia al icono que cada uno tendrá dentro del status map, estas imágenes se encuentran /usr/local/nagios/share/images/logos , como todos notarán Nagios no tiene mas imagenes que “unknown.gd2″ y “nagios.gd2″, lo que debemos hacer es bajar un paquete de imágenes y desempacarlo en la ruta mencionada anteriormente y colocarlo tal y como se muestra en la definición de los hosts dered.cfg.

En la siguiente entrada configuraremos de una manera más sencilla el servidor de correo para que nuestras notificaciones salgan de una cuenta de gmail y además agregaremos más de un contacto para que reciba las notificaciones de eventos.

las fuentes de este tutorial son:

http://www.taringa.net/posts/linux/16496929/Instalar-Nagios-en-Ubuntu-Server-12-04.html

https://pabloyela.wordpress.com/2011/12/01/nagios-3-3-1-tercera-parte/

Saludos.


DMC Firewall is a Joomla Security extension!