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.
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0
Thank’s
Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0
Muy buen tutorial, solo quisiera saber como puedo insertar mapas de google? Es esto posible ? por que no me funcionan los mapas geograficos.
Saludos !!
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0
Luego pongo la integracióm de openstreetmap que es sencillo. Saludos