Herraminetas_monitoreo

Herramientas de Monitoreo
con
software Libre
Areli Octavio Solis Espitia
twitter@arocse
[email protected]
Agenda
Descripción de las Herramientas:
Nagios
✔
Centreon
✔
Pandorafms
✔
Introducción



Herramientas principalmente de monitorización
activa de disponibilidad
Posiblemente la más utilizada en la categoría
de software libre
Interfaz Web

CGIs escritos en C para mayor velocidad

Soporta miles de nodos/servicios

Integra muchos plugins
Ventajas


La verificación de disponibilidad se delega en
plugins

La arquitectura es muy simple, por lo que es fácil
escribir plugins (en cualquier lenguaje)

Existen muchos de plugins, muchos contribuidos
por terceros
Chequeos en paralelo

Version 3 se lo hace ya mejor chequeos en
paralelo.



Programación de chequeos inteligente. Busca
una distribución equitativa de la carga de la
máquina que ejecuta Nagios, y la máquina
siendo chequeada
Configuraciones (en archivos de texto) muy
detalladas y basadas en plantillas
Lea su configuración al nivel de directorio. Tu
decides como definir los archivos.


Utiliza información topológica para determinar dependencias
 Diferenciación entre lo que está 'caído' y lo que está 'inalcanzable' – así no se tratar de hacer chequeos de los maquínas no 'inalcanzable'
Permite definir políticas de notificación, basadas en combinaciones de:
 contactos y listas de contactos
 dispositivos y grupos de dispositivos
 servicios y grupos de servicios.
 horarios definidos por grupos o personas.
 El estado de servicio:
Estado de Servicio:

En la configuración de un servicio la option
“notification_options” tiene lo siguiente posibilidades:





d: DOWN: El servicio o host esta caido
u: UNREACHABLE: Cuando el host no es visible o
es inalcanzable
r: RECOVERY: (OK) Cuando el host se recupero
f: FLAPPING: Cuando el host se inicia o detiene, o
el estado es indeterminado.
n: NONE: No enviar notificaciones
++ Ventajas

Permite acusar recibo de eventos (acknowledge)


El usuario puede agregar comentarios
Permite definir períodos de mantenimiento

Por dispositivo o grupo de dispositivos

Mantiene estadísticas de disponibilidad

Detecta flappings y suprime las notificaciones

Permite múltiples métodos de notificación via comandos


e-mail, pager, SMS, winpopup, audio, etc...
Permite definir niveles de escalamiento de notificaciones
Como Funciona?
Mecánica de chequeos



Uno nodo o dispositivo (host) consta de uno o más servicios
a chequear (PING, HTTP, MYSQL, SSH, etc)
Nagios chequea periódicamente cada servicio de cada nodo
y determina si ha habido algún cambio de estado:

CRITICAL

WARNING

UNKNOWN
A cada cambio de estado, se le puede asignar:

Opciones de notificación (como vimos antes)

Operaciones de manejo de eventos (event handlers)


Parámetros

Intervalo de chequeo normal

Intervalo de re-chequeo

Número máximo de chequeos

Período de chequeo
Los chequeos de nodo (host) sólo se ejecutan
cuando ninguno de los servicios responde

Uno nodo (host) puede estar:

DOWN

UNREACHABLE
Así se puede demorar hasta que un host cambia
su estado a “down” (no disponible/alcanzable)
por el hecho de que Nagios hace un chequeo
de servicios primero, después se hace el
chequeo de nodo y no se considera que un host
esta DOWN hasta que lo hace el chequeo 3
veces (por defecto).
Puedes cambiar el numero de chequeos.
Concepto de “Parents”

Nodos pueden tener “parents”



Por ejemplo, el parent de un pc conectado a un
switch seria el switch.
Nos permite especificar los dependencias que
hayan en la red entre maquinas, switches,
routers, etc.
Evita que Nagios manda alarmas si un parent ya
no responde.
Concepto de Punto de Vista



Donde queda tu servidor de Monitoreo en la
red va a cambiar como vea y monitorea
nodos y servicios.
Nagios ,Centreon apoya el concepto de
servidores en paralelo que corren en otro
partes de tu red.
Asi, probablemente mejor este cerca el
borde de tu red y no adentro.
Concepto de Punto de
Vista
Archivos de Configuración
Archivos de Configuración

Ubicado in /etc/nagios2/

Archivos importantes:
cgi.cfg
Controla el interfaz de Web y los
opciones de seguridad.
commands.cfg
Los comandos que usa Nagios para
notificaciones.
nagios.cfg
El archive principal de configuración
conf.d/*
El resto de los archivos de
configuración por servicios,
grupos,nodos, etc.
Archivos de Configuración
conf.d/*
contacts_nagios2.cfg
usarios y grups
generic-host_nagios2.cfg
plantilla host (defecto)
generic-service_nagios2.cfg plantilla servicio (defecto)
hostgroups_nagios2.cfg
definiciones de grupos de hosts
services_nagios2.cfg
servicios chequear
timeperiods_nagios2.cfg
cuando chequear y como y
quien a notificar
Archivos de Configuración
Extra u opcionales
Bajo conf.d/*
host-gateway.cfg
definición de ruta por defecto
extinfo.cfg
información extra por nodos
servicegroups.cfig grupos de maquínas y servicios
definición de monitoreo por el servidor
localhost.cfg
de Nagios
pcs.cfg
definición de un grupos de nodos
switches.cfg
definición de un grupo de switches
routers.cfg
definición de un grupo de routers
Configuración Principal

Parámetros que afectan al programa globalmente

Archivo: /etc/nagios2/nagios.cfg

Indicar la ubicación de los demás archivos de
configuración

Comportamiento de Nagios en general
 Importante
ajustar para asegurar un buen
desempeño en instalaciones con cientos de
servicios monitorizados
Ver: Tunning Nagios for Maximum Performance
http://nagios.sourceforge.net/docs/3_0/tuning.html
Configuración de CGI

Archivo: /etc/nagios2/cgi.cfg

Configurar directorio de CGIs

Autenticación y Autorización

Activar autenticación en Apache vía .htpasswd (o Radius/Ldap)

Listar los nombres de usuario en las variables de autorización:







authorized_for_system_information
authorized_for_configuration_information
authorized_for_system_commands
authorized_for_all_services
authorized_for_all_hosts
authorized_for_all_service_commands
authorized_for_all_host_commands
Configuración de Períodos

Definir períodos básicos que controlarán los
chequeos, notificaciones, etc.

24 horas, 7 días a la semana

Horario de trabajo

Horario fuera de trabajo
# '24x7'
# '24x7'
define timeperiod{
define timeperiod{
timeperiod_name 24x7
timeperiod_name 24x7
alias
24 Hours A Day, 7 Days A Week
alias
24 Hours A Day, 7 Days A Week
sunday
00:00-24:00
sunday
00:00-24:00
monday
00:00-24:00
monday
00:00-24:00
tuesday
00:00-24:00
tuesday
00:00-24:00
wednesday
00:00-24:00
wednesday
00:00-24:00
thursday
00:00-24:00
thursday
00:00-24:00
friday
00:00-24:00
friday
00:00-24:00
saturday
00:00-24:00
saturday
00:00-24:00
}
}
Configuración de comandos de
chequeo

Definir cómo se van a probar los servicios
# 'check-host-alive' command definition
define command{
command_name
check-host-alive
command_line
$USER1$/check_ping -H $HOSTADDRESS$ -w
2000.0,60% -c 5000.0,100% -p 1 -t 5
}
Comandos de notificación

Permite utilizar cualquier método de notificación, siempre que se pueda
ejecutar algún comando para ello:
# 'notify-by-email' command definition
define command{
command_name
notify-by-email
command_line
/usr/bin/printf "%b" "Service: $SERVICEDESC$\nHost:
$HOSTNAME$\nIn: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState:
$SERVICESTATE$\nInfo: $SERVICEOUTPUT$\nDate: $SHORTDATETIME$" | /bin/mail -s
'$NOTIFICATIONTYPE$: $HOSTNAME$/$SERVICEDESC$ is $SERVICESTATE$'
$CONTACTEMAIL$
}
From: [email protected]
To:
grupo-redes@localdomain
Subject:
Host DOWN alert for switch1!
Date: Thu, 29 Jun 2006 15:13:30 -0700
Host: switch1
In: Core_Switches
State: DOWN
Address: 111.222.333.444
Date/Time: 06-29-2006 15:13:30
Info: CRITICAL - Plugin timed out after 6 seconds
Configuración de nodos, servicios, etc


Método basado en plantillas (templates)

Ahorra mucho trabajo repetitivo

Similar a programación OO
Crear plantillas con todos los parámetros por
defecto

nodo genérico

servicio genérico

contacto genérico
Configuración de nodo (genérico)
define
define host{
host{
name
name
notifications_enabled
notifications_enabled
event_handler_enabled
event_handler_enabled
flap_detection_enabled
flap_detection_enabled
process_perf_data
process_perf_data
retain_status_information
retain_status_information
retain_nonstatus_information
retain_nonstatus_information
check_command
check_command
max_check_attempts
max_check_attempts
notification_interval
notification_interval
notification_period
notification_period
notification_options
notification_options
contact_groups
contact_groups
register
register
}}
generic-host
generic-host
11
11
11
11
11
11
check-host-alive
check-host-alive
55
60
60
24x7
24x7
d,r
d,r
nobody
nobody
00
Configuración de nodo
define
define host{
host{
use
use
host_name
host_name
alias
alias
address
address
parents
parents
contact_groups
contact_groups
grupo-switches
grupo-switches
}}
generic-host
generic-host
switch1
switch1
Core_switches
Core_switches
192.168.1.2
192.168.1.2
router1
router1
Configuración de Servicio (genérico)
define service{
define service{
name
name
active_checks_enabled
active_checks_enabled
passive_checks_enabled
passive_checks_enabled
parallelize_check
parallelize_check
obsess_over_service
obsess_over_service
check_freshness
check_freshness
notifications_enabled
notifications_enabled
event_handler_enabled
event_handler_enabled
flap_detection_enabled
flap_detection_enabled
process_perf_data
process_perf_data
retain_status_information
retain_status_information
retain_nonstatus_information
retain_nonstatus_information
is_volatile
is_volatile
check_period
check_period
max_check_attempts
max_check_attempts
normal_check_interval
normal_check_interval
retry_check_interval
retry_check_interval
notification_interval
notification_interval
notification_period
notification_period
notification_options
notification_options
register
register
}
}
generic-service
generic-service
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
24x7
24x7
5
5
5
5
1
1
60
60
24x7
24x7
c,r
c,r
0
0
Configuración de Servicio
define
define service{
service{
host_name
host_name
use
use
service_description
service_description
check_command
check_command
max_check_attempts
max_check_attempts
normal_check_interval
normal_check_interval
notification_options
notification_options
contact_groups
contact_groups
}}
switch1
switch1
generic-service
generic-service
PING
PING
check-host-alive
check-host-alive
55
55
c,r,f
c,r,f
grupo-switches
grupo-switches
Automatización

Mantener estas configuraciones manualmente
se convierte rápidamente en una carga

La mejor idea es simplificar y automatizar mediante
scripts
Integración de Add-ons

Tiempo de ida y vuelta usando PNP4Nagios
Mensajes a SMS o correo

Importante integrar Nagios con un sistema de
mensajes


Los problemas también ocurren fuera del horario de
trabajo
El sistema de envío a sms independiente de la
red

Utilizar un módem o un Servicio (sin costo)

Pueden utilizarse paquetes como sendpage o
qpage
Referencias



http://www.nagios.org: Sitio web de Nagios
http://sourceforge.net/projects/nagiosplug: Sitio web de los plugins de
Nagios
Nagios. System and Network Monitoring. Wolfgang Barth.
Libro sobre Nagios.
Muy completo.

http://www.nagiosexchange.org: Sitio web de plugins no-oficiales

http://www.debianhelp.co.uk/nagios.htm: Un Tutorial para Debian de Nagios

http://www.nagios.com/: Suporte Comercial para Nagios
Más Recuros
Pagína Principal de Nagios
http://www.nagios.org/
Nagios Plugins y Add-Ons Intercambio
http://www.nagiosexchange.com/
Dispositivos de Referencia
Nagios – Vista General (Tactical Overview)

Pantalla de Status Detail
Pantalla de Service Detail
Tipos de Servicios
Muestra de una Mapa de Estatus
Vista General de Estatus (Status Overview)
Vista Sumaria de Hostgroups
Historia o Tendencias de
Hosts
Histogram de un
Host
Event
Logs
Quien Recibe
Notificationes
Indice:
1. Que es Centreon
2. Instalación
3. Empezando
4. Usuarios y grupos
5. Hosts
6. Servicios
6.1 Ejemplo
7. Pros, contras y valoración personal.
¿Que es?
Herramienta que está destinado a la
administración y monitorización de redes y
dispositivos.
●
Centreon es front-end de Nagios, es decir una
herramienta que dota al usuario de una interfaz
más cómoda y con más servicios que Nagios.
●
●
●
Licencia GPL2
Página web: www.centreon.com
Instalación
Necesita una gran cantidad de programas
ajenos y bastantes utilidades.
●
Entre otras cosas hay que instalar: Un
compilador, un servidor web, PHP5, Servidor
de MySQL, Perl, Librerias, herramientas, etc.
●
Hay que instalar Nagios y ciertos plugins para
este. Etc.
●
Por suerte viene todo en
http://en.doc.centreon
●
Empezando
Para empezar a usar
centreon debemos
acceder desde un
navegador web a
localhost/centreon.
●
Debemos introducir el
nombre de usuario y
contraseña escogidos
durante la instalación
●
Empezando. Ventana de Inicio
Muestra el estado de los host y servicios.
●
Permite, haciendo clic sobre el aviso, ir
directamente a ver la incidencia.
●
●
Es una interfaz bastante comoda.
Empezando. Algunas opciones
Centreon y Nagios ya traen por defecto algunas
opciones, como por ejemplo:
●
-
Información de rendimiento
Gráficas de Nagios
- Información de los procesos
-
-
Mostrar el estado del servidor
Algunos ejemplos...
Usuarios
Esta es la pantalla donde podremos ver los
usuarios que hay creados en Centreon:
También podemos crear nuevos usuarios o
grupos y modificar algunos de sus datos.
Creación de un grupo
Creación de usuarios
En esta ventana deberemos introducir el
nombre del usuario, el nombre de usuario,
contraseña y escoger al grupo al que
pertenece:
Creación de usuarios
En esta parte hay que introducir que tipo de
notificaciones y con que periodicidad se
notifica al usuario acerca de host y servicios.
●
Grupos. ACL
Con las ACL podemos controlar a que podrán
acceder los usuarios. Estas ACL van por
grupos.
●
Host
Los host son los
dispositivos que
hay en la red y
que queremos
monitorizar desde
Centreon.
●
Hay que
introducirlos a
mano...
●
Añadir un host
●
Deben tener instaladas NSClient++
Añadir un host
En esta pestaña se da la opción de añadir el
host a algún grupo de estos o relacionarlos con
otros. Esto está destinado a los servicios
●
●
Lista de host ya configurada:
Se detecta el estado de un host (Up o down)
mediante el uso del ping
Servicios
Los servicios son las ordenes que damos para que
cada x tiempo se vayan haciendo comprobaciones
en los host escogidos.
●
Los servicios se pueden aplicar a un host o a un
grupo de estos
●
Complicados de aprender a usar, principalmente
porque se configuran mediante el uso de
comandos. Vamos a ver unos ejemplos:
●
Ejemplos de configuración de
Servicios
- Ver el espacio del disco C:
●
Importante: ¿De donde sale el comando?
La información del comando se obtiene mediante
los iconos de información. Los argumentos se
separan mediante !
●
En ese caso lo que se introduce '!C:!80!90!
$USER2$!1' significa lo siguiente:
●
-
80 → Porcentaje a partir del que se considera
peligroso
-
-
C: → Nombre del disco
90 → Porcentaje crítico
$USER2$ → Una variable que se define en otra
parte de Centreon que contiene el valor de la
comunidad
- 1 → Version de SNMP
●
Lo dicho:
Para finalizar la configuración del servicio hay
que escoger si queremos que pertenezca a
algún grupo o no, o si está relacionado con otro
host o no.
●
¡¡IMPORTANTE!!
SIEMPRE, tras realizar modificaciones hay
que reiniciar el servicio Nagios. Para ello
simplemente hay que ir a Configuración →
Nagios y hacer lo siguiente
●
Una vez ejecutado...
Pros
Herramienta que realmente es muy versátil
●
Gratuita en su mayor parte.
● Se le pueden añadir módulos
●
Saca más provecho a una aplicación tan
conocida como es Nagios.
●
Tiene una Wiki que para ciertos casos puede
sacar de un buen apuro
●
Contras
Poca documentación, que además gran parte
está en Francés.
●
●
Muchos módulos de pago
Muy complicado comparándolo con otras
aplicaciones (como PacketTRAP).
●
Y si el que lo utiliza es un novato como yo,
aun más jodido.
●
ÍNDICE
¿QUÉ ES?
¿QUIÉN LO USA?
VENTAJAS
¿CÓMO FUNCIONA?
LICENCIA Y
VERSIONES
¿QUÉ MONITORIZA?
FORMACIÓN
OFICIAL
¿QUÉ ES PANDORA FMS?
Pandora FMS es un software de monitorización de propósito general
¿QUÉ HACE?
¿DÓNDE FUNCIONA?
Sistemas y aplicaciones
Recoge datos de cualquier
sistema
Comunicaciones y redes
Genera alarmas
Procesos de negocio
Muestra gráficos, informes y
mapas de monitorización en
Experiencia de usuario en
navegación WEB
un entorno Web
Consumo energético,
temperatura, etc.
5
¿QUÉ ES PANDORA FMS?
Es un proyecto
OpenSource
liderado por
Ártica, empresa
española fundada
en 2005
6
Tiene una activa
comunidad de miles
de empresas y más
de 450.000
descargas*
Se utiliza en cinco
continentes en más
de 75 países
diferentes
* Fuente: Sourceforge.net, Marzo 2012
Grandes
corporaciones como
Telefónica eligen
Pandora para sustituir
otras herramientas
de monitorización
(BMC Patrol, HP OVO,
IMB Tivoli o NetlQ),
consiguiendo un
importante ahorro de
costes.
¿CÓMO FUNCIONA?
NOTIFICACIÓN
RECOLECCIÓN
• Con agente
• Sin agente
• Detección automática
CONSOLIDACIÓN
• Normalización de datos
• Histórico
• Gran capacidad
• Notificación al usuario
• Acciones correctivas
PRESENTACIÓN
• Informes, gráficos,
tendencias, mapas,
cuadros de mando...
• Consola de eventos
• Inventario
• Árboles de servicios
8
¿QUÉ MONITORIZA?
SISTEMAS OPERATIVOS
COMUNICACIONES / REDES
Linux, Solaris, AIX, HP/UX,
Windows, FreeBSD, OpenBSD,
NetBSD, MacOS...
Todos los fabricantes: Cisco,
Juniper, 3com, Teldat, Huawei, DLink.
VIRTUALIZACIÓN
BASES DE DATOS
Vmware, Xen
Oracle, DB2, SQL Server, Mysql…
APLICACIONES
PROTOCOLOS SOPORTADOS
SAP, Tomcat, Weblogic, IIS,
JBoss, Exchange, WebSphere,
Oracle, ERP...
SNMP, HTTP, LDAP, Ping, TCP,
WMI, RADIUS, DNS, consultas SQL…
SENSORES HARDWARE
EXPERIENCIA DE USUARIO WEB
Temperatura, humedad,
inundación, etc.
Latencias, chequeos de contenido,
login, procesos de compra.
9
VENTAJAS
Misma herramienta
para distintos
entornos y
tecnologías
Usuarios y clientes
que han aportado
experiencia y
madurez al
proyecto.
Capacidad para
ampliar funciones
bajo demanda.
Tco muy bajo
comparado con
otras soluciones
similares
10
Escalabilidad extrema.
(Miles de servidores)
Tiempo de
evaluación (time-tovalue) muy rápido
(opensource).
Gran número de
funcionalidades con
la mejor relación
coste-beneficio.
VENTAJAS
FRENTE A COMPETIDORES
FRENTE A COMPETIDORES
CLÁSICOS (HP, IBM, CA, Microsoft)
NUEVOS ( OpenCore, OpenSource)
Agentes más potentes y
multiplataforma
Mejor relación coste-beneficio
Mayor flexibilidad y capacidad
de integración
Número de funcionalidades
Mayor velocidad de puesta en
Soporte internacional
marcha
Gran comunidad de usuarios
11
LICENCIA Y VERSIONES
LICENCIA OPEN SOURCE
 Gratuita.
 Sin Soporte. Soportado por la comunidad.
 Funcionalidades reducidas para grandes
entornos.
LICENCIA ENTERPRISE
 Pago anual
 Licencia en base al número de dispositivos
monitorizados
 Soporte profesional, funcionalidades
Enterprise y actualizaciones certificadas.
12