Está en la página 1de 5

TALLER PRCTICO

Nagios 3

Monitorizacin de equipos
con Nagios 3
Jorge Lpez

jlopez@iberprensa.com

agios es una herramienta


GPL que permite llevar un
completo control de la disponibilidad de los servicios, procesos y recursos de un equipo, informando al administrador por diferentes medios como correo electrnico o SMS de su bloqueo o
carga excesiva. Estudiamos en
este taller prctico las caractersticas de esta utilidad y su configuracin va interfaz web.
Surgido con el nombre NetSaint y
transformado en el proyecto Nagios
(http://www.nagios.org), se trata de una
herramienta para monitorizar los equipos
y servicios de una red. Mediante el uso de
distintos comandos, supervisa hasta el m
nimo detalle de sus estados, informando a
los administradores en caso de detectar
se cualquier tipo de problema.
Con respecto a versiones anteriores,
Nagios 3 est dividido en diferentes archi
vos para la configuracin de los dispositi
vos y contactos, haciendo ms sencilla su
administracin. Adems incluye numero
sas optimizaciones al poder monitorizar
mltiples elementos, generar un mayor
nmero de estadsticas para la interfaz
web y agregar nuevas funciones en el in
trprete de Perl integrado.

almacenamiento, y recursos tipo el es


pacio en disco o la cantidad de memo
ria utilizada. Mediante el uso del com
plemento NRPE tambin es posible
monitorizar los recursos de un equipo
remoto.
Envo de notificaciones por correo
electrnico o SMS, segn su grave
dad, podemos definir que se enven co
mo simples advertencias o marcados
como urgentes. Tambin se manda un
mensaje informando de la correccin
del problema originado, por ejemplo al
resolverse automticamente.
Interfaz web integrada, para ver los
estados actuales de monitorizado, su
histrico, grficos de la topologa de red
para revisar si algn nodo est cado,
listado mensajes enviados y generar in
formes de disponibilidad.
Creacin de eventos, para ejecutar
los al producirse determinadas situacio
nes, por ejemplo reiniciar algn servicio
cuando la carga de los recursos del
equipo sea muy alta.

miento de varios elementos a la vez


con un mnimo de modificaciones.
Grabacin y rotacin automtica
de los estados de los elementos
monitorizados en archivos logs, su
contenido lo leemos desde cualquier
editor de texto o mediante la interfaz
web.
Asignacin de roles para los usuarios, permitiendo dividir las tareas en
distintos usuarios. Por ejemplo, unos
encargados del estado de los servicios
y otros de los recursos del equipo, a los
que se envan diferentes mensajes.
Ampliacin de funciones mediante
el uso de complementos, permitien
do el control de nuevos servicios como
los gestores de bases de datos MySQL
o PostgreSQL. Para programarlos, po
demos utilizar el lenguaje que prefira
mos, ya que Nagios funciona como una
pasarela transparente para enviar men
sajes con las salidas de los programas.

Accedemos al contenido del archivo log generado.

Pgina oficial del proyecto Nagios.

CARACTERSTICAS
Monitorizado de servicios de red,
por ejemplo HTTP, SMTP o POP3, dis
positivos como impresoras o redes de

www.studiopress.es

Listado de contactos creados.

REQUISITOS

Agrupacin de los elementos monitorizados, como los de servidores


web distintos, cambiando sus avisos y
alertas segn el grupo al que pertenez
can. Esto permite una administracin
ms sencilla, al cambiar el comporta

Para poder utilizar todas las prestaciones


que ofrece Nagios debemos instalar el
servidor web Apache 2, el compilador
GCC y las libreras GD. Estas ltimas son
necesarias para crear de manera dinmi
ca las imgenes generadas en los infor
mes.

La interfaz web integrada en Nagios genera informes con


el estado actual de los elementos monitorizados
Nmero 95

31

TALLER PRCTICO

Nagios 3

PASO 7

INSTALACIN

Como ltimo paso nos faltara copiar el ar


chivo de configuracin de Nagios para el
servidor web, para lo cual entramos en el
directorio nagios-3.0.3 y ejecutamos:

PASO 1
Primero necesitamos un usuario junto a
su respectivo grupo, que ser el utilizado
por Nagios para funcionar. Podemos
crearlos desde las herramientas provistas
por nuestra distribucin, o utilizar el co
mando:

# make install-webconf

# /usr/sbin/adduser nagios
Listado de mdulos disponibles que se pueden utilizar.

con los que aadimos el nuevo usuario y


escribimos su contrasea.
Para crear el grupo, ejecutamos:

# /usr/sbin/groupadd nagiosgroup
# /usr/sbin/usermod
-G nagiosgroup nagios
# /usr/sbin/usermod
-G nagiosgroup www-data
con los dos ltimos comandos aadimos
al grupo el usuario creado nagios y el uti
lizado por Apache, www-data. Este se
gundo puede variar en algunas instala
ciones, estando definido en los archivos
de configuracin del servidor web.

PASO 2
Entramos a la pgina: http://www.nagios.
org/download y descargamos los archi
vos de los dos primeros desplegables,
Get Nagios y Get Plugins, utilizando en
ambos el botn Go, y seleccionado para
este ltimo el paquete de nombre nagiosplugins. El primero contiene el programa
en s y el segundo los complementos
esenciales.

PASO 3
Despus de descomprimir el paquete de
Nagios:

$ tar xvzf nagios-3.0.3.tar.gz


y acceder a su contenido:

PASO 5
Al finalizar, identificados como root, ejecu
tamos cuatro comandos ms para su ins
talacin:

#
#
#
#

make
make
make
make

install
install-init
install-config
install-commandmode

# htpasswd -c /usr/local/nagios
/etc/htpasswd.users nagios_admin
reiniciando Apache para habilitar el nuevo
directorio web creado, ejecutando uno de
los dos siguientes comandos segn la dis
tribucin que utilicemos:

# /etc/init.d/apache2 reload
# /etc/init.d/httpd reload

copiando los archivos, libreras, ejecuta


bles y archivos de configuracin, y asig
nando los permisos adecuados.

PASO 6
A continuacin, procedemos a instalar los
complementos descargados, descompri
miendo su paquete:

$ tar xvzf
nagios-plugins-1.4.12.tar.gz
y dentro de este directorio:

$ cd nagios-plugins-1.4.12
compilamos e instalamos, indicando el
usuario y grupo creados.

$ ./configure --with-nagiosuser=nagios --with-nagiosgroup=nagiosgroup


$ make
# make install

$ cd nagios-3.0.3
creamos el archivo makefile, indicando el
grupo antes creado:

$ ./configure --with-comandgroup= nagiosgroup


PASO 4
Invocamos su compilacin.

$ make all
Creando el nuevo grupo y un usuario asociado.

32

Para bloquear los intentos de lectura


de las pginas con la informacin y esta
dsticas generadas, creamos un nuevo
usuario, de nombre nagios_admin, y su
contrasea con el comando:

Nmero 95

Solicitando un usuario y su clave para entrar en Nagios.

CONFIGURACIN
Nagios divide en varios archivos las opcio
nes de configuracin, utilizando cada uno
para definir diferentes parmetros de mo
nitorizado. As, encontramos dentro del di
rectorio /usr/local/nagios/etc/objects
ocho archivos; de los cuales hay tres que
se recomienda no modificar, a otro le de
bemos aadir al menos un correo electr
nico y otros cuatro que eliminamos o
adaptamos a nuestras necesidades, ya
que las opciones que almacenan sirven
solo de ejemplo.
Los tres primeros, que inicialmente no
modificamos, definen los comandos, pa
rmetros de tiempo y plantillas para los
equipos y dispositivos utilizados en otros
archivos de configuracin:
commands.cfg: son todos los co
mandos de control instalados junto a
Nagios. Algunos de estos comandos son
el acceso por red de un equipo, su espa

www.studiopress.es

Nagios 3

cio en disco, la memoria swap libre, los


usuarios conectados o la disponibilidad de
servicios como HTTP, FTP, SSH, SMTP o
POP. Estos comandos son proporciona
dos a los equipos para definir los controles
que queremos asignar.
Por ejemplo, el control de acceso por
ping tiene la siguiente sintaxis:

define command{
comand_name check_ping
command_line
$USER1$/check_ping
-H $HOSTADRESS$ -w $ARG1$
-c $ARG2$ -p 5
}
donde el valor de command_name es utili
zado para asignar a un equipo este con
trol, y los parmetros de command_line
tambin sern asignados automticamen
te con otros archivos CFG.
Los comandos disponibles, a los que
sumaremos los provistos por otros com
plementos, son suficientes para monitori
zar cualquier equipo o red, incluyendo sus
recursos y servicios.
templates.cfg: coleccin de plantillas
para ser utilizadas en contactos, equipos y
servicios. Definen los perodos de tiempo,
comandos de monitorizado o frecuencia
de reintentos en caso de error, entre otros
muchos parmetros. El uso de estas plan
tillas permite aplicar un conjunto comn
de opciones a los elementos que se van a
controlar, haciendo ms sencillo su cam
bio.
El nmero de plantillas contenidas es
suficiente para casi cualquier equipo y
red, definida cada una por la opcin name. Encontramos seis plantillas de espe
cial utilidad: generic-contact, para los

Listado 1. Opciones de la plantilla


Linux-server
define host{
name linux-server
use generic-host
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period workhours
notification_interval 120
notification_options d,u,r
contact_groups admins
register 0
}

www.studiopress.es

contactos; linux-server, servidor GNU/


Linux; windows-server, servidor Windows;
generic-printer, dispositivo de impresin
en red; generic-switch, switchs o routers;
y generic-service, comn para los servi
cios. A su vez, las cinco primeras depen
den de otra plantilla de nombre generichost.
Para que un elemento que va a ser
monitorizado pueda hacer uso de los pa
rmetros de una plantilla (ver Listado 1),
por ejemplo linux-server, aadimos en sus
parmetros de configuracin la lnea

use

linux-server

timeperiods.cfg: perodos de tiempo


en que los comandos definidos en command.cfg van a ejecutarse, y configura
cin de cundo se enviarn los mensajes
de alerta a los contactos de contacts.cfg.
Admite la definicin de franjas temporales
por da y hora, por ejemplo definiendo
alertas por perodo laboral para los proce
sos menos importantes o las 24 horas pa
ra los crticos.
Para crear un nuevo perodo de tiem
po, por ejemplo con la franja horaria de
Lunes a Jueves de 9:00 a 19:00, y los
Viernes de 9:00 a 15:00, aadimos las l
neas:

define timeperiod{
timeperiod_name hora_trabajo
alias Hora de trabajo
monday 09:00-19:00
tuesday 09:00-19:00
wednesday 09:00-19:00
thursday 09:00-19:00
friday 09:00-15:00
}
Dentro de este archivo, encontramos
otros ejemplos para aadir perodos de
tiempo distintos, incluyendo filtros segn
el da y mes del ao.
Aunque podemos aadir las configura
ciones de estos tres ficheros en un solo
archivo, por ejemplo opciones.cfg, e inser
tarlo dentro de nagios.cfg, es preferible
conservar esta separacin de ficheros, ya
que facilita su modificacin al no mezclar
parmetros con distintas finalidades.
El cuarto fichero solo lo modificamos
para aadir al menos un contacto vlido,
junto a su nombre y direccin de correo
electrnico:
contacts.cfg: contiene cada uno de
los contactos con su nombre y direccin
de correo electrnico. A cada elemento
monitorizado asignamos al menos un
contacto, al cual se le remitir un mensaje

Nmero 95

TALLER PRCTICO

en caso de generarse un estado de alerta.


Para aadir un contacto utilizamos las l
neas:

define contact{
contact_name nagiosadmin
use generic-contact
alias Administrador Nagios
email admin@correo.com
}
donde utilizamos los parmetros: contact_
name, nombre del contacto; use, plantilla
del contacto, definido en el archivo templates.cfg; alias, nombre completo del
usuario para identificarlo fcilmente; y
email, direccin de correo a la que enviar
las alertas. Para cada nuevo contacto,
aadimos estos mismos datos pero cam
biando como mnimo su nombre y correo
electrnico.
Para simplificar su configuracin hace
mos uso de los grupos, que unen ms de
un contacto, por ejemplo:

define contactgroup {
contactgroup_name
administradores
alias Administradores Nagios
members nagiosadmin
}
siendo: contactgroup_name, el nombre
del nuevo grupo que asignamos a los ele
mentos monitorizados; alias, descripcin
del grupo; y members, listado de contac
tos separados por comas que constituyen
el grupo.
Los tres ltimos archivos solo nos sir
ven como ejemplos, ya que definen los
equipos, dispositivos, topologa de red y
los comandos, plantillas y contactos aso
ciados:
localhost.cfg: controla los procesos y
servicios del equipo en el que Nagios
est ejecutndose.
printer.cfg: ejemplos de control de im
presoras.
switch.cfg: monitorizado de dispositi
vos de red, como routers y switches.
windows.cfg: monitorizado de equi
pos y servicios Windows.
El uso de estos archivos se realiza
desde el fichero nagios.cfg, mediante las
lneas que comienzan por cfg_file. As, si
queremos obviar el uso de alguno, por
ejemplo este ltimo para equipos
Windows, aadimos a su inicio el carcter
#. En la configuracin predeterminada
estn desactivados: switch.cfg, printer.cfg
y windows.cfg.

33

TALLER PRCTICO

Nagios 3

Opciones de control de un servidor web.

Aunque podemos utilizar estos archi


vos como base para monitorizar los equi
pos, y redes modificndolos segn nues
tras necesidades, vamos a crear un archivo
de configuracin nuevo, de nombre mired.
cfg. nicamente controlar un equipo prin
cipal, en el que est instalado Nagios, y un
servidor situado en la misma red local.
Primero creamos en el directorio /usr/
local/nagios/etc/objects un nuevo archivo
de nombre mired.cfg, inicialmente vaco.
Lo aadimos junto al resto de opciones de
configuracin insertando en el fichero nagios.cfg la lnea:

cfg_file=/usr/local/nagios/etc/
objects/mired.cfg

define service{
use local-service
host_name localhost
service_description
Current Load
check_command
check_local_load!5.0,4.0!10.0
}
y el de acceso a nivel ping para
el servidor.
define service{
use local-service
host_name servidor1
service_description PING
check_command
check_ping!100.0,20%!500.0,60%
}
aparte de la opcin host_name antes des
crita, hemos aadido cuatro nuevas: use,
nombre de la plantilla, de nuevo utilizamos
una predeterminada; service_description,
la descripcin que queremos dar al servi
cio; y check_command, con el comando a
ejecutar para monitorizar. En esta ltima,
indicamos el nombre de los comandos
disponibles en el archivo commands.cfg y
los valores de advertencia y emergencia.
As con la lnea

Si el resultado de este es satisfactorio,


mostrar los mensajes:

Total Warnings: 0
Total Errors: 0
reiniciamos el servicio:

# /etc/init.d/nagios restart

Comprobando la nueva configuracin de Nagios.

INTERFAZ WEB
Para acceder a la interfaz web de Nagios,
abrimos un navegador e introducimos en
la barra de URL la direccin:
http://localhost/nagios

check_local_load!5.0,4.0!10.0
Dentro de este archivo, mired.cfg, in
sertamos los equipos que vamos a moni
torizar y sus servicios. Primero utilizamos
la opcin host, para definir los equipos:

define host{
use linux-server
host_name localhost
alias localhost
address 127.0.0.1
}
define host{
use linux-server
host_name servidor1
alias Servidor 1
address 192.168.0.5
}
donde hacemos uso de cuatro opciones
para cada equipo: use, nombre de la plan
tilla, indicando la predeterminada linuxserver; host_name, el nombre con el que
identificarlo; alias, descripcin del equipo;
y address, direccin IP, utilizando localhost
para referirse al propio ordenador.
Cada uno de estos equipos lo relacio
namos con uno o ms servicios, indicando
en la opcin host_name, el mismo nombre
antes definido.
Por ejemplo, aadimos el control de la
carga a localhost:

34

definimos que al llegar a la carga 4.0 5.0


se lance un mensaje de advertencia, y al
alcanzar el valor 10.0 sea de alerta.
Otros comandos de monitorizado, co
mo los de HTTP o SSH, no poseen niveles
de advertencia, quedando la definicin de
su control como:

define service{
use local-service
host_name servidor1
service_description HTTP
check_command check_http
}
que solo informa de si estn o no activos.
Similares lneas las podemos utilizar
para el resto de comandos, cuya sintaxis
podemos ver en el archivo commands.
cfg.
Con cada cambio realizado, para acti
varlo necesitamos ejecutar dos coman
dos. Primero:

$ /usr/local/nagios/bin/nagios
-v /usr/local/nagios/etc
/nagios.cfg
para comprobar la configuracin, indicn
donos los errores que encuentre.

Nmero 95

se nos pedir el usuario y su clave que


creamos al principio con el comando
htpasswd.
Desde el men situado en la parte iz
quierda de la pgina accedemos a las di
ferentes estadsticas generadas por
Nagios, as como a su estado actual.
Los enlaces ms importantes por la in
formacin que ofrecen, son los siguientes:
Tactical overview: un completo resu
men de todos los servicios y equipos en
el momento actual. Informando de los
alertas crticas y advertencias, cadas y
de aquellos elementos que no tengan
problemas. Su principal utilidad es ver en
pocos segundos el estado completo de
los elementos monitorizados, incluyendo
una seccin de ttulo Network Health con
dos barras para indicar su salud comple
ta con colores verde todo correcto,
amarillo con problemas, o rojo para
alertas. Todos los textos de informacin
son enlaces a travs de los cuales pode
mos acceder rpidamente a una infor
macin ms completa.
Service Detail y Host Detail: respec
tivamente son los listados de servicios y
equipos monitorizados. Contienen su
nombre, estado actual, fecha y hora de
la ltima y prxima comprobacin y la
salida del comando de monitorizacin.

www.studiopress.es

Nagios 3

Finalmente, escogemos el perodo de fe


chas de la disponibilidad del equipo y pre
sionamos Create Availability Report! para
obtener una nueva pgina con el detalla
do informe.
Todos los datos de estas pginas, as
como los nombres de los elementos, son
tomados a partir de los archivos de confi
guracin antes explicados.

Por ejemplo, si queremos obtener el


histrico del equipo localhost, presiona
mos el enlace Availability, seleccionamos
Host(s) y elegimos la opcin localhost.

www.studiopress.es

A continuacin, aadimos al archivo


commands.cfg el nuevo comando:

define command{
command_name check_tftp
command_line
$USER1$/check_tftp.pl
$HOSTADDRESS$ directorio/archivo
}
reemplazando directorio/archivo por la ru
ta al fichero con el que monitorizar el envo
por TFTP.
Para aadir este control a un equipo,
insertamos en su archivo de configuracin
correspondiente las lneas:

Resumen de los elementos monitorizados.

Si alguno de estos nodos est en esta


do crtico o con advertencia, presiona
mos sobre su nombre para desplegar
informacin ms detallada.
Status Map: informacin sobre el es
tado de la red con los equipos y sus
servicios. Podemos ir situndonos so
bre cada uno de sus nombres. Repre
senta grficamente la topologa de la
red, y mostrar tambin aquellos orde
nadores que no estn accesibles.
Service Problems y Host Problems:
todos los servicios y equipos que pre
sentan estado de error, incluyendo en
laces similares a los mostrados en las
pginas Detail antes vistas. Las adver
tencias definidas en los comandos se
representan con color amarillo y las
alertas crticas en rojo.
Reporting: un conjunto de opciones
orientadas a generar informes con el
historial de disponibilidad de equipos y
servicios.

TALLER PRCTICO

Informe histrico del estado del servidor web.

AADIENDO COMPLEMENTOS
La instalacin realizada de Nagios solo est
limitada por el hecho de que no es posible
monitorizar equipos remotos, tambin por
algunos servicios no soportados y porque
el nmero de dispositivos es reducido.
Pero gracias a la API provista con la propia
aplicacin es posible aadir nuevos contro
les. De hecho podemos encontrar un gran
nmero de ellos ya desarrollados por otros
usuarios en la pgina http://www.nagiosexchange.org. Los controles estn clasifi
cados segn su cometido, como redes,
hardware, software o sistemas operativos.
Por ejemplo, para instalar el comando
de monitorizado TFTP descargamos su
archivo PL, que copiamos al directorio
/usr/local/nagios/libexec.

Nmero 95

define service{
use local-service
host_name servidor2
service_description TFTP
check_command check_tftp
}

Configuracin de varios comandos de monitorizado.

siendo servidor2 el equipo que vamos a


monitorizar, que est definido en otro ar
chivo de configuracin como hemos visto
antes. n

35

También podría gustarte