miércoles, 4 de mayo de 2011

Instalación del Addon NDOUTILS para Nagios sobre Ubuntu 9.04

    Este addon, lo que hace es ir guardando todos los datos de Nagios en una base de datos, para luego con otras aplicaciones poder explotar estos datos, como por ejemplo nagvis.

    La documentación oficial para la instalación se puede encontrar en este enlace:http://nagios.sourceforge.net/docs/ndoutils/NDOUtils.pdf , pero el problema es que en lo referente a la instalación, no es una documentación muy aclaratoria.

    Para instalar este addon debemos seguir los siguientes pasos (instalación para nagios sobre Ubuntu):

    • En la máquina donde tenemos instalado el servidor de nagios, copiamos el archivo comprimido de ndoutils, que se puede descargar aquí: http://www.nagios.org/download/addons.
    • Una vez tenemos el archivo lo copiamos a una carpeta (por ejemplo al home del usuario administrador), y lo descomprimimos con la orden: tar xzf ndoutils-1.4.tar.gz , cambiando ndoutils-1.4.tar.gz por el nombre del archivo que tengamos nosotros.
    • Ahora antes de nada tenemos que instalar los paquetes mysql-client y libmysqlclient16-dev, ya que son el cliente de mysql necesario para conectarnos a la base de datos, si, como es en mi caso, la máquina donde está el servidor de bases de datos es una máquina diferente del servidor de Nagios. Por otro lado el paquete libmysqlclient16-dev son las librerías de mysql necesarias para compilar el programa ndoutils. (se instalan con sudo apt-get install con el usuario administrador)
    • Ahora nos colocamos en el directorio donde hemos descomprimido ndoutils y ejecutamos: ./configure , lo que hace que configure el programa, una vez hecho esto y comprobando que no hay errores ejecutamos make, con lo que compilamos los programas en cuestión.
    • Dentro de la carpeta que hemos descomprimido, en el directorio src se han creado los archivos
      • ndomod-2x.o y ndo2db-2x <- Que funcionan para Nagios 2.x
      • ndomod-3x.o y ndo2db-3x <- Que funcionan para Nagios 3.x
      • Y también hay otros dos binarios los cuales sirven para cualquier versión: file2sock y log2ndo
    • Nosotros como tenemos versión Nagios 3.x escogemos ndomod-3x y ndo2db-3x, y junto con file2sock y log2ndo los copiamos todos en la carpeta bin de nagios (normalmente en /usr/local/nagios/bin/). con el comando
      • sudo cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/local/nagios/bin
    • Hay que ver que el propietario y el grupo de cada uno de los ficheros anteriores sea nagios, si no es así, habrá que ejecutar
      • sudo chown nagios:nagios /usr/local/nagios/bin/*
    • Después habrá que crear una base de datos en el servidor de bases de datos, daremos un nombre que queramos a la base de datos, por ejemplo "nagios", y creamos también un usuario con permisos de SELECT, INSERT, UPDATE, and DELETE para esa base de datos.
    • Ahora creamos las tablas necesarias para la base de datos, esto se puede hacer ejecutando un script (habrá que ejecutarlo con el usuario administrador de la base de datos) que está en el directorio /db dentro del directorio que hemos descomprimido. Habrá que ejecutar
      • ./installdb -u administrador -p contraseña -h ip servidor mysql o nombre -d base de datos (observar que no hay que crear la base de datos con el usuario creado anteriormente, sino con uno que tenga todos los permisos sobre la base de datos).
    • Editamos el fichero nagios.cfg, dentro del directorio config de la carpeta descomprimida y copiamos las líneas a nuestro fichero nagios.cfg (por ejemplo al final del fichero) que normalmente se encuentra en /usr/local/nagios/etc/, pero habrá que modificar las rutas que aparecen si la ruta no es esa, quedaría como pone en las siguientes líneas:

    # SAMPLE NAGIOS CONFIG SNIPPET FOR NDOMOD
    #
    # In order to have Nagios run the NDOMOD event broker module, you'll need
    # to place a statement like the one found below in your main Nagios
    # configuration file (nagios.cfg). Adjust the paths, etc. to suit your needs.

    # Uncomment the line below if you're running Nagios 2.x
    #broker_module=/usr/local/nagios/bin/ndomod-2x.o config_file=/usr/local/nagios/etc/ndomod.cfg

    # Uncomment the line below if you're running Nagios 3.x
    broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg

    • Copiamos los archivos de configuración al directorio de configuración de nagios que son ndomod.cfg-sample y ndo2db.cfg-sample, estos archivos de configuración para ndoutlis están en la carpeta /config de la carpeta descomprimida
      • cp ndomod.cfg-sample ndo2db.cfg-sample /usr/local/nagios/etc
      • les cambiamos el nombre por ndomod.cfg y ndo2db.cfg con el comando mv
      • nos aseguramos de que la propiedad y el grupo de estos dos ficheros es nagios, y que sus permisos son 775.
    • Ahora debemos modificar los ficheros ndomod.cfg y ndo2db.cfg para que se pueda conectar a la base de datos, así que habrá que modificar lo que sea oportuno en cada fichero, como es la base de datos, el host donde está, el usuario de la base de datos y la contraseña. Normalmente sólo habrá que cambiar en el fichero ndo2db.cfg la variable db_host, que será el host donde está el servidor mysql, o bien la ip o bien el nombre, la variable db_name, que es el nombre de la base de datos (nagios en nuestro caso), db_user que es el usuario que hemos creado y db_pass que es la password de este usuario, generalmente no hay que cambiar nada mas.
    • También habrá que asegurarse de que en el fichero usr/local/nagios/etc/nagios.cfg hay una línea que pone lo siguiente: event_broker_options=-1
    • Después iniciamos el demonio NDO2DB con el siguiente comando:
      • /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
    • También habrá que reiniciar nagios con
      • /etc/init.d/nagios reload o bien /etc/init.d/nagios restart

    EJECUTAR EL DEMONIO NDO2DB CUANDO INICIA EL SISTEMA

    Si dejamos todo como hasta ahora, el demonio NDO2DB se ejecutaría, pero cuando se reiniciase la máquina, no se reiniciaría el demonio NDO2DB, para que esto ocurra deberemos dar los siguientes pasos:

    • Dentro del directorio que descomprimimos hay un script que se llama daemon-init, copiamos este script con el siguiente comando:
      • sudo cp daemon-init /etc/init.d/ndo2db
    • Habrá que cambiar los permisos del script de manera que sea ejecutable, esto es con el comando:
      • sudo chmod 755 ndo2db
    • Una vez copiado el script (ya lo podremos ejecutar), ya podemos iniciar, parar, reiniciar, etc el demonio ejecuntando /etc/init.d ndo2db y con el modificador que queramos.
    • Para que se ejecute automaticamente cuando arrancamos la máquina hay que ejecutar el siguiente comando
      • sudo ln -s /etc/init.d/ndo2db /etc/rcS.d/S99ndo2db

    Quizá haya que hacer un cambio en una de las variables en el script, esto es, la línea donde dice:

    Ndo2dbBin=/usr/local/nagios/bin/ndo2db

    debería apuntar al ejecutable, esto es:

    Ndo2dbBin=/usr/local/nagios/bin/ndo2db-3x

    Espero que os sea util este pequeño manual.