Saludos, hoy quiero escribir una entrada, con una de estas soluciones que se llevan horas de troubleshooting, y desesperación en la red. Se trata de la instalación de NagVis sobre Centreon, que a priori y hasta que Centreon no saco el tema de los broker o multibroker, era sencillo y se configuraba por NDO en Nagvis, copiando los valores del propio Centreon.
¿Qué es MK Livestatus?
La forma clásica de acceder al estado actual de los Host y los Servicios es leyendo y parseando el fichero status.dat, que es creado por Nagios regularmente. El intervalo de actualización está configurado en la variable status_update_interval dentro de nagios.cfg. El valor más común es 10 segundos. Si nuestra instalación se vuelve grande, tendremos que introducir un valor de tiempo más alto para minimizar el impacto en la CPU y el IO de disco. La interfaz web de Nagios utiliza el fichero status.dat para mostrar los datos.
Parsear el fichero status.dat no es la manera popular que usan los desarrolladores de addons. Así que muchos otros usan NDO. Es un modulo NEB que carga directamente dentro de los procesos de Nagios y envía fuera todas las actualizaciones de estados vía Sockets de UNIX usando procesos helper. Estos procesos crean cadenas de SQL y actualizan varias tablas dentro de bases de datos MySQL o PostgreSQL. Este método tiene muchas ventajas frente a parsear el status.dat:
- La actualización es inmediata, no cada 10 o 20 segundos.
- Las aplicaciones tienen una manera sencilla de acceder vía SQL. No se necesita parear el fichero status.dat.
- En instalaciones grandes, los addons pueden recuperar datos mucho más rápido que leyendo el fichero status.dat.
Desafortunadamente, NDO también tiene ciertas desventajas:
- Su configuración es complicada.
- Necesita una base de datos, que suele llenar muy rápido.
- Se come una parte muy importante de nuestros recursos de CPU.
- Las tareas de mantenimiento diarias en la base de datos pueden afectar a nuestro Nagios durante minutos u horas, cada día.
- El compilador GNU C++ (empaquetado como g++ en Debian)
- La utilidad make (empaquetada como make)
- Los ficheros de desarrollo libc (libc6-dev)
- Los ficheros de desarrollo para la librería estandar C++ (libstdc++6-dev)
- Esto se instala con
root@linux# yum install gcc-c++
Una vez tenemos los pre-requisitos, lanzamos la instalación de la siguiente manera:
root@linux# wget 'http://www.mathias-kettner.de/download/mk-livestatus-1.1.6p1.tar.gz' root@linux# tar xzf mk-livestatus-1.1.6p1.tar.gz root@linux# cd mk-livestatus-1.1.6p1
Lanzaremos ahora:
root@linux# ./configure
Y veremos si nos falta alguna libreria o paquete, si no falta nada la instalación terminará así:
configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands
Y para concluir lanzaremos un make que nos instalará todo.
Copiaremos el fichero de mk-livestatus a la raíz de Centreon con el siguiente comando:
mkdir /usr/lib64/centreon-engine/bin/
cp /tmp/mk-livestatus-1.1.6p1/src/livestatus.o /usr/lib64/centreon-engine/bin/
Añadir MK Livestatus en Centreon
En nuestro Centreon tenemos que añadir el broker nuevo de la siguiente manera:

Pulsaremos Add a new broker module e introduciremos lo siguiente:
/usr/lib64/centreon-engine/bin/livestatus.o /var/lib/centreon-engine/rw/live <-- Esta ruta puede variar según vuestra instalación
Y posteriormente reiniciaremos los servicios de Centreon como de costumbre:
Instalación de Nagvis
Descargamos la última Release de su página web oficial, http://www.nagvis.org/downloads y lanzamos los siguientes comandos:
tar nagvis-1.7.10.tar.gz cd tar nagvis-1.7.10 ./install.sh
Donde veremos lo siguiente:
[root@madmonctn01 nagvis-1.7.10]# ./install.sh +------------------------------------------------------------------------------+ | Welcome to NagVis Installer 1.7.10 | +------------------------------------------------------------------------------+ | This script is built to facilitate the NagVis installation and update | | procedure for you. The installer has been tested on the following systems: | | - Debian, since Etch (4.0) | | - Ubuntu, since Hardy (8.04) | | - SuSE Linux Enterprise Server 10 and 11 | | | | Similar distributions to the ones mentioned above should work as well. | | That (hopefully) includes RedHat, Fedora, CentOS, OpenSuSE | | | | If you experience any problems using these or other distributions, please | | report that to the NagVis team. | +------------------------------------------------------------------------------+ | Do you want to proceed? [y]: +------------------------------------------------------------------------------+ | Starting installation of NagVis 1.7.10 | +------------------------------------------------------------------------------+ | OS : Centreon Enterprise Server | | | +--- Checking for tools -------------------------------------------------------+ | Using packet manager /bin/rpm found | | | +--- Checking paths -----------------------------------------------------------+ | Please enter the path to the nagios base directory [/usr/local/nagios]: /usr/lib64/nagios | nagios path /usr/lib64/nagios found | | Please enter the path to NagVis base [/usr/local/nagvis]: | | +--- Checking prerequisites ---------------------------------------------------+ | PHP 5.1 found | | PHP Module: gd php found | | PHP Module: mbstring php found | | PHP Module: gettext compiled_in found | | PHP Module: session compiled_in found | | PHP Module: xml php found | | PHP Module: pdo php found | | Apache mod_php found | | Checking Backends. (Available: mklivestatus,ndo2db,ido2db,merlinmy) | | Do you want to use backend mklivestatus? [y]: | Do you want to use backend ndo2db? [n]: | Do you want to use backend ido2db? [n]: | Do you want to use backend merlinmy? [n]: | Livestatus Socket (/usr/lib64/nagios/var/rw/live) MISSING | | Valid socket formats are: tcp:127.0.0.1:7668 or unix:/path/to/live | | Please enter your MKLivestatus socket: unix:/var/lib/centreon-engine/rw/liveIntroducir nuestra ruta | PHP Module: sockets compiled_in found | | Graphviz 2.12 found | | Error: Version >= 2.14 needed | Graphviz Module dot 2.12 found | | Error: Version >= 2.14 needed | Graphviz Module neato 2.12 found | | Error: Version >= 2.14 needed | Graphviz Module twopi 2.12 found | | Error: Version >= 2.14 needed | Graphviz Module circo 2.12 found | | Error: Version >= 2.14 needed | Graphviz Module fdp 2.12 found | | Error: Version >= 2.14 needed | SQLite 3.3 found | | | +--- Trying to detect Apache settings -----------------------------------------+ | Please enter the web path to NagVis [/nagvis]: | Please enter the name of the web-server user [apache]: | Please enter the name of the web-server group [apache]: | create Apache config file [y]: | | +--- Checking for existing NagVis ---------------------------------------------+ | NagVis 1.7.10 found | | Do you want the installer to update your config files when possible? [y]: | Remove backup directory after successful installation? [n]: y | | +------------------------------------------------------------------------------+ | Summary | +------------------------------------------------------------------------------+ | NagVis home will be: /usr/local/nagvis | | Owner of NagVis files will be: apache | | Group of NagVis files will be: apache | | Path to Apache config dir is: /etc/httpd/conf.d | | Apache config will be created: yes | | | | | | | | Do you really want to continue? [y]: +------------------------------------------------------------------------------+ | Starting installation | +------------------------------------------------------------------------------+ | Moving old NagVis to /usr/local/nagvis.old-2014-02-11_21:57:52.. done | | Creating directory /usr/local/nagvis... done | | Creating directory /usr/local/nagvis/var... done | | Creating directory /usr/local/nagvis/var/tmpl/cache... done | | Creating directory /usr/local/nagvis/var/tmpl/compile... done | | Creating directory /usr/local/nagvis/share/var... done | | Copying files to /usr/local/nagvis... done | | Creating directory /usr/local/nagvis/etc/profiles... done | | Creating main configuration file... done | | Adding MKLivestatus Backend... done | | Adding webserver group to file_group... done | | *** /etc/httpd/conf.d/nagvis.conf will NOT be overwritten ! | | *** creating /etc/httpd/conf.d/nagvis.conf.2014-02-11_21:57:52 instead (comm | | Creating web configuration file... done | | Setting permissions for web configuration file... done | | | | Restoring main configuration file(s)... done | | Restoring custom map configuration files... done | | Restoring custom geomap source files... done | | Restoring user configuration files... done | | Restoring conf.d/ configuration files... done | | Restoring custom map images... done | | Restoring custom gadget images... done | | Restoring custom iconsets... done | | Restoring custom shapes... done | | Restoring custom templates... done | | Restoring custom template images... done | | Restoring custom gadgets... done | | Restoring custom scripts... done | | Restoring auth database file... done | | Restoring custom stylesheets... done | | | +------------------------------------------------------------------------------+ | Handling changed/removed options | +------------------------------------------------------------------------------+ | Removing allowedforconfig option from main config... done | | Removing autoupdatefreq option from main config... done | | Removing htmlwuijs option from main config... done | | Removing wuijs option from main config... done | | Removing showautomaps option from main config... done | | Removing usegdlibs option from main config... done | | Removing displayheader option from main config... done | | Removing hovertimeout option from main config... done | | Removing allowed_for_config option from map configs... done | | Removing allowed_user from map configs... done | | Removing hover_timeout from map configs... done | | Removing usegdlibs from map configs... done | +------------------------------------------------------------------------------+ | HINT: Please check the changelog or the documentation for changes which | | affect your configuration files | | | +--- Setting permissions... ---------------------------------------------------+ | /usr/local/nagvis/etc/nagvis.ini.php-sample done | | /usr/local/nagvis/etc done | | /usr/local/nagvis/etc/maps done | | /usr/local/nagvis/etc/maps/* done | | /usr/local/nagvis/etc/geomap done | | /usr/local/nagvis/etc/geomap/* done | | /usr/local/nagvis/etc/profiles done | | /usr/local/nagvis/etc/profiles/* done | | /usr/local/nagvis/share/userfiles/images/maps done | | /usr/local/nagvis/share/userfiles/images/maps/* done | | /usr/local/nagvis/share/userfiles/images/shapes done | | /usr/local/nagvis/share/userfiles/images/shapes/* done | | /usr/local/nagvis/var done | | /usr/local/nagvis/var/* done | | /usr/local/nagvis/var/tmpl done | | /usr/local/nagvis/var/tmpl/cache done | | /usr/local/nagvis/var/tmpl/compile done | | /usr/local/nagvis/share/var done | | | +------------------------------------------------------------------------------+ | Installation complete | | | | You can safely remove this source directory. | | | | For later update/upgrade you may use this command to have a faster update: | | ./install.sh -n /usr/lib64/nagios -p /usr/local/nagvis -l "unix:/var/lib/centreon-engine/rw/live" -b mklivestatus -u apache -g apache -w /etc/httpd/conf.d -a y | | | What to do next? | | - Read the documentation | | - Maybe you want to edit the main configuration file? | | Its location is: /usr/local/nagvis/etc/nagvis.ini.php | | - Configure NagVis via browser | | <http://localhost/nagvis/config.php> | | - Initial admin credentials: | | Username: admin | | Password: admin | +------------------------------------------------------------------------------+
Una vez ha terminado reiniciamos apache:
/etc/init.d/httpd restart
Y nos vamos a nuestra IP de nuestro server, donde nos mostrará la siguiente ventana de Login, credenciales admin/admin:
Veremos unos mapas realmente interesantes de ejemplos:
He creado uno llamado as, vamos a movernos dentro para ver como funciona y comprobar que todo funciona:
En caso de que no nos saliera correctamente nuestros Host y servicios, iremos a Options > Manage Backends y editaremos el llamado live_1 de tal manera que os quede así:
Y con esto ya estaremos listos para añadir nuestros mapas, servicios, Host, etc, pero esto, es otra entrada en el futuro.
Un saludo y muchas gracias por la lectura.





Felicidades!! Te costó, pero lo has vuelto a hacer. Gz
Muhas gracias, sí, costó, ahí quedan los pasos para que el siguiente tarde menos 🙂 Un saludo !
Te entiendo, he tenido mi larga pelea para hacer funcionar el mklifestatus y de momento va…
tengo el core de nagios 4.0.8 y centreon 2.2.2, no puedo actualizar centreon por que deja de graficar, algo funciona mal con pnp4nagios, cada vez que toco algo, cae otra cosa en mi debian lenny 5.0…
Sin embargo ya tengo corriendo correctamente NagVIs y funcionando el broker lifestatus… para mi es un gran paso que me abre nuevas posibilidades de monitorización gráfica.