Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nagios 3
Monitorizacin de equipos
con Nagios 3
Jorge Lpez
jlopez@iberprensa.com
CARACTERSTICAS
Monitorizado de servicios de red,
por ejemplo HTTP, SMTP o POP3, dis
positivos como impresoras o redes de
www.studiopress.es
REQUISITOS
31
TALLER PRCTICO
Nagios 3
PASO 7
INSTALACIN
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.
# /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:
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
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.
$ cd nagios-3.0.3
creamos el archivo makefile, indicando el
grupo antes creado:
$ make all
Creando el nuevo grupo y un usuario asociado.
32
Nmero 95
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
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
www.studiopress.es
use
linux-server
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
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
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
Total Warnings: 0
Total Errors: 0
reiniciamos el servicio:
# /etc/init.d/nagios restart
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
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
www.studiopress.es
Nagios 3
www.studiopress.es
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:
TALLER PRCTICO
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
}
35