martes, 19 de marzo de 2013

Guía para instalar NDOUTILS

Publicado por Covent en 12:49 ,
Este procedimiento ha sido probado en RHEL 5/6 y en Fedora

1.- Instalamos algunos prerequisitos:
# yum install gcc gcc-c++ libdbi-dbd-mysql mysql mysql-devel mysql-server
Ojo, hay que configurar mysql. Eso significa que en algunos sistemas operativos como opensuse hay que habilitar el servicio en el runlevel; en el resto vale con arrancar el servicio y luego configurar con el script mysql_secure_intallation. Hay varias formas de configurar mysql, esta es una más.

2.- Creamos la base de datos que alojará todos los datos de Nagios:
# mysql -u root -p
mysql> create database nagios;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
++
| Database |
++
| information_schema |
| mysql |
| nagios |
| otrs |
| test |
++
5 rows in set (0.10 sec)

3.- Creamos el usuario y le damos privilegios sobre la base de datos:
mysql> GRANT ALL ON nagios.* TO ‘nagios’@'localhost’ IDENTIFIED BY “nagios”;
Query OK, 0 rows affected (0.03 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.04 sec)
mysql> quit

4.- Descargamos, descomprimimos y compilamos ndoutils:
# cd /root/
# wget http://downloads.sourceforge.net/project/nagios/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz
# tar xvzf ndoutils-1.4b9.tar.gz
# cd ndoutils-1.4b9
# ./configure
# make

En el caso que existieran errores revisar config.log
# cd /root/ndoutils-1.4b9/
# less config.log

5.- Copiar ndomod y ndo2db y asignar los permisos correspondientes:
# cp /root/ndoutils-1.4b9/src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
# cp /root/ndoutils-1.4b9/src/ndo2db-3x /usr/local/nagios/bin/ndo2db
# chmod 755 /usr/local/nagios/bin/ndo2db
# chmod 755 /usr/local/nagios/bin/ndomod.o

6.- Crear las tablas para la base de datos:
# cd /root/ndoutils-1.4b9/db/
# ./installdb -u nagios -p nagios -h localhost -d nagios

DBD::mysql::db do failed: Table ‘nagios.nagios_dbversion’ doesn’t exist at ./installdb line 51.
** Creating tables for version 1.4b9
Using mysql.sql for installation…
** Updating table nagios_dbversion
Done!

7.- Copiar archivos de configuracion y asignar los permisos correspondientes:
# cp /root/ndoutils-1.4b9/config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
# cp /root/ndoutils-1.4b9/config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
# chmod 775 /usr/local/nagios/etc/ndo*
# chown nagios:nagios /usr/local/nagios/etc/ndo*

8.- Editar nagios.cfg:
# vi /usr/local/nagios/etc/nagios.cfg

event_broker_options=-1
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg

9.- Editar ndo2db.cfg y ndomod.cfg:
# vi /usr/local/nagios/etc/ndo2db.cfg
socket_type=unix
#socket_type=tcp

socket_name=/usr/local/nagios/var/ndo.sock

db_user=nagios
db_pass=nagios

No debería ser necesario cambiar ndomod.cfg, estos son los valores correctos:
# vi /usr/local/nagios/etc/ndomod.cfg
instance_name=default
#output_type=tcpsocket
output_type=unixsocket
output=/usr/local/nagios/var/ndo.sock
tcp_port=5668
use_ssl=0
output_buffer_items=5000
buffer_file=/usr/local/nagios/var/ndomod.tmp
file_rotation_interval=14400
file_rotation_timeout=60
reconnect_interval=15
reconnect_warning_interval=15
data_processing_options=-1
config_output_options=2

10.- Iniciar ndo2db y reiniciar Nagios:
# /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg

# ps -ef | grep ndo2db
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# /etc/init.d/nagios restart
Para comprobar si todo funciona perfectamente
# tail -f /usr/local/nagios/var/nagios.log
Deberias encontrar un mensaje similar a "items flushed successfully", sino toca revisar los archivos de configuración.





Si esta informacin te ha sido de ayuda pincha en mis anuncios. Nos ayudamos mutuamente. Gracias

Back Top

12 comentarios:

  1. Hola! Veo que hace tiempo que se publicó el artículo no se si me podría ayudar, he realizado la instalación y no graba los datos en la BBDD MySQL.

    En el archivo nagios.log muestra los siguientes mensajes:

    [1404303344] ndomod: Successfully reconnected to data sink! 0 items lost, 96 queued items to flush.
    [1404303344] ndomod: Successfully flushed 96 queued items to data sink.
    [1404303344] ndomod: Error writing to data sink! Some output may get lost...
    [1404303344] ndomod: Please check remote ndo2db log, database connection or SSL Parameters

    Tengo instalado Nagios Core 3.2.3 en un PC y está funcionado de forma correcta.

    Gracias.

  2. Hola,

    Ese error es bastante típico. Verifica desde el paso 7 que todo esta correctamente.

    ¿Qué sistema operativo utilizas?
    ¿Ha arrancado bien el servicio mysql?

    Saludos

  3. Lo primero darte las gracias por el artículo y por contestar. Llevo un par de días desde que leí el artículo, he estado repasando los pasos y buscando la forma de solucionarlo pero se resiste.
    Tengo un PC con Windows XP y dentro de este una máquina virtual “VMWare Player” con SO Linux(Debian). Dentro de esta VM tengo Nagios Core 3.2.3 realizando distintas mediciones.
    Si ejecuto “uname –a” esto es lo que me devuelve:
    Linux lamp 2.6.32-5-686 #1 SMP Sun May 6 04:01:19 UTC 2012 i686 GNU/Linux

    El servicio mysql está corriendo lo he comprobado con el comando, service mysql status y me responde con las siguientes líneas:
    Server version 5.1.63-0+squeeze1
    Protocol version 10
    Connection Localhost via UNIX socket
    UNIX socket /var/run/mysqld/mysqld.sock
    Uptime: 6 days 3 hours 25 min 39 sec
    Threads: 1 Questions: 23709 Slow queries: 0 Opens: 2675 Flush tables: 1 Open tables: 64 Queries per second avg: 0.44.

    ps -ef | grep ndo2db, devuelve:
    nagios 14704 1 0 12:22 ? 00:00:00 /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
    root 18605 13688 0 15:30 pts/8 00:00:00 grep --color=auto ndo2db
    root 26652 8039 0 Jul01 ? 00:00:00 tail -f /usr/local/nagios/var/ndo2db.debug

    He comprobado:
    - que el servicio ndo2db está corriendo.
    - el usuario “nagios” y su pass “nagios” y puedo entrar en la BBDD creada.
    - las tablas están creadas y puedo hacer consultas.
    - los archivos nagios.cfg, ndo2db.cfg y ndomod.cfg
    - poder conectar por tcp modificando los archivos ndo2db.cfg y ndomod.cfg donde dice “socket_type” indicando “tcp”.
    - y algunas cosas más…

    No se si podrías orientarme por donde seguir.

  4. Por curiosidad, el archivo ndo.sock ¿que permisos tiene?

  5. ndo.sock se encuentra en la ruta, /usr/local/nagios/var y listamos el contenido aparece así:
    srwxrwxrwx 1 nagios nagios 0 Jul 2 12:22 ndo.sock
    -rwxrw-rw- 1 nagios nagios 0 Jun 27 12:01 ndo2db.debug
    Di todos los permisos a ndo.sock por ver si ese era el problema. Una cosa que me llama la atención es que el archivo está vacío. ¿Es normal que esté vacío?
    También habilité la opción para obtener información en el archivo ndo2db.debug y este también está vacío.

  6. Verificar los permisos de ndomod.o y ndo2db

  7. Creo que los permisos están correctos, se encuentran en la siguiente ruta
    /usr/local/nagios/bin/

    -rwxr-xr-x 1 nagios nagios 208579 Jul 2 12:12 ndo2db
    -rwxr-xr-x 1 nagios nagios 132685 Jul 2 12:11 ndomod.o


    ¿Quizás me falte algún paquete por instalar?(me refiero, a parte de los mencionados en la guía).

  8. yo tengo para los dos archivos al grupo con los mismos permisos de usuario...

    -rwxrwxr-x

    ¿tienes a root dentro del grupo nagios?

  9. No estaba incluido en el grupo de nagios, lo he incluido esta mañana y los errores son los mismos(he reiniciado apache2 y nagios).

    Por otro lado al ser Debian los paquetes que tengo instalados tienen otro nombre pero creo que cumplen la misma función de los que indicas en el punto 1.
    Tengo instalado: gcc, g++, libdbd-mysql-perl, mysql-common, mysql-server-5.1 y mysql-server-core-5.1.

  10. Verifica en el archivo de configuración ndo2db.cfg que todo corresponde con lo que tienes y que no hay ningún problema de permisos


    Se me están acabando las ideas de que puede estar fallandote

  11. Justo estoy repasando los archivos ndomod.cfg y ndo2db.cfg.

    Te agradezco mucho el tiempo que has empleado para ayudarme.

    Seguiré con ello y cuando tenga la solución la escribo en un comentario.

    Muchas gracias, saludos.

  12. Dolores de cabeza de este tipo son los que me motivaron a crear este blog, un sitio donde estén las soluciones a todas estas cosas de nuestro día a día.

    En lo que pueda te echaré una mano

Publicar un comentario