• Like

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Manual Nagios

  • 8,440 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
8,440
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
441
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. TALLER PRÁCTICO Nagios 3 Monitorización de equipos con Nagios 3 Jorge López jlopez@iberprensa.com N agios es una herramienta almacenamiento, y recursos tipo el es­ miento de varios elementos a la vez GPL que permite llevar un pacio en disco o la cantidad de memo­ con un mínimo de modificaciones. completo control de la dis- ria utilizada. Mediante el uso del com­  grabación y rotación automática ponibilidad de los servicios, proce- plemento NRPE también es posible de los estados de los elementos sos y recursos de un equipo, infor- monitorizar los recursos de un equipo monitorizados en archivos logs, su mando al administrador por dife- remoto. contenido lo leemos desde cualquier rentes medios como correo elec-  Envío de notificaciones por correo editor de texto o mediante la interfaz trónico o SMS de su bloqueo o electrónico o sMs, según su grave­ web. carga excesiva. Estudiamos en dad, podemos definir que se envíen co­  asignación de roles para los usua- este taller práctico las caracterís- mo simples advertencias o marcados rios, permitiendo dividir las tareas en ticas de esta utilidad y su configu- como urgentes. También se manda un distintos usuarios. Por ejemplo, unos ración vía interfaz web. mensaje informando de la corrección encargados del estado de los servicios Surgido con el nombre NetSaint y del problema originado, por ejemplo al y otros de los recursos del equipo, a los transformado en el proyecto Nagios resolverse automáticamente. que se envían diferentes mensajes. (http://www.nagios.org), se trata de una  interfaz web integrada, para ver los  ampliación de funciones mediante herramienta para monitorizar los equipos estados actuales de monitorizado, su el uso de complementos, permitien­ y servicios de una red. Mediante el uso de histórico, gráficos de la topología de red do el control de nuevos servicios como distintos comandos, supervisa hasta el mí­ para revisar si algún nodo está caído, los gestores de bases de datos MySQL nimo detalle de sus estados, informando a listado mensajes enviados y generar in­ o PostgreSQL. Para programarlos, po­ los administradores en caso de detectar­ formes de disponibilidad. demos utilizar el lenguaje que prefira­ se cualquier tipo de problema.  Creación de eventos, para ejecutar­ mos, ya que Nagios funciona como una Con respecto a versiones anteriores, los al producirse determinadas situacio­ pasarela transparente para enviar men­ Nagios 3 está dividido en diferentes archi­ nes, por ejemplo reiniciar algún servicio sajes con las salidas de los programas. vos para la configuración de los dispositi­ cuando la carga de los recursos del vos y contactos, haciendo más sencilla su equipo sea muy alta. administración. Además incluye numero­ sas optimizaciones al poder monitorizar múltiples elementos, generar un mayor número de estadísticas para la interfaz web y agregar nuevas funciones en el in­ térprete de Perl integrado. Accedemos al contenido del archivo log generado. Listado de contactos creados. REQUISITOS Para poder utilizar todas las prestaciones  agrupación de los elementos mo- que ofrece Nagios debemos instalar el nitorizados, como los de servidores servidor web Apache 2, el compilador web distintos, cambiando sus avisos y GCC y las librerías GD. Estas últimas son alertas según el grupo al que pertenez­ necesarias para crear de manera dinámi­ Página oficial del proyecto Nagios. can. Esto permite una administración ca las imágenes generadas en los infor­ más sencilla, al cambiar el comporta­ mes. CARACTERÍSTICAS  Monitorizado de servicios de red, La interfaz web integrada en Nagios genera informes con por ejemplo HTTP, SMTP o POP3, dis­ positivos como impresoras o redes de el estado actual de los elementos monitorizados www.studiopress.es Número 95 31
  • 2. TALLER PRÁCTICO NAGiOS 3 INSTALACIÓN  PASO 7 Como último paso nos faltaría copiar el ar­  PASO 1 chivo de configuración de Nagios para el Primero necesitamos un usuario junto a servidor web, para lo cual entramos en el su respectivo grupo, que será el utilizado directorio nagios-3.0.3 y ejecutamos: por Nagios para funcionar. Podemos crearlos desde las herramientas provistas # make install-webconf por nuestra distribución, o utilizar el co­ mando: Para bloquear los intentos de lectura de las páginas con la información y esta­ # /usr/sbin/adduser nagios dísticas generadas, creamos un nuevo Listado de módulos disponibles que se pueden utilizar. usuario, de nombre nagios_admin, y su con los que añadimos el nuevo usuario y contraseña con el comando: escribimos su contraseña. Para crear el grupo, ejecutamos:  PASO 5 # htpasswd -c /usr/local/nagios Al finalizar, identificados como root, ejecu­ /etc/htpasswd.users nagios_admin # /usr/sbin/groupadd nagiosgroup tamos cuatro comandos más para su ins­ # /usr/sbin/usermod talación: reiniciando Apache para habilitar el nuevo -G nagiosgroup nagios directorio web creado, ejecutando uno de # /usr/sbin/usermod # make install los dos siguientes comandos según la dis­ -G nagiosgroup www-data # make install-init tribución que utilicemos: # make install-config con los dos últimos comandos añadimos # make install-commandmode # /etc/init.d/apache2 reload al grupo el usuario creado nagios y el uti­ # /etc/init.d/httpd reload lizado por Apache, www-data. Este se­ copiando los archivos, librerías, ejecuta­ gundo puede variar en algunas instala­ bles y archivos de configuración, y asig­ ciones, estando definido en los archivos nando los permisos adecuados. de configuración del servidor web.  PASO 6  PASO 2 A continuación, procedemos a instalar los Entramos a la página: http://www.nagios. complementos descargados, descompri­ org/download y descargamos los archi­ miendo su paquete: vos de los dos primeros desplegables, Get Nagios y Get Plugins, utilizando en $ tar xvzf ambos el botón “Go”, y seleccionado para nagios-plugins-1.4.12.tar.gz este último el paquete de nombre nagios- plugins. El primero contiene el programa y dentro de este directorio: en sí y el segundo los complementos esenciales. $ cd nagios-plugins-1.4.12 Solicitando un usuario y su clave para entrar en Nagios.  PASO 3 compilamos e instalamos, indicando el CONFIGURACIÓN Después de descomprimir el paquete de usuario y grupo creados. Nagios divide en varios archivos las opcio­ Nagios: nes de configuración, utilizando cada uno $ ./configure --with-nagios- para definir diferentes parámetros de mo­ $ tar xvzf nagios-3.0.3.tar.gz user=nagios --with-nagios- nitorizado. Así, encontramos dentro del di­ group=nagiosgroup rectorio /usr/local/nagios/etc/objects y acceder a su contenido: $ make ocho archivos; de los cuales hay tres que # make install se recomienda no modificar, a otro le de­ $ cd nagios-3.0.3 bemos añadir al menos un correo electró­ nico y otros cuatro que eliminamos o creamos el archivo makefile, indicando el adaptamos a nuestras necesidades, ya grupo antes creado: que las opciones que almacenan sirven solo de ejemplo. $ ./configure --with-comand- Los tres primeros, que inicialmente no group= nagiosgroup modificamos, definen los comandos, pa­ rámetros de tiempo y plantillas para los equipos y dispositivos utilizados en otros  PASO 4 archivos de configuración: invocamos su compilación.  commands.cfg: son todos los co­ mandos de control instalados junto a $ make all Nagios. Algunos de estos comandos son Creando el nuevo grupo y un usuario asociado. el acceso por red de un equipo, su espa­ 32 Número 95 www.studiopress.es
  • 3. NAGiOS 3 TALLER PRÁCTICO cio en disco, la memoria swap libre, los contactos; linux-server, servidor GNU/ en caso de generarse un estado de alerta. usuarios conectados o la disponibilidad de Linux; windows-server, servidor Windows; Para añadir un contacto utilizamos las lí­ servicios como HTTP, FTP, SSH, SMTP o generic-printer, dispositivo de impresión neas: POP. Estos comandos son proporciona­ en red; generic-switch, switchs o routers; dos a los equipos para definir los controles y generic-service, común para los servi­ define contact{ que queremos asignar. cios. A su vez, las cinco primeras depen­ contact_name nagiosadmin Por ejemplo, el control de acceso por den de otra plantilla de nombre generic- use generic-contact ping tiene la siguiente sintaxis: host. alias Administrador Nagios Para que un elemento que va a ser email admin@correo.com define command{ monitorizado pueda hacer uso de los pa­ } comand_name check_ping rámetros de una plantilla (ver Listado 1), command_line por ejemplo linux-server, añadimos en sus donde utilizamos los parámetros: contact_ $USER1$/check_ping parámetros de configuración la línea name, nombre del contacto; use, plantilla -H $HOSTADRESS$ -w $ARG1$ del contacto, definido en el archivo tem- -c $ARG2$ -p 5 use linux-server plates.cfg; alias, nombre completo del } usuario para identificarlo fácilmente; y  timeperiods.cfg: períodos de tiempo email, dirección de correo a la que enviar donde el valor de command_name es utili­ en que los comandos definidos en com- las alertas. Para cada nuevo contacto, zado para asignar a un equipo este con­ mand.cfg van a ejecutarse, y configura­ añadimos estos mismos datos pero cam­ trol, y los parámetros de command_line ción de cuándo se enviarán los mensajes biando como mínimo su nombre y correo también serán asignados automáticamen­ de alerta a los contactos de contacts.cfg. electrónico. te con otros archivos CFG. Admite la definición de franjas temporales Para simplificar su configuración hace­ Los comandos disponibles, a los que por día y hora, por ejemplo definiendo mos uso de los grupos, que unen más de sumaremos los provistos por otros com­ alertas por período laboral para los proce­ un contacto, por ejemplo: plementos, son suficientes para monitori­ sos menos importantes o las 24 horas pa­ zar cualquier equipo o red, incluyendo sus ra los críticos. define contactgroup { recursos y servicios. Para crear un nuevo período de tiem­ contactgroup_name  templates.cfg: colección de plantillas po, por ejemplo con la franja horaria de administradores para ser utilizadas en contactos, equipos y Lunes a Jueves de 9:00 a 19:00, y los alias Administradores Nagios servicios. Definen los períodos de tiempo, Viernes de 9:00 a 15:00, añadimos las lí­ members nagiosadmin comandos de monitorizado o frecuencia neas: } de reintentos en caso de error, entre otros muchos parámetros. El uso de estas plan­ define timeperiod{ siendo: contactgroup_name, el nombre tillas permite aplicar un conjunto común timeperiod_name hora_trabajo del nuevo grupo que asignamos a los ele­ de opciones a los elementos que se van a alias Hora de trabajo mentos monitorizados; alias, descripción controlar, haciendo más sencillo su cam­ monday 09:00-19:00 del grupo; y members, listado de contac­ bio. tuesday 09:00-19:00 tos separados por comas que constituyen El número de plantillas contenidas es wednesday 09:00-19:00 el grupo. suficiente para casi cualquier equipo y thursday 09:00-19:00 Los tres últimos archivos solo nos sir­ red, definida cada una por la opción na- friday 09:00-15:00 ven como ejemplos, ya que definen los me. Encontramos seis plantillas de espe­ } equipos, dispositivos, topología de red y cial utilidad: generic-contact, para los los comandos, plantillas y contactos aso­ Dentro de este archivo, encontramos ciados: otros ejemplos para añadir períodos de  localhost.cfg: controla los procesos y Listado 1. Opciones de la plantilla tiempo distintos, incluyendo filtros según servicios del equipo en el que Nagios Linux-server el día y mes del año. está ejecutándose. Aunque podemos añadir las configura­  printer.cfg: ejemplos de control de im­ define host{ ciones de estos tres ficheros en un solo presoras. name linux-server archivo, por ejemplo opciones.cfg, e inser­  switch.cfg: monitorizado de dispositi­ use generic-host tarlo dentro de nagios.cfg, es preferible vos de red, como routers y switches. check_period 24x7 conservar esta separación de ficheros, ya  windows.cfg: monitorizado de equi­ check_interval 5 que facilita su modificación al no mezclar pos y servicios Windows. retry_interval 1 parámetros con distintas finalidades. max_check_attempts 10 El cuarto fichero solo lo modificamos El uso de estos archivos se realiza check_command check-host-alive para añadir al menos un contacto válido, desde el fichero nagios.cfg, mediante las notification_period workhours junto a su nombre y dirección de correo líneas que comienzan por cfg_file. Así, si notification_interval 120 electrónico: queremos obviar el uso de alguno, por notification_options d,u,r  contacts.cfg: contiene cada uno de ejemplo este último para equipos contact_groups admins los contactos con su nombre y dirección Windows, añadimos a su inicio el carácter register 0 de correo electrónico. A cada elemento “#”. En la configuración predeterminada } monitorizado asignamos al menos un están desactivados: switch.cfg, printer.cfg contacto, al cual se le remitirá un mensaje y windows.cfg. www.studiopress.es Número 95 33
  • 4. TALLER PRÁCTICO NAGiOS 3 define service{ Si el resultado de este es satisfactorio, use local-service mostrará los mensajes: host_name localhost service_description Total Warnings: 0 Current Load Total Errors: 0 check_command check_local_load!5.0,4.0!10.0 reiniciamos el servicio: } y el de acceso a nivel ping para # /etc/init.d/nagios restart el servidor. define service{ Opciones de control de un servidor web. use local-service host_name servidor1 Aunque podemos utilizar estos archi­ service_description PING vos como base para monitorizar los equi­ check_command pos, y redes modificándolos según nues­ check_ping!100.0,20%!500.0,60% tras necesidades, vamos a crear un archivo } de configuración nuevo, de nombre mired. cfg. Únicamente controlará un equipo prin­ aparte de la opción host_name antes des­ cipal, en el que está instalado Nagios, y un crita, hemos añadido cuatro nuevas: use, servidor situado en la misma red local. nombre de la plantilla, de nuevo utilizamos Primero creamos en el directorio /usr/ una predeterminada; service_description, local/nagios/etc/objects un nuevo archivo la descripción que queremos dar al servi­ Comprobando la nueva configuración de Nagios. de nombre mired.cfg, inicialmente vacío. cio; y check_command, con el comando a Lo añadimos junto al resto de opciones de ejecutar para monitorizar. En esta última, INTERFAZ WEB configuración insertando en el fichero na- indicamos el nombre de los comandos Para acceder a la interfaz web de Nagios, gios.cfg la línea: disponibles en el archivo commands.cfg y abrimos un navegador e introducimos en los valores de advertencia y emergencia. la barra de URL la dirección: cfg_file=/usr/local/nagios/etc/ Así con la línea objects/mired.cfg http://localhost/nagios check_local_load!5.0,4.0!10.0 Dentro de este archivo, mired.cfg, in­ se nos pedirá el usuario y su clave que sertamos los equipos que vamos a moni­ definimos que al llegar a la carga 4.0 ó 5.0 creamos al principio con el comando torizar y sus servicios. Primero utilizamos se lance un mensaje de advertencia, y al htpasswd. la opción host, para definir los equipos: alcanzar el valor 10.0 sea de alerta. Desde el menú situado en la parte iz­ Otros comandos de monitorizado, co­ quierda de la página accedemos a las di­ define host{ mo los de HTTP o SSH, no poseen niveles ferentes estadísticas generadas por use linux-server de advertencia, quedando la definición de Nagios, así como a su estado actual. host_name localhost su control como: Los enlaces más importantes por la in­ alias localhost formación que ofrecen, son los siguientes: address 127.0.0.1 define service{  Tactical overview: un completo resu­ } use local-service men de todos los servicios y equipos en define host{ host_name servidor1 el momento actual. informando de los use linux-server service_description HTTP alertas críticas y advertencias, caídas y host_name servidor1 check_command check_http de aquellos elementos que no tengan alias Servidor 1 } problemas. Su principal utilidad es ver en address 192.168.0.5 pocos segundos el estado completo de } que solo informa de si están o no activos. los elementos monitorizados, incluyendo Similares líneas las podemos utilizar una sección de título Network Health con donde hacemos uso de cuatro opciones para el resto de comandos, cuya sintaxis dos barras para indicar su salud comple­ para cada equipo: use, nombre de la plan­ podemos ver en el archivo commands. ta con colores –verde todo correcto–, tilla, indicando la predeterminada linux- cfg. –amarillo– con problemas, o rojo para server; host_name, el nombre con el que Con cada cambio realizado, para acti­ alertas. Todos los textos de información identificarlo; alias, descripción del equipo; varlo necesitamos ejecutar dos coman­ son enlaces a través de los cuales pode­ y address, dirección iP, utilizando localhost dos. Primero: mos acceder rápidamente a una infor­ para referirse al propio ordenador. mación más completa. Cada uno de estos equipos lo relacio­ $ /usr/local/nagios/bin/nagios  service Detail y Host Detail: respec­ namos con uno o más servicios, indicando -v /usr/local/nagios/etc tivamente son los listados de servicios y en la opción host_name, el mismo nombre /nagios.cfg equipos monitorizados. Contienen su antes definido. nombre, estado actual, fecha y hora de Por ejemplo, añadimos el control de la para comprobar la configuración, indicán­ la última y próxima comprobación y la carga a localhost: donos los errores que encuentre. salida del comando de monitorización. 34 Número 95 www.studiopress.es
  • 5. NAGiOS 3 TALLER PRÁCTICO Finalmente, escogemos el período de fe­ A continuación, añadimos al archivo chas de la disponibilidad del equipo y pre­ commands.cfg el nuevo comando: sionamos “Create Availability Report!” para obtener una nueva página con el detalla­ define command{ do informe. command_name check_tftp Todos los datos de estas páginas, así command_line como los nombres de los elementos, son $USER1$/check_tftp.pl tomados a partir de los archivos de confi­ $HOSTADDRESS$ directorio/archivo guración antes explicados. } reemplazando directorio/archivo por la ru­ Resumen de los elementos monitorizados. ta al fichero con el que monitorizar el envío por TFTP. Si alguno de estos nodos está en esta­ Para añadir este control a un equipo, do crítico o con advertencia, presiona­ insertamos en su archivo de configuración mos sobre su nombre para desplegar correspondiente las líneas: información más detallada.  status Map: información sobre el es­ define service{ tado de la red con los equipos y sus use local-service servicios. Podemos ir situándonos so­ host_name servidor2 bre cada uno de sus nombres. Repre­ service_description TFTP senta gráficamente la topología de la Informe histórico del estado del servidor web. check_command check_tftp red, y mostrará también aquellos orde­ } nadores que no estén accesibles. AÑADIENDO COMPLEMENTOS  service Problems y Host Problems: La instalación realizada de Nagios solo está todos los servicios y equipos que pre­ limitada por el hecho de que no es posible sentan estado de error, incluyendo en­ monitorizar equipos remotos, también por laces similares a los mostrados en las algunos servicios no soportados y porque páginas Detail antes vistas. Las adver­ el número de dispositivos es reducido. tencias definidas en los comandos se Pero gracias a la APi provista con la propia representan con color amarillo y las aplicación es posible añadir nuevos contro­ alertas críticas en rojo. les. De hecho podemos encontrar un gran  Reporting: un conjunto de opciones número de ellos ya desarrollados por otros orientadas a generar informes con el usuarios en la página http://www.nagio- historial de disponibilidad de equipos y sexchange.org. Los controles están clasifi­ servicios. cados según su cometido, como redes, Configuración de varios comandos de monitorizado. hardware, software o sistemas operativos. Por ejemplo, si queremos obtener el Por ejemplo, para instalar el comando siendo servidor2 el equipo que vamos a histórico del equipo localhost, presiona­ de monitorizado TFTP descargamos su monitorizar, que está definido en otro ar­ mos el enlace Availability, seleccionamos archivo PL, que copiamos al directorio chivo de configuración como hemos visto Host(s) y elegimos la opción localhost. /usr/local/nagios/libexec. antes. n www.studiopress.es Número 95 35