miércoles, 24 de diciembre de 2008

Instalación NDOutils 1.4 para nagios 3.0.6

1) INTRODUCCION:

A) Propósito:

El addon NDOUTILS es para almacenar toda la configuracion y los eventos del nagios en una base de datos. Almacenando informacion de Nagios en la BD permitira recuperar datos rapidamente y ademas ayudara a procesar datos para servir a una interfaz web en PHP.

La BD MySQL y PostgreSQL esta soportado por el addon.

B) Vista de Diseño:

NDOutils fue diseñado para trabajar con usuarios que tienen:

- Instalacion simple de nagios
- Instalacion Multiple de nagios
- Instalacion Multiple, redundante y distribuida de nagios

Datos de cada proceso de nagios puede almacenar en la misma DB o en distintas DB.

Por lo tanto no soportado todavia, pero en un futuro nagios almacenara en distintas BD desde un mismo proceso.

--------------------------------------------------------------------------------------------------------


2) COMPONENTES


A) Vista:

Hay 4 componentes principales que inician las utilidades NDO:

1- NDOMOD Event Broker Module (Modulo de evento corredor)
2- LOG2NDO Utility
3- FILE2SOCK Utility
4- NDO2DB Daemon

Cada componente se describe con mas detalles en las siguientes paginas.


B) El NDOMOD Event Broker Module

Las utilidades NDO incluyen un Nagios Even Broker Module (NDOMOD.O) que exporta datos desde el demonio de nagios.

Asumiendo que nagios fue compilado con el Modulo Event Broker activado (esto es por default), usted puede configurar que nagios cargue el modulo NDOMOD en tiempo de ejecucion. Una vez que el modulo fue cargado por el daemon de nagios, este puede acceder a todos los datos y logicamente presente el el proceso de nagios que esta corriendo.

El modulo NDOMOD tiene designado exportar la configuracion, como informacion variada de eventos en tiempo de ejecucion que ocurre en el proceso de monitoreo, por el daemon de nagios. El modulo puede enviar esta informacion a un archivo estandar, a un Socket Unix de Dominio o un a socket TCP.

El NDOMOD escribe la info en un formato que el demonio NDO2DB puede entender.

Si el NDOMOD esta escrito para un archivo de salida, usted puede configurarlo para rotarlo periodicamente y/o procesarlo en otra maquina fisicamente (usando SSH, etc.) y envia este contenido al daemond NDO2DB usando la utilidad FILE2SOCK (que describiremos mas adelante).


C) La utilidad LOG2NDO

Esta es designada para permitir importar un historial de logs de nagios a una BD via el NDO2DB daemon (describiremos luego). La utilidad trabaja enviando archivos de logs historicos a un archivo estandar, un unix sock o un tcp sock en un formato que NDO2DB daemond entienda. El NDO2DB daemon puede luego usarlo para procesar la salida y almacenar en un archivo de log historico informandolo en una BD.


D) La utilidad FILE2SOCK

Esta utilidad es muy simple, solo lee de un archivo estandar (o STDIN) y escribe todo sobre un socket de dominio unix o un tcp socket. Estos datos son leidos y no son procesados por nada, antes de ser enviados al socket.


E) El demonio NDO2DB

La utilidad es diseñada para tomar los datos de salida de los componentes NDOMOD y LOG2NDO y almacenarlos en una BD MySQL o BD PostgreSQL.

Cuando este inicia, el daemon NDO2DB crea un socket y espera que los clientes se conecten. NDO2DB puede correr independientemente, bajo un demonio multiproceso o bajo inetd (si esta usando un socket TCP).

Multiples clientes pueden conectarse al daemon NDO2DB y transmitir simultaneamente.

El NDO2DB actualmente solo soporta databases MySQL, en un fururo soportara Postgre.


--------------------------------------------------------------------------------------------------------


4) INSTALACION


A) Prerrequicitos:

Para usar NDOUtils usted necesitara tener lo siguiente instalado y trabajando en su sitema:

- Nagios (ver abajo las versiones)
- MySQL


B) Versiones Compatibles:

Debera tener corriendo Nagios 2.0 (estable). NDOUtils no trabajara en la version de nagios beta 2.0. NDOUtils tambien trabaja bajo las actualizaciones de nagios 2.x y el corriente desembolvimiento de Nagios 3.


C) Obtener la nueva version:

Usted puede obtenerla de NDOUtls addon visitando el site de nagios:

http://www.nagios.org/download/


D) Descargamos el paquete:

Desempacar el tarball en tmp (version en mi caso ndoutils-1.4b7 para nagios 3.0.6):
Enlace de descarga:

#cd /tmp
#wget -c http://downloads.sourceforge.net/nagios/ndoutils-1.4b7.tar.gz


E) INSTALANDO

Usualmente no se encuentra el comando "make install", debe hacer la instalacion manualmente con un par de componentes, no se preocupe, no es complicado.

HAy dos versiones de ndomod.o NEB module y ndo2db daemon a compilar. Uno para Nagios 2.x y el otro para "Nagios 3.x" Cada especificacion de nagios para una version distinta:

Estos trabajan con Nagios 2.x:

ndomod-2.x.o
ndo2db-2x

Estos trabajan con Nagios 3.x:

ndomod-3x.o
ndo2db-3x

Hay otros dos binarios que vienen con NDOUtils que no son para una version especifica de nagios. Ellos son:
file2sock
log2ndo

Hay un orden para instalacion de los componetnes de NDOUtils en el sistema, usted debera copiar los binarios compilados dentro del directorio Nagios (usualmente en /usr/local/nagios/bin), hacer:

#apt-get install bzip2 mysql-server libmysqlclient15-dev phpmyadmin php5-gd gcc make libgd-dev php5-cli sudo php5-sqlite rrdtool
#tar xzvf ndoutils-1.4b7.tar.gz
#cd ndoutils-1.4b7
#./configure
#make
#mysql -u root -p (en blando o el pass agregado)
#create database nagios;
#quit
#cd db
#./installdb -u root -p "passDeMysql" -d nagios
#cd ..
#cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
#cp config/ndomod.cfg /usr/local/nagios/etc/
#vim /usr/local/nagios/etc/nagios.cfg

broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg (antes de event_broker_options=-1)
#cp src/ndo2db-3x /usr/local/nagios/sbin/ndo2db
#cp config/ndo2db.cfg /usr/local/nagios/etc/
#vim /usr/local/nagios/etc/ndo2db.cfg

db_user=root
db_pass=

#/etc/init.d/nagios start
#/usr/local/nagios/sbin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
--> Si reinicio el server tengo que volver a ejecutarlo.
Para que esto no ocurra lo deberia poner en automático --> Si me dice que el sock está en uso borro el socket:
#rm /usr/local/nagios/var/ndo.sock

11 comentarios:

fran_ortega dijo...

Hola,
Me parece muy interesante el articulo y me ha servido de mucho. La duda que tengo es como se tendria que configurar ndoutils para hacer una monitorización distribuida, es decir, tener un servidor con nagios en cada cliente y que todos escriban en una base de datos central.
Este es mi proyecto de final de carrera y estoy bastante perdido.
Gracias por adelantado.

Unknown dijo...

Enhorabuena por el artículo, es muy útil, a mí también me está viniendo muy bien :)

Fran, yo hace poco he empezado con Nagios por motivos de trabajo.

Lo que tú necesitas el el plugin NSCA, que permite que un Nagios envíe sus resultados a otro central y el central mediante NDO sería el que escribiese en la base de datos.

Busca pos distributed Nagios en algún buscador y encontrarás bastante información, no tengo por aquí ningún enlace de los que he usado, pero si necesitas ayuda escríbeme (joaquinllano@gmail.com)

¡Saludos!

KATERINE dijo...

Hola Hernan.

Aprovecho para escribirte pues tal vez tu me puedas ayudar con algo:

Tengo Suse Enterprise server 10 + Nagios + Nagvis + GLPI instalados y cuando abro el Nagvis via http, funciona 5 minutos bien y luego la pantalla se pone amarilla y me arroja el siguiente error:

NagiosDataNotUpDate: NDOMy: NDO data to old (Backend ndomy_1).

NDO claims that Nagios did no status update for more than "600" seconds.

Make sure that Nagios and ndo2db are running.


A que crees que se deba esto?

Gracias por tu atenciòn

Katerine
klunar@misena.edu.co

Anónimo dijo...

Hola: antes que nada gracias por la info.
Te quiero pedir una ayuda si es posible ya que seguí los paso y no puedo hacerlo funcionar.
Tengo el Nagios instalado y funcionando correctamente.
Siguiendo los pasos logro crear la base sin problemas pero en el log del nagios me arroja el siguiente error.

Nagios 2.11 starting... (PID=16840)
[1241027046] LOG VERSION: 2.0
[1241027046] ndomod: NDOMOD 1.4b7 (10-31-2007) Copyright (c) 2005-2007 Ethan Galstad (nagios@nagios.org)
[1241027046] ndomod: Could not open data sink! I'll keep trying, but some output may get lost...
[1241027046] Event broker module '/usr/lib/ndoutils/ndomod.o' initialized successfully.
[1241027046] Finished daemonizing... (New PID=16841)
[1241027062] ndomod: Still unable to connect to data sink. 0 items lost, 357 queued items to flush.

y no trae ningún dato a la base.

Podras aayudarme Gracias

MaxFlipy dijo...

Hola aqui os dejo el script que tengo para ubuntu de start y stop para poner en el init.d. y en el rcS.

#!/bin/bash
# Init Script for NPCD
# Las variables de entrono para ndoutil.
PREFIX=/usr/local/nagios
BIN=/usr/local/nagios/bin/ndo2db-3x
CONF=/usr/local/nagios/etc/ndo2db.cfg
PID=/var/run/ndo.pid

### Subrutina para obtenerl numero de proceso del ndo.


get_pid ()
{
PID_NUMBER=`head -n 1 $PID`
}


# Comienza los casos start y stop
case "$1" in
start)
if [ ! -f $PID ]
then
rm /usr/local/nagios/var/ndo.sock
$BIN -c $CONF
if [ $? -eq 0 ]
ndopid=`ps h -C ndo2db-3x -o pid`
touch $PID
echo "$ndopid" > $PID
then
echo "Ndoutil arrancado ok."
exit 0
else
echo "No pudo arrancar Ndoutil"
exit 1
fi
else
echo "PID File '$PID' exist. Ndoutil already started"
exit 0
fi
;;

stop)
if [ -f $PID ]
then
get_pid
kill -9 $PID_NUMBER
if [ $? -eq 0 ]
then
rm $PID
echo "Ndoutil Parado."
exit 0
else
echo "No pudo parar Ndoutil"
exit 1
fi
else
echo "Ndoutil no esta arrancado."
exit 0
fi
;;



esac


Espero que os sirva, un saludo.

MAROxx dijo...

Me estoy volviendo loco con el mensaje "Could not open data sink!"

¿Alguien puede indicarme cual puede ser el motivo para que no se copie nada en la BD?

Unknown dijo...

Tengo Ubuntu y me sale el mismo error "ndomod: Could not open data sink! I'll keep trying, but some output may get lost..." y ya he probado de todo. ¿alguien sabe a que es debido?

Odin Mojica dijo...

Hola, me ha servido la guia para poder realizar la instalación, pero a la hora de insertar config_file=/usr/local/nagios/etc/ndomod.cfg (antes de event_broker_options=-1) y realizar el nagios star me marca error al iniciar Nagios, comento esta linea config_file=/usr/local/nagios/etc/ndomod.cf y Nagios arranca sin problemas.

¿Cual sera el problema?

JorgeTorres dijo...

Buenas Tardes

Me pasa lo mismo que odin =(
Que puede ser o donde va esa linea

Oscar Iván dijo...

Primero que todo, muchas gracias por esta instalación, me hace quedar muy bien en el trabajo, y vamos a poder lograr muchas cosas.

Como segunda medida, Odin y Jorge torres, coloquenla despúes de event_broker_options=-1, eliminando o comentariando la que actualmente tienes que es más o menos así:
broker_module=/usr/lib/nagios/ndomod.o config_file=/etc/nagios/ndomod.cfg

Hernán Tirado dijo...

NRPE para ejecutar plugins remotos de Nagios: http://www.redes-seguridad.com.ar/2012/03/addon-nrpe-para-ejecutar-plugins-de.html