Monitorizando con Nagios
Antonio Mario Molina Saorín
13 de Julio de 2011
Talleres Caldum
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Monitorización
Concocer el estado de los recursos de un PC:
CPU, RAM, SWAP, HD, procesos...
Conocer el estado de servicios:
Ssh, http, ftp, bbdd, dns...
Queremos chequeos:
Automáticos (no podemos ir nosotros cada 5 min.)
Que se nos avise si pasa algo (mail, sms...)
Posibilidad de autocorregir el fallo¿?
Solución-->Sistema de monitorización
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Sistemas de monitorización
Existen muchos
La mayoría de pago (de Cisco, Avaya, HP...)
Pero hay gratuitos. El más conocido: nagios
Comparación entre todos:
http://en.wikipedia.org/wiki/Comparison_of_netwo
rk_monitoring_systems
Nagios permite monitorizar servicios, equipo
local, equipos remotos.
Extensible: plugins, comandos...
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Instalación - Prerrequisitos
Instalamos el servidor www:
# aptitude install apache2
Instalamos módulo php5 para apache2
# aptitude install libapache2-mod-php5
(nos pedirá desinstalar apache2-mpm-worker -que es el que permite
multiprocesamiento híbrido proceso-hilo- a lo que diremos que sí)
Instamos software para compilar
# aptitude install build-essential
Instalamos librería para crear X pixmap:
# aptitude install libgd2-xpm-dev
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Instalación – Usuarios (I)
Creamos usuario nagios:
# useradd -m -s /bin/bash nagios
o bien:
# adduser nagios
El grupo se habrá creado, si no:
# /user/sbin/groupadd nagios
# /user/sbin/usermod -G nagios nagios
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Instalación – Usuarios (y II)
Para permitir ejecución de comandos desde la
web → creamos grupo nagcmd.
# /usr/sbin/groupadd nagcmd
Metemos los usuarios nagios y www-data
(apache2) en dicho grupo.
# /usr/sbin/usermod -a -G nagcmd nagios
# /usr/sbin/usermod -a -G nagcmd www-data
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Instalación – Nagios-core (I)
Descargamos de www.nagios.org/download y
descomprimimos el fichero de nagios-core
cd $HOME/downloads
# tar zxvf nagios-3.2.3.tar.gz
Creamos makefile adecuado a nuestro PC
# ./configure –with-command-group=nagcmd
Compilamos el programa
# make all
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Instalación – Nagios-core (II)
Instalamos los binarios, scripts, ejemplos y
fichero de configuración de la web:
# make install
# make install-init
# make install-config
# make install-commandmode
# make install-webconf
Ya tenemos nagios instalado!!...
… pero aún nos quedan unos pasos para
poder dejarlo operativo...
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Instalación - Nagios-plugins
Descargamos de www.nagios.org/download y
descomprimimos los plugins de nagios
cd downloads
tar zxvf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11
Creamos el makefile
# ./configure –with-nagios-user=nagios
–with-nagios-group=nagios
Compilamos e instalamos
# make
# make install
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Instalación – pasos finales!
A partir de ahora nos logamos como el usuario
nagios
Configuramos nagios para que los mails nos
los envíe a nuestra cuenta de e-mail
emacs /usr/local/nagios/etc/objects/contacts.cfg
Creamos la cuenta nagiosadmin (web nagios)
htpasswd -c /usr/local/nagios/etc/htpasswd.users
nagiosadmin
”Recargamos” la configuración de nagios
# /etc/init.d/apache2 reload
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Ya tá!
http://localhost/nagios
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Post-instalación
Para que nagios arranque automáticamente:
# ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Verificar configuración de nagios
/usr/local/nagios/bin/nagios -v
/usr/local/nagios/etc/nagios.cfg
Si no hay errores iniciamos Nagios:
/etc/init.d/nagios restart
Ya tenemos nuestro nagios operativo!
Ahora hay que ”decirle” que monitorice
cosas ;-)
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Configuración de nagios
Como casi cualquier servicio Unix/Linux:
Se configura mediante ficheros de texto
Nagios no iba a ser menos ;-)
En etc/nagios.cfg tenemos la configuración
global de nagios
Para este taller apenas vamos a modificarlo
Lo importante:
Ficheros de configuración de objetos
Objetos son todo: hosts, servicios, contactos...
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Ficheros de configuración
Contacts
ContactGroups
TimePeriods
Hosts
HostGroups
Services
ServiceGroups
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Monitorización de hosts (I)
Añadimos un fichero en etc/objects.
Hay que agregar dicho fichero en nagios.cfg, o
bien agregar un directorio (cfg_dir).
IMPORTANTE: usamos plantillas:
Previamente creadas
1 para todos!
Nos facilitan el trabajo
Sólo tenemos que cambiar nombre e IP ;-)
Veamos un ejemplo de fichero de host
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Monitorización de hosts (II)
LOCALHOST
define host{
use linux-server
host_name localhost
alias localhost
address 127.0.0.1
}
GRUPO PARA LOS EQUIPOS LINUX
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members localhost
}
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Monitorización de servicios (I)
En un host podemos monitorizar 0, 1 ó varios
servicios
Se definen aparte del host
Hay comandos para chequear casi muchos
tipos de servicios, pero:
¡Podemos crear nuestros propios comandos!
Vamos a monitorizar dos servicios: http y ssh
En la siguiente vemos fichero de ejemplo
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Monitorización de servicios (II)
define service{
use local-service
host_name localhost
service_description HTTP
check_command
notifications_enabled
}
check_http
1
define service{
use local-service
host_name localhost
service_description SSH
check_command
notifications_enabled
check_ssh
1
}
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Notificaciones (I)
Queremos que nagios nos avise:
Si detecta que un servicio cae
Si detecta que vuelve a quedar operativo
Si detecta un servicio en estado crítico
…
Puede avisarnos, fundamentalmente,
Mediante e-mail
Mediante SMS
Hay otros métodos de aviso (jabber, por ej.).
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Notificaciones (II)
Vamos a configurarlo para aviso por e-mail
Opciones hay varias. Entre otras:
Instalar Postfix para el envío de mails
Usar una MTA externa (gmail, por ejemplo)
La primera es sencilla y útil si:
No queremos enviar mails fuera
Por tanto, nos dará problemas si:
Queremos que nos envíe un mail a nuestro gmail
Solución: usar MTA externo
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Notificaciones (III) – Inciso: gmail
Para enviar mail desde línea de comandos
usando gmail:
# aptitude install heirloom-mailx
mailx -v -a copiaseguridad.tar.gz
-S smtp=smtp.gmail.com:587
-S smtp-auth-starttls
-S
[email protected]
-S smtp-auth-password="XXXXXXX"
-S
[email protected]
[email protected]
Recibimos en nuestro Android las
notificaciones de nagios!!!
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Notificaciones (IV)
Editamos contacts
Colocamos nuestra dirección de e-mail:
Donde queremos recibir las notifiacciones
Podemos crear un contactgroup para meter
más de una dirección
Ahora: modificamos commands.cfg
/usr/bin/mailx -s "** $NOTIFICATIONTYPE$ Host Alert:
$HOSTNAME$ is $HOSTSTATE$ **" -S smtp=smtp.gmail.com:587
-S smtp-use-starttls -S
[email protected] -S
smtp-auth-password="PASSWORD" -S smtp-auth=login -S
[email protected] $CONTACTEMAIL$
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Notificaciones (V) – Ejemplo
Subject
** PROBLEM Host Alert: winserver is DOWN **
Cuerpo del mensaje
***** Nagios *****
Notification Type: PROBLEM
Host: winserver
State: DOWN
Address: 192.168.1.2
Info: CRITICAL - Host Unreachable
(192.168.1.2)
Date/Time: Tue Jul 12 14:34:26 CEST 2011
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
Chequeo de equipos GNU/Linux
Usaremos NRPE
Funcionamiento:
Monitorizando con Nagios
Antonio Mario Molina Saorín
http://antonio-mario.com
NRPE – Instalación cliente (I)
Instalamos nagios-plugins
tar zxvf nagios-plugins-1.4.15.tar.gz
./configure ; make ; make install
chown nagios.nagios /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios/libexec
Instalamos tcp wrapper: xinetd
# aptitude install xinetd
Instalamos nrpe:
# aptitude install libssl-dev
tar zxvf nrpe-2.12.tar.gz
./configure ; make all ; make install-plugin ; mak
Comentarios de: Monitorizando con Nagios (0)
No hay comentarios