jueves, 26 de mayo de 2011

Solucionar fallos con incoherencias en NDOutils.

Estoy registrada en el grupo de Nagios en Español y Popitron nos emnvío esta solución respecto a un problema que se podía dar si Nagios manejaba una cantidad muy alta de máquinas, en estos casos el NDOutils puede empezar a hacer cosas raras, os dejo la explicación:

" Cuando la base de datos esta cargada con una gran cantidad de
registros, el NDO comienza a tener un comportamiento erratico, y los datos reflejados no
son los correctos, por lo tanto cada cierto tiempo hay que purgar algunas tablas, ese tiempo sera dependiendo de la cantidad de objetos a monitorear.

Podemos crear un script que realize dicha tarea

#!/bin/bash
echo "TRUNCATE TABLE nagios_servicechecks" | /usr/bin/mysql -u root --
batch
--database=nagios
echo "TRUNCATE TABLE nagios_logentries" | /usr/bin/mysql -u root --
batch
--database=nagios
echo "TRUNCATE TABLE nagios_service_contactgroups" | /usr/bin/mysql -u
root --batch
--database=nagios
echo "TRUNCATE TABLE nagios_hostchecks" | /usr/bin/mysql -u root --
batch
--database=nagios


Para luego incluirlo en el crontab, por ejemplo si tenemos alrededor
de mas de 600 hosts y alrededor de 2000 servicios o mas, chequeando ambos en intervalos de entre 1 y 5 minutos, podemos establecer su ejecucion en 15 minutos.

0,15,30,45 * * * root /usr/local/nagios/sbin/truncar_db.sh "

Espero que os pueda servir de ayuda!!

Y gracias Popitron!!


PD: Como dicen en los comentarios, OJO! con usarlo en producción!! es un TRUNCATE por lo que elimina información, es decir, tendríais que estudiar si su uso os es viable.

Un saludo..

2 comentarios:

ajrob69 dijo...

Very usefull, thanks for this great article.

I can't wait for testing ny nagios server.

ajrob69 dijo...

Puestos a analizar debería de comentar que está solución borra los registros de las tablas seleccionadas, por lo que no es nada recomendable en una infraestructura en la que parte del trabajo está dedicada a realizar informes de datos que deberían de existir en la BBDD "nagios".