Nagvis es una aplicación que nos permite crear de forma muy sencilla páginas web en nuestro servidor Nagios, con imágenes de fondo e iconos de Servicios o hosts del Nagios. Viene configurado por defecto para usar con Nagios, pero vamos a ver que mediante un conector especifico es compatible con Centreon.
Instalamos las dependencias necesarias
apt-get install php5-sqlite graphviz sqlite3 rsync -y
Descargamos Nagvis.
cd /usr/src
wget http://www.nagvis.org/share/nagvis-1.8.5.tar.gz
tar xzf nagvis-1.8.5.tar.gz
cd nagvis-1.8.5
Procederemos ahora a su instalación, tener en cuenta que no seleccionaremos ningún backend, ya que luego agregaremos el backend de centreon:
./install.sh
+--------------------------------------------------------------------------- | Welcome to NagVis Installer 1.8.5 +------------------------------------------------------------------------------ | 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]: y +------------------------------------------------------------------------------ | Starting installation of NagVis 1.8.5 +------------------------------------------------------------------------------ | OS : Debian GNU/Linux 8 | +--- Checking for tools ------------------------------------------------------- | Using packet manager /usr/bin/dpkg found | +--- Checking paths ----------------------------------------------------------- | Please enter the path to the nagios base directory [/usr/local/nagios]: /etc/centreon-engine/ | nagios path /etc/centreon-engine/ found | Please enter the path to NagVis base [/usr/local/nagvis]: /usr/share/nagvis | +--- Checking prerequisites --------------------------------------------------- | PHP 5.4 found | PHP Module: gd 5.3 found | PHP Module: mbstring compiled_in found | PHP Module: gettext compiled_in found | PHP Module: session compiled_in found | PHP Module: xml compiled_in found | PHP Module: pdo compiled_in found | Apache mod_php found | Checking Backends. (Available: mklivestatus,ndo2db,ido2db,merlinmy) | Do you want to use backend mklivestatus? [y]: n | Do you want to use backend ndo2db? [n]: n | Do you want to use backend ido2db? [n]: n | Do you want to use backend merlinmy? [n]: n | NO (valid) backend(s) specified MISSING | Graphviz 2.26 found | Graphviz Module dot 2.26.3 found | Graphviz Module neato 2.26.3 found | Graphviz Module twopi 2.26.3 found | Graphviz Module circo 2.26.3 found | Graphviz Module fdp 2.26.3 found | SQLite 3.7 found | +--- Trying to detect Apache settings ----------------------------------------- | Please enter the web path to NagVis [/nagvis]: | Please enter the name of the web-server user [www-data]: | Please enter the name of the web-server group [www-data]: | create Apache config file [y]: +--- Checking for existing NagVis --------------------------------------------- | +------------------------------------------------------------------------------ | Summary +------------------------------------------------------------------------------ | NagVis home will be: /usr/share/nagvis | Owner of NagVis files will be: www-data | Group of NagVis files will be: www-data | Path to Apache config dir is: /etc/apache2/conf.d | Apache config will be created: yes | | Installation mode: install | | Do you really want to continue? [y]: y +------------------------------------------------------------------------------ | Creating directory /usr/share/nagvis... done | Creating directory /usr/share/nagvis/var... done | Creating directory /usr/share/nagvis/var/tmpl/cache... done | Creating directory /usr/share/nagvis/var/tmpl/compile... done | Creating directory /usr/share/nagvis/share/var... done | Copying files to /usr/share/nagvis... done | Creating directory /usr/share/nagvis/etc/profiles... done | Creating main configuration file... done | Adding webserver group to file_group... done | Creating web configuration file... done | Setting permissions for web configuration file... done | | | +--- Setting permissions... --------------------------------------------------- | /usr/share/nagvis/etc/nagvis.ini.php-sample done | /usr/share/nagvis/etc done | /usr/share/nagvis/etc/maps done | /usr/share/nagvis/etc/maps/* done | /usr/share/nagvis/etc/geomap done | /usr/share/nagvis/etc/geomap/* done | /usr/share/nagvis/etc/profiles done | /usr/share/nagvis/share/userfiles/images/maps done | /usr/share/nagvis/share/userfiles/images/maps/* done | /usr/share/nagvis/share/userfiles/images/shapes done | /usr/share/nagvis/share/userfiles/images/shapes/* done | /usr/share/nagvis/var done | /usr/share/nagvis/var/* done | /usr/share/nagvis/var/tmpl done | /usr/share/nagvis/var/tmpl/cache done | /usr/share/nagvis/var/tmpl/compile done | /usr/share/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 /etc/centreon-engine -p /usr/share/nagvis -u www-data -g www-data -w /etc/apache2/conf.d -a y | | What to do next? | - Read the documentation | - Maybe you want to edit the main configuration file? | Its location is: /usr/share/nagvis/etc/nagvis.ini.php | - Configure NagVis via browser | | - Initial admin credentials: | Username: admin | Password: admin +------------------------------------------------------------------------------
Reiniciamos el servicio de apache.
service apache2 reload
Movemos la configuración del nagvis para apache para /etc/apache2/conf-available/.
mv /etc/apache2/nagvis.conf /etc/apache2/conf-available/
Teniendo en cuenta la configuración la agregamos a apache y reiniciamos el servicio de apache.
a2enconf nagvis.conf
service apache2 reload
Hasta aqui la instalación ya podemos acceder a la web de Nagvis http://ip_servidor/nagvis con las credenciales por defecto.
Seguidamente vamos a integrarlo al centreon previamente instalado en el artículo anterior.
Descargamos el backend desarrollado por centreon
cd /usr/src
git clone https://github.com/centreon/centreon-nagvis-backend.git
Copiar el archivo en el archivo de configuración Nagvis con los derechos apropiados
mv centreon-nagvis-backend/GlobalBackendcentreonbroker.php /usr/share/nagvis/share/server/core/classes/
chown www-data: /usr/share/nagvis/share/server/core/classes/GlobalBackendcentreonbroker.php
chmod 664 /usr/share/nagvis/share/server/core/classes/GlobalBackendcentreonbroker.php
Entramos a la web de centreon y seleccionamos Options/Manage Backend añadiendo el nuevo backend e introducimos los datos del backend.
Ponemos este backend por defecto en nuestro sistema.
Ahora nos queda establecer las url de los equipos, servicios, grupo de equipos y grupo de servicios para que se enlacen con la web de centreon. Vamos a Options/General Configuration/Objetcs defaults y modificamos los campos que mostramos a continuación
Queremos permanecer en la interfaz Centreon cuando se va a instalar el módulo Centreon-Nagvis (que más adelante describiremos), por lo que muestra la información en la misma página.
urltarget="_parent"
Enlace para los huéspedes dos soluciones:
1- La visualización solamente del equipo en detalle
hosturl="[htmlcgi]/main.php?p=20102&o=hd&host_name=[host_name]"
2- La visualización del equipo y sus servicios asociados
hosturl="[htmlcgi]/main.php?p=20201&o=svc&host_search=[host_name]&search=&poller=&hostgroup=&output_search="
Enlace a los servicios:
serviceurl="[htmlcgi]/main.php?p=20201&o=svcd&host_name=[host_name]&service_description=[service_description]"
Enlace a grupos de servicio existen dos variantes:
1- Detalles
servicegroupurl="[htmlcgi]/main.php?p=20212&o=svcOVSG"
2- Resumen
servicegroupurl="[htmlcgi]/main.php?p=20213&o=svcSumSG"
Enlace a grupos de equipos existen dos variantes:
1- Detalles
hostgroupurl="[htmlcgi]/main.php?p=20209&o=svcOVHG"
2- Resumen
hostgroupurl="[htmlcgi]/main.php?p=20210&o=svcSumHG"
Sientase libre de elegir la variante en cada uno de los casos que se adapte a sus necesidades.
Hasta aquí ya tenemos instalado y configurado Nagvis con el backend de centreon y ya pueden usarlo sin ningún tipo, empezar a dibujar su mapa agregando equipos y servicios.
Por ejemplo vamos a crear nuestro primer mapa. Options/Manage Maps
Y automáticamente caemos en el para empezar agregar objetos
Agreguemos el propio equipo servidor centreon a nuestro mapa. Edit Mapa/Add Icon/Equipo.
He aqui nuestro primer equipo dibujado en Nagvis. Tambien podemos agregar servicios, grupo de hosts, grupos de servicios, etc.
Si damos click encima del equipo podemos ver que nos remite a la web de centreon y veremos también los servicios.
A partir de ahora todo es opcional si lo desean lo pueden implementar y vamos a integrar la web de Nagvis dentro de la de Centreon y es a través de un módulo que brinda centreon.
Procederemos a descargar el módulo
cd /usr/src
wget https://s3-eu-west-1.amazonaws.com/centreon-download/public/Modules/centreon-nagvis/centreon-nagvis-1.1.1.tar.gz
tar xzf centreon-nagvis-1.1.1.tar.gz
Ahora lo movemos para /usr/share/centreon/www/modules/
mv centreon-nagvis-1.1.1/www/modules/centreon-nagvis /usr/share/centreon/www/modules/
Antes de instalar este modulo vamos a hacer algunas correcciones necesarias.
Modificamos el fichero install.sql en la diguiente ruta /usr/share/centreon/www/modules/centreon-nagvis/sql y lo modificamos para que quede de la siguiente forma.
-- Topology INSERT INTO `topology` (`topology_id`, `topology_name`, `topology_parent`, `topology_page`, `topology_order`, `topology_group`, `topology_url`, `topology_url_opt`, `topology_popup`, `topology_modules`, `topology_show`) VALUES ('', 'Nagvis', 4, 403, 20, 1, './modules/centreon-nagvis/index.php', NULL, '0', '1', '1'); -- Admin page INSERT INTO `topology` (`topology_id`, `topology_name`, `topology_parent`, `topology_page`, `topology_order`, `topology_group`, `topology_url`, `topology_url_opt`, `topology_popup`, `topology_modules`, `topology_show`) VALUES ('', 'Nagvis', 5, 513, 11, 1, './modules/centreon-nagvis/nagvis-config.php', NULL, '0', '1', '1'); INSERT INTO `topology` (`topology_id`, `topology_name`, `topology_parent`, `topology_page`, `topology_order`, `topology_group`, `topology_url`, `topology_url_opt`, `topology_popup`, `topology_modules`, `topology_show`) VALUES ('', 'Nagvis Configuration', 513, 51301, 20, 1, './modules/centreon-nagvis/nagvis-config.php', NULL, '0', '1', '1'); -- Insert options INSERT INTO `options` (`key`,`value`) VALUES ('centreon_nagvis_uri','/nagvis/frontend/nagvis-js/index.php'); INSERT INTO `options` (`key`,`value`) VALUES ('centreon_nagvis_path','/usr/local/nagvis/share/'); INSERT INTO `options` (`key`, `value`) VALUES ('centreon_nagvis_auth', 'single'); INSERT INTO `options` (`key`, `value`) VALUES ('centreon_nagvis_single_user', 'centreon_nagvis');
Otra de las correcciones es el problema de la obsolescencia de la función preg_replace (). Hay que cambiar el archivo Smarty_Compiler.class.php en /usr/share/centreon/GPL_LIB/Smarty/libs. Editar las líneas 265-270.
265 $source_content = preg_replace($search.'e', "'" 266 . $this->_quote_replace($this->left_delimiter) . 'php' 267 . "' . str_repeat(\"\n\", substr_count('\\0', \"\n\")) .'" 268 . $this->_quote_replace($this->right_delimiter) 269 . "'" 270 , $source_content);
por:
$source_content = preg_replace_callback($search, create_function('$m',"return '" . $this->_quote_replace($this->left_delimiter) . 'php' . "' . str_repeat(\"\n\", substr_count('\$m[1]', \"\n\")) .'" . $this->_quote_replace($this->right_delimiter) . "';") , $source_content);
Ahora procederemos a instalar el modulo centreon-nagvis por la interface web de centreon. Administration/Extentions
Dar click debajo de Actions para instalar el modulo.
Click en el boton Module Install
Y damos click en el boton Back. Veremos que ya en la administración esta el acceso a Nagvis. Administration/Nagvis para configurarlo.
Cambiamos el camino de Nagvis (Nagvis Path) a /usr/share/nagvis/share/ y el usuario podemos poner el propio admin.
Seguiremos haciendo correcciones ahora hay que cambiar los requisitos de autenticación para Centreon UI. Edite el archivo de /usr/local/nagvis/share/server/core/defines/global.php y remplacer la siguente linea.
// NagVis session name define('SESSION_NAME', 'nagvis_session');
por:
// NagVis session name
define(‘SESSION_NAME’, ‘PHPSESSID’);
Ahora debemos cambiar el nombre de las siguientes funciones Nagvis
get_error() debug() microtime_float()
por:
get_error_nagvis() debug_nagvis() microtime_float_nagvis()
Nos movemos a a la carpeta de Nagvis y allí procederemos con el comando sed a cambiar dichos nombres:
cd /usr/share/nagvis/
sed -i -e "s/get_error/get_error_nagvis/g" ./share/server/core/functions/html.php
sed -i -e "s/debug(/debug_nagvis(/g" ./share/server/core/ext/php-gettext-1.0.9/gettext.inc
sed -i -e "s/debug(/debug_nagvis(/g" ./share/server/core/classes/CoreAuthorisationHandler.php
sed -i -e "s/debug(/debug_nagvis(/g" ./share/server/core/classes/CoreSQLiteHandler.php
sed -i -e "s/debug(/debug_nagvis(/g" ./share/server/core/classes/GlobalLanguage.php
sed -i -e "s/debug(/debug_nagvis(/g" ./share/server/core/classes/CoreAuthHandler.php
sed -i -e "s/debug(/debug_nagvis(/g" ./share/server/core/classes/CoreMySQLHandler.php
sed -i -e "s/debug(/debug_nagvis(/g" ./share/server/core/functions/debug.php
sed -i -e "s/microtime_float(/microtime_float_nagis(/g" ./share/server/core/functions/debug.php
Seguidamente modificamos nagvis.ihtml modificar el archivo en la carpeta Centreon-NagVis. Este esta propio modulo centreon-nagvis. Hay que comentar unas lineas.
function resizeMap() { var height = jQuery('html').height(); jQuery('#map').height(0); /* Header */ height = height - jQuery('#header').height() - jQuery('#forMenuAjax').height(); /* Footer */ height = height - jQuery('#footer').height() - 10; height = height - jQuery('#contener').height(); jQuery('#map').height(height); }
a:
function resizeMap() { var height = jQuery('html').height(); jQuery('#map').height(0); /* Header */ height = height - jQuery('#header').height() - jQuery('#forMenuAjax').height(); /* Footer */ /* lineas a comentar / height = height - jQuery('#footer').height() - 10; height = height - jQuery('#contener').height();*/ jQuery('#map').height(height); }
Ahora ya veremos en nuestro centreon y el mapa1 que agregamos al inicio.
Acá les dejo un mapa de mi insfraestructura
Espero que les sirva de utilidad. En próximos artículos veremos las notificaciones de centreon en Telegram.
Me complace anunciar la creación de esta útil herramienta (SquidStats), para el análisis y monitoreo…
La inteligencia artificial está revolucionando las industrias al automatizar tareas, predecir patrones y permitiendo tomar…
Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…
Percona Monitoring and Management (PMM) es una herramienta de código abierto para la supervisión y…
Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…
Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…
View Comments
Thank's
Muy buen tutorial, solo quisiera saber como puedo insertar mapas de google? Es esto posible ? por que no me funcionan los mapas geograficos.
Saludos !!
Luego pongo la integracióm de openstreetmap que es sencillo. Saludos