Sie sind auf Seite 1von 9

Instalamos los paquetes necesarios:

yum install httpd php gcc glibc glibc-common gd gd-devel

Agregamos al usuario nagios,

/usr/sbin/useradd -m nagios

y seteamos su password,

passwd nagios
passwd nagios

Creamos el grupo nagcmd

/usr/sbin/groupadd nagcmd

y agregamos a nagios y a apache a tal grupo,

/usr/sbin/usermod -a -G nagcmd apache

Descargamos nagios y nagios-plugins en /opt :

lo desentaramos,

tar xzf nagios-3.2.1.tar.gz

entramos al directorio,

cd nagios-3.2.1
cd nagios-3.2.1

y lo instalamos,

./configure --with-command-group=nagcmd make all make install make install-init

make install-config make install-commandmode

Nagios se va a instalar por default en la ruta /usr/local/nagios. Lo primero que hacemos es editar el contacto de administrador con nuestros datos,

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

ahora configuramos la interfaz web,

make install-webconf

creamos la cuenta con la que vamos a accesar (user=nagiosadmin, password=xxxxxxxxx),

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

reiniciamos el servicio web,

/etc/init.d/httpd restart

Ahora vamos con los plugins. Para ello regresamos a /opt y desentaramos el archivo de los plugins,

tar xvzf nagios-plugins-1.4.11.tar.gz

entramos al directorio creado,

cd nagios-plugins-1.4.11

y los instalamos,

./configure --with-nagios-user=nagios --with-nagios-group=nagios make make install

En este punto, ya podemos levantar el servicio de Nagios y éste funcionará con los archivos de configuración de ejemplo. Antes de iniciar el servicio, checamos que todo esté bien con el siguiente comando:

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

Esta es una práctica útil a realizar cada vez que efectuamos un cambio en la configuración, agregamos sistemas a monitorear, servicios, etc. Una vez que sabemos que no hay errores, iniciamos el servicio:

/etc/init.d/nagios start

Y configuramos el reinicio del servicio para cada vez que se inicie el servidor,

chkconfig --add nagios chkconfig nagios on

El monitoreo

Su función radica en vigilar los equipos (carga del procesador, uso de espacio en disco, uso de memoria, tráfico, etc.) y servicios que se le especifiquen (snmp, smtp, pop3, http, etc ), alertando cuando alguno de estos falle.

Un vistazo rápido a cómo se ve nagios, sería el siguiente:

Lo que nos permite, a primer vistazo, saber que todos nuestros servidores están arriba o bien

Lo que nos permite, a primer vistazo, saber que todos nuestros servidores están arriba o bien que hay problema con alguno. De manera análoga para los servicios,

con un simple vistazo sabremos si hay problemas, en donde y de que. Servidor de monitoreo

con un simple vistazo sabremos si hay problemas, en donde y de que.

Servidor de monitoreo

Dentro del servidor de monitoreo, debemos configurar nagios de acuerdo a los servicios que estaremos siguiendo, los servidores o grupos de éstos que nos interesan, etc.

/usr/local/nagios/etc/objects/server.cfg

En el servidor de monitoreo vamos a crear un archivo dentro de /usr/local/nagios/etc/objects/ con los datos del servidor a agregar:

/usr/local/nagios/etc/objects/ server .cfg En el servidor de monitoreo vamos a crear un archivo dentro de /usr/local/nagios/etc/objects/

/usr/local/nagios/etc/objects/commands.cfg

El archivo /usr/local/nagios/etc/objects/commands.cfg por default incluye los comandos básicos útiles para el monitoreo y basados en los plugins instalados. Nosotros vamos a agregar algunos comandos "extra"

Ejemplo:

define command{ command_name check_snmp_storage_v1 command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ -C nombredenuestracomunidad -S1 -m "^/proc|Swap|memory|Memory|gvfs| media|pipefs|jbLogs|/sys" -e -w 90 -c 95 -o 15000 -f }

estamos definiendo el comando check_snmp_storage_v1, que lo que hace es ejecutar el plugin check_snmp_storage.pl en el host $HOSTADDRESS$, usando la comunidadnombredenuestracomunidad, ignorando algunos filesystems que no serían de storage, tomando como warning un consumo del 90% de espacio y como crítico un 95%.

Hay campos en la definición ejemplo que no vamos a explicar aun, pero adelantamos que servirán para el momento en que integremos PNP a nagios para graficar. Tales plugins extra son

check_snmp_int.pl, check_snmp_load.pl, check_snmp_mem.py y check_snmp_storage.pl.

/usr/local/nagios/etc/objects/service.cfg

Una vez que contamos con los comandos que vamos a utilizar, creamos el archivo /usr/local/nagios/etc/objects/service.cfg en el que definimos los servicios a utilizar para un servidor o grupo de estos, por ejemplo, las siguientes líneas

use generic-service hostgroup_name linux-nopalitux, linux-nopalitux-2, linux-nopalitux-3, linux-

nopalitux-4

service_description Storage check_command check_snmp_storage_v1

}

nos dicen que para el grupo de servidores linux-nopalitux, linux-nopalitux-2, linux-nopalitux-3 y linux-nopalitux-4 vamos a usar el comando check_snmp_storage_v1.

/usr/local/nagios/etc/objects/templates.cfg

Como su nombre lo dice, este es el archivo de "templates" y prácticamente lo dejamos como se encuentra por default. Lo único que hemos agregado son más bloques de definición de templates de acuerdo para nuestros grupos de servidores. Ej:

## Nopalitux define host{ name use

linux-nopalitux generic-host

check_period

24x7

check_interval

5

retry_interval

1

max_check_attempts

10

check_command action_url notification_period

check-host-alive /nagios/pnp/index.php?host=$HOSTNAME$ workhours

notification_interval

120

notification_options

d,u,r

contact_groups

admins

register }

0

Claro que podemos llevar a cabo un mayor grado de configuración. Aquí no estoy profundizando en el tema, sin embargo, sirve para mostrar algunas opciones a incluír. Por ejemplo, uno de tales parámetros es el "action_url" que definimos como

action_url

/nagios/pnp/index.php?host=$HOSTNAME$

que indica la ruta a vincular con el "host" monitoreado. En mi caso, al tener también instalado y configurado pnp4nagios me resulta útil este vínculo. Si no s interesa conocer más acerca de estos parámetros, debemos consultar la documentación de Nagios.

Sigamos con los archivos de configuración:

/usr/local/nagios/etc/nagios.cfg

En /usr/local/nagios/etc/nagios.cfg incluímos los archivos antes creados. Para cada uno agregamos una línea del tipo:

cfg_file=/usr/local/nagios/etc/objects/nopalitux-1.cfg

Con esto le estamos diciendo a Nagios que lea tal archivo. En realidad podríamos tener todo en un sólo archivo de configuración, sin embargo, puede resultar dificil de estar manejando. Si separamos todos los archivos como lo he señalado y al final agregamos a /usr/local/nagios/etc/nagios.cfg, nagios leerá todos los documentos.

En este ejemplo incluí a nopalitux-1.cfg. En "la vida real", para cada grupo de servidores pertenecientes a algún proyecto tengo un archivo de configuración. Cada vez que incorporo otro grupo de servidores de un proyecto, creo un nuevo archivo, lo agrego a /usr/local/nagios/etc/nagios.cfg, si se requiere creo el template, verifico con

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

y si todo funciona bien, entonces reinicio el servicio.

Service nagios restart