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. Listado de contactos creados.

REQUISITOS
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.

Pgina oficial del proyecto Nagios.

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

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

La interfaz web integrada en Nagios genera informes con el estado actual de los elementos monitorizados
Nmero 95 31

www.studiopress.es

TALLER PRCTICO

NAGiOS 3

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:

PASO 7
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:

# make install-webconf
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:

# /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:

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

# 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:

# /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.

# # # #

make make make make

install install-init install-config install-commandmode

# /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 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 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.

Solicitando un usuario y su clave para entrar en Nagios.

PASO 3
Despus de descomprimir el paquete de 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

$ tar xvzf nagios-3.0.3.tar.gz


y acceder a su contenido:

$ ./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

Nmero 95

www.studiopress.es

NAGiOS 3

TALLER PRCTICO

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

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

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:

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 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.

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

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

Nmero 95

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:

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

cfg_file=/usr/local/nagios/etc/ objects/mired.cfg
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:

check_local_load!5.0,4.0!10.0
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: 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.

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:

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.

34

Nmero 95

www.studiopress.es

NAGiOS 3

TALLER PRCTICO

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.

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. Por ejemplo, si queremos obtener el histrico del equipo localhost, presiona mos el enlace Availability, seleccionamos Host(s) y elegimos la opcin localhost.

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.

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

www.studiopress.es

Nmero 95

35

También podría gustarte