Nagios – Monitorizando nuestro Servicio de Negocio (2/3)
Parte 2! Vamos a seguir dándole forma a esto… Una vez más o menos tengas documentado en papel o Excel (o como prefieras) esta jerarquía de Servicios que vimos en la Parte 1 de nuestra Monitorización de Servicio de Negocio, procederemos pues con lo siguiente, que será la instalación del Plugin en Nagios, seguido de su configuración ya en Centreon para poder usarlo!
Nagios BP
Este será el plugin que utilizaremos para monitorizar los procesos de nuestro negocio, llamado Nagios BP o Nagios Business Process; combina los resultados individuales de los checkeos de Nagios a una agrupación mayor, llamada Procesos de Negocio.
Y a parte de lo que ya te estás imaginando, usaremos otro Add On llamado ‘Business Impact Analysis’ que nos permitirá analizar y evaluar ciertos riesgos y qué impacto tendrían en nuestro negocio. Respondiendo a… ¿Qué pasa sí…? ¿Qué pasa si apago este router? ¿Qué pasa si suelto este cable? ¿Qué pasa si marco un certificado como invalido? A qué afecta todo esto? Impresonante, pero lo veremos más adelante, vamos en orden!
Antes de instalar los addon de Nagios Business Process, deberemos cumplir con los requisitos de instalación, nos basaremos en que disponemos de un FAN versión 2.4 (el requisto es disponer la versión 2.2 mínimo); tras cumplir eso, deberemos instalar a continuación el MK Livestatus si no lo tenemos ya!
Ojo, puede que tengamos desactualizadas las Repos de nuestro Centos, en mi caso tengo una versión vieja, una 5.9, deberemos corregir los repositorios en el fichero de configuración en ‘/etc/yum.repos.d/CentOS-Base.repo’. Modificaremos las URLs que veamos mal, quitando la parte ‘/centreon’ de las URL. Ejemplo: http://vault.centos.org/centreon/5.11/… –> http://vault.centos.org/5.11/… y cuidado! Que necesitaremos el repositorio Epel en nuestro Centreon instalado para instalar ciertos paquetes, lo hacemos con:
[sourcecode]wget http://archives.fedoraproject.org/pub/archive/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -ivh epel-release-5-4.noarch.rpm
yum repolist[/sourcecode]
Y por cierto! Este documento esta basado en un FAN (Fully Automated Nagios), si por el contra, tú dispones de un CES 3.4 (Centreon Enterprise Server) y le instalaste NagVis siguiendo documentos anteriores, ya tendrás MK Livestatus instalado! Si no lo tienes instalado, puedes seguir en este documento los pasos ‘Instalar MK Livestatus‘ y ‘Config en Centreon‘. Por tanto los pasos que verás a continuación no te serán necesarios!
Y tras ello ya podremos comenzar la instalación de MK Livestatus con:
[sourcecode]yum install mk-livestatus[/sourcecode]
Añadimos un nuevo modulo en el broker para ello, debemos ir a “Configuration” > “Monitoring Engines” > “main.cfg” > “Nagios CFG 1” > “Data” > “Add a new broker module” e indicamos uno de los siguientes modulos:
[sourcecode]Para la version x86_64 –> /usr/lib64/mk-livestatus/livestatus.o /var/log/nagios/rw/live
Para la version i386 –> /usr/lib/mk-livestatus/livestatus.o /var/log/nagios/rw/live[/sourcecode]
Lo dicho, si en vez de Nagios con Centreon en un FAN disponemos directamente de Centreon CES 3.4, bastará con verificar que tenemos y si no es así, añadimos:
[sourcecode]/usr/lib64/centreon-engine/bin/livestatus.o /var/lib/centreon-engine/rw/live[/sourcecode]
Sin olvidar que tenemos que grabar & exportar la configuración y reiniciar el servicio de Nagios como ya conocemos!
Comenzamos con la instalación, descargamos perl-JSON y perl-CGI-Simple del Repo Epel que instalamos antes, descargamos a continuación los fuentes de Nagios BP, lo compliamos y lo instalamos de la siguiente manera:
[sourcecode]yum install –enablerepo=epel perl-JSON-XS perl-CGI-Simple
wget http://bp-addon.monitoringexchange.org/download/nagios-business-process-addon-0.9.6.tar.gz
tar xzf nagios-business-process-addon-0.9.6.tar.gz
cd nagios-business-process-addon-0.9.6
./configure –prefix=/usr/share/nagiosbp –sysconfdir=/etc/nagiosbp –with-nagetc=/etc/nagios/
make install[/sourcecode]
Continuamos reiniciando Apache y creando un fichero de configuración con:
[sourcecode]/etc/init.d/httpd restart
cd /etc/nagiosbp/
cp ndo.cfg-sample ndo.cfg[/sourcecode]
Editamos el fichero recién creado ‘/etc/nagiosbp/ndo.cfg’ y modificar las siguientes lineas:
[sourcecode]ndo=mk_livestatus
ndo_livestatus_socket=/var/log/nagios/rw/live[/sourcecode]
Y si tenemos CES, parámetro ndo_livestatus_socket sería diferente path, siendo:
[sourcecode]ndo_livestatus_socket=/var/lib/centreon-engine/rw/live[/sourcecode]
Probamos ya el backend si funciona correctamente con:
[sourcecode]/usr/share/nagiosbp/bin/nagios-bp-check-ndo-connection.pl[/sourcecode]
Nos mostrará el estado del backend y todo lo que va obteniendo de NDO, deberemos de ver todos los ítems que tenemos monitorizados ya en nuestra plataforma de Nagios o Centreon, así como su Status e información complementaria.
Ya que tenemos ya todo corriendo perfectamente, no queda ya nada! jeje, sólo trasladar ‘todo’ lo que hemos definido previamente en un papel o excel aquí!
Dentro del fichero /etc/nagiosbp/nagios-bp.conf irán definidos todos los Servicios de Negocio, los Servicios Operacionales y los Servicios de Infraestructura!
Deberemos tener cuidado y definirlos con el formato requerido, si nos fijamos bien, por cada Servicio son 2 lineas con sus condicionantes (AND u OR):
[sourcecode]ALIAS_SERVICIO = SERVIDOR;Servicio monitorizado 1 & SERVIDOR;Servicio monitorizado 2
display PRIORIDAD;ALIAS_SERVICIO;COMO LO VEMOS[/sourcecode]
Iremos comenzar escribiendo de arriba a abajo en el documento, empezaremos lo primero definiendo nuestros HOSTS y sus servicios para luego ya ir escalando a los Servicios de Infraestructura, a los Operacionales y finalmente a los de Negocio. Nos va a llevar un buen rato realizarlo, hay que intentar documentarlo lo más visual posible en el fichero ese ya que luego la lectura será más comprensiva para nosotros.
Siguiendo con el tema de este documento, os pongo una mínima parte de lo que hemos visto en cuanto a configuración en este fichero, pero que os valdrá para comprender la sintaxis a utilizar. Definiré 1 Servicio de Nagocio, una pequeña parte de él a modo ejemplo, que será el de SERVICIO ATENCION AL CLIENTE, que como vimos tenía varios Servicios Operacionales, definiré unicamente el SERVICIO DE CORREO que daba servicio al correo de la empresa, si? Y de todos sus Servicios de Infraestructuras sólo definiré el SERVICIO DIRECTORIO ACTIVO & SERVICIO DNS, eso sí, estos entero y con sus dependencias. Del mismo modo que configuro estos Servicios, habría que configurar todos los restantes, que depende del tamaño de nuestra empresa requerirá de mucho tiempo de pensado y correcciones. Al grano, quedaría así mi fichero de configuración ‘/etc/nagiosbp/nagios-bp.conf’:
[sourcecode]
##########################################################
######### SERVICIO BASICOS – DEFINICION DE HOSTS #########
##########################################################
# AQUI VAN TODOS LOS HOSTS QUE NECESITAREMOS MAS ADELANTE
SERVICIO_SRVDC01 = SRVDC01;CPU & SRVDC01;Memoria RAM & SRVDC01;Disco C & SRVDC01;Ping
display 0;SERVICIO_SRVDC01;SERVICIO SRVDC01
SERVICIO_SRVDC02 = SRVDC02;CPU & SRVDC02;Memoria RAM & SRVDC02;Disco C & SRVDC02;Ping
display 0;SERVICIO_SRVDC02;SERVICIO SRVDC02
# …etc, etc… definimos aquí todos los hosts que iremos necesitando más adelante…
##########################################################
############ SERVICIOS DE INFRAESTRUCTURAS ###############
##########################################################
########################################
###### SERVICIO DIRECTORIO ACTIVO ######
########################################
SERVICIO_AD_SRVDC01 = SERVICIO_SRVDC01 & SRVDC01;Estado Directorio Activo & SRVDC01;Servicios – Directorio Activo & SRVDC01;Puerto 389tcp – LDAP
display 4;SERVICIO_AD_SRVDC01;SERVICIO AD SRVDC01
SERVICIO_AD_SRVDC02 = SERVICIO_SRVDC02 & SRVDC02;Estado Directorio Activo & SRVDC02;Servicios – Directorio Activo & SRVDC02;Puerto 389tcp – LDAP
display 4;SERVICIO_AD_SRVDC02;SERVICIO AD SRVDC02
SERVICIO_DIRECTORIO_ACTIVO = SERVICIO_AD_SRVDC01 | SERVICIO_AD_SRVDC02
display 3;SERVICIO_DIRECTORIO_ACTIVO;SERVICIO DIRECTORIO ACTIVO
######################################
########## SERVICIO DNS ##############
######################################
SERVICIO_DNS_SRVDC01 = SERVICIO_SRVDC01 & SRVDC01;Checkeo DNS & SRVDC01;Servicios DNS
display 4;SERVICIO_DNS_SRVDC01;SERVICIO DNS SRVDC01
SERVICIO_DNS_SRVDC02 = SERVICIO_SRVDC02 & SRVDC02;Checkeo DNS & SRVDC02;Servicios DNS
display 4;SERVICIO_DNS_SRVDC02;SERVICIO DNS SRVDC02
SERVICIO_DNS = SERVICIO_DNS_SRVDC01 | SERVICIO_DNS_SRVDC02
display 3;SERVICIO_DNS;SERVICIO DNS
# …etc, etc… definimos aquí todos los Servicios de Infraestructura que iremos necesitando más adelante…
##########################################################
############## SERVICIOS OPERACIONALES ###################
##########################################################
SERVICIO_CORREO = SERVICIO_DIRECTORIO_ACTIVO & SERVICIO_DNS & SERVICIO_VIRTUALIZACION & SERVICIO_ECXCHANGE & SERVICIO_COMUNICACIONES_INTERNAS
display 2;SERVICIO_CORREO;SERVICIO CORREO
# …etc, etc… definimos aquí todos los Servicios Operacionales que iremos necesitando más adelante…
##########################################################
################ SERVICIOS DE NEGOCIO ####################
##########################################################
SERVICIO_ATENCION_AL_CLIENTE = SERVICIO_CORREO & SERVICIO_ERP & SERVICIO_CRM & SERVICIO_TELEFONIA & SERVICIO_INTERNET
display 1;SERVICIO_ATENCION_AL_CLIENTE;SERVICIO ATENCION AL CLIENTE[/sourcecode]
Y si todo ha ido bien y hemos tenido cuidado a la hora de crear el fichero con todas las definiciones, vamos a probar si es correcto lo que hemos ‘picado’. Abrimos un navegador contra http://IP_SERVIDOR_NAGIOS/nagiosbp o http://IP_SERVIDOR_NAGIOS/nagiosbp/cgi-bin/nagios-bp.cgi
Veremos lo que hemos ido configurando de forma visual, algo feo que ya mejoraremos, ya… Si os fijais en la configuración que he puesto, ordeno los Servicios por Prioridad, esto es opcional, eh, pero en Prioridad 1 puse los Servicios de Negocio, Prioridad 2 Para los Servicios Operacionales, Prioridad 3 para los Servicios de Infraestructura y luego ya es opcional poner más o bueno, cada uno como quiera.
Si vamos navegando pulsando en el icono del ARBOL, podremos ir viajando por nuestra configuración, bajando por las ramas descubriendo las dependencias como las hemos configurado, bien por ahora, no? 🙂 La idea es ir acabando el fichero de configuración para que esto no falle con UNKNOWN tras completar todo deberíamos tener todo perfectamente relacionado.
Que os parece este pantallazo? Sería el ejemplo que hemos trabajado, vemos todas las dependencias que tenemos y su relación!!!
Una cosilla, si queréis cambiar de idioma en la interfaz de Business Process al español, podréis bajar el pack de idiomas en español y copiarlo en el path de idiomas, cogerá automáticamente el idioma a usar desde tu navegador, y si queremos forzarlo, machacamos el i18n_en.txt y el i18n_de.txt que vienen por defecto. Bueno, los pasos serían:
[sourcecode]wget http://bp-addon.monitoringexchange.org/download/language_pack_es_0.9.6.tar.gz
tar zxfv language_pack_es_0.9.6.tar.gz
cp es/i18n_es.txt /usr/share/nagiosbp/share/lang/[/sourcecode]
Bien, cómo monitorizamos esto con Nagios y Centreon? Muy fácil! Ya casi no queda nada para que tengas tu negocio totalmente monitorizado! Si vamos a la shell, veremos que tenemos un plugin nuevo que nos permitirá verificar el estado de un Servicio de los que acabamos de crear, así de sencillo podríamos verificar que Nagios va a poder monitorizarlo:
[sourcecode]/usr/share/nagiosbp/libexec/check_bp_status.pl -b NOMBRE_DEL_SERVICIO[/sourcecode]
Ahora llevemos esto a Centreon, vamos a crear la monitorización de los Servicios de Negocio. Primero de todo, necesitamos crear un Host al que asociaremos todos estos servicios. Vamos a “Configuration” > “Hosts” > “Add…” y creamos uno que se llame por ejemplo SERVICIOS_DE_NEGOCIO inventandonos su dirección IP y asociandolo como siempre a la plantilla genérica que queramos; tendremos en cuenta en “Check Command” indicar que use “check_centreon_dummy” para que no falle este Host imaginario que nos servirá para organizarnos. “Save”,
Lo siguiente será crear el Comando que ejecutaremos cuando vayamos a checkear un Servicio, desde “Configuration” > “Commands” > “Add…” e indicamos lo siguiente:
- Command Name: Indicamos como habitualmente, el mismo nombre del script que ejecutará, con algo como ‘check_bp_status.pl’ lo asociaremos mejor cuando creemos los Servicios.
- Command Type: Seleccionamos ‘Check’.
- Command Line: Si nos basamos en lo que hemos ejecutado en la shell, crearemos su ejecución con el mismo formato, unicamente que le pasaremos el Argumento1 cuando creemos el Servicio. Algo como:
/usr/share/nagiosbp/libexec/check_bp_status.pl -b $ARG1$
- Argument Description: Será donde indiquemos qué es ARG1, y será pues el ALIAS del Servicio de Negocio u Operacional o de Infraestructura que hemos definido en el fichero de configuración ‘/etc/nagiosbp/nagios-bp.conf’.
Grabamos con “Save”,
Y nada! Ya sólo nos queda dar de alta en Centreon todos los Servicios de Negocio / Operacionales o de Infraestructura que tenemos! Vamos a “Configuration” > “Services” > “Add”, en este ejemplo vemos cómo crear el Servicio Directorio Activo. Indicamos:
- Description: Indicamos el nombre del Servicio que se monitoriza, por seguir sin mezclar, lo llamamos igual, en este caso SERVICIO DIRECTORIO ACTIVO.
- Service Template: As usual, esto depende de cada sitio de Nagios, puede que tengamos una plantilla padre con configuraciones preestablecidas tipo notificaciones…
- Check Command: Indicamos el Comando que acabamos e crear ‘check_bp_status.pl’.
- Args: Será lo dicho, los ALIAS que hemos definido en el fichero de configuración y contra lo que validaremos este Servicio.
No olvidemos en “Relations” asociarlo con el Host que acabamos de crear SERVICIO_DE_NEGOCIO, o quizás como sabemos es más rápido clonar Servicios que ir añadiendolos uno a uno estableciendo los parámetros.
Y zas!!! ya tenemos monitorizados con nuestro amado Nagios y Centreon lo que vienen siendo todos los Servicios en los que depende nuestro negocio!!! En un último documento iremos sacandole más jugo y enseñándote qué más podemos obtener, acaba de empezar la magia, ya verás!!!