Instalación de Nagvis y su integración al sistema de Monitoreo Centreon 2.8 en Debian 8

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.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

3 comentarios


  1. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 58.0 Firefox 58.0 Ubuntu x64 Ubuntu x64
    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 !!

    • Firefox 58.0 Firefox 58.0 Windows 10 x64 Edition Windows 10 x64 Edition
      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

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*