Gestion Online:NagVisExtension
Article publised about this extension Telemedicine: Using wikis for monitoring systems |
NagVis is an extension for add NagVis maps to MediaWiki pages. Icons map will be updated automatically and status will be pull from Nagios/Icinga/NagVis servers.
NagVis is a visualization addon for the well known network management systems Nagios and Icinga.
Contenido
- 1 Introduction
- 2 Check usage
- 3 Installation
- 4 Usage
- 5 Notes about authentication
- 6 Screenshots (Examples)
- 7 Credits
- 8 Versions
Introduction
Usually people monitor a lot of host/services, system administrators spend a lot of time solving trivial problems and a lot alarms/warning can be solved by end user.
If we join a wiki (Mediawiki) for documentation and Icinga/Nagios/NagVis for monitoring, we obtain a powerful tool. System administrator can create instructions, Icinga/Nagios/NagVis reports status and end user can adapt instructions to their needs.
Check usage
Installation
- Download the extension (tgz) or (zip).
- Upload NagVis directory to your extensions directory from the root of your MediaWiki installation.
- Add
require_once "$IP/extensions/NagVis/NagVis.php";
to your LocalSettings.php file (near the end). - Done
Usage
To insert a NagVis map add the tag on any page (only one tag per wiki page):
<NagVis showheader=(yes/no) urlnagvis=nagvis_server urlmonitor=(nagios/icinga)_server map=map_name > Header map title </NagVis>
Tag attributes
The following arguments (tag attributes) can be used to control <NagVis> tags:
- showheader (yes/no)
- Show header with time to refesh map, links to NagVis map and Nagios/Icinga server.
- urlnagvis
- NagVis url (Extension will check if it's a correct NagVis site)
- urlmonitor
- Nagios/Icinga url (Mandatory from NagVis 1.6)
- map
- Map name in NagVis
- mapBackground
- NagVis map background (if map name and map background are different, see example)
- nagvispath
- Web path to NagVis
- cgibinpath
- cgi-bin path (Param htmlcgi in nagvis.ini.php)
- system
- Icon for monitoring system. (Values: nagios/icinga and default value is icinga) (optional)
Example
<NagVis map=WikiMap mapbackground=WikiBackgrund.jpg urlnagvis=http://your_server/nagvis/frontend/nagvis-js/index.php urlmonitor=http://your_server/icinga2-classicui showheader=yes nagvispath=/nagvis cgibinpath=/cgi-bin/icinga2-classicui system=icinga> Title map (NagVis with Mediawiki) </NagVis>
Notes about authentication
* Important: Before making changes you must read Apache, Nagios, Icinga and NagVis about security risks and recomendations.
MediaWiki must be able to pull status without user authentication so you must change your webserver setup. There are several solutions and your configuration could be different depending on your security needs.
Configuration: example for connecting NagVis without password
- Create a NagVis user with role Users (read only)
- Add user to nagvis.conf (in Debian/Ubuntu is located on /etc/apache/conf.d) SetEnv REMOTE_USER user
... </IfModule> </Directory> SetEnv REMOTE_USER user
Configuration: example for connecting Nagios/Icinga with guest user and password
1. Create guest user for Icinga (Debian/Ubuntu)
Add guest user:
htpasswd /usr/local/icinga/etc/htpasswd.users guest
Enable guest user for Nagios at /usr/local/icinga/etc/cgi.cfg, uncomment following:
default_user_name=guest
add guest in followings lines:
authorized_for_all_services=icingaadmin,guest authorized_for_all_hosts=icingaadmin,guest
Restart icinga:
/etc/init.d/icinga restart
2. Create guest user for icinga2-classicui (Debian/Ubuntu)
Add guest user:
htpasswd /etc/icinga2-classicui/htpasswd.users guest
Add guest in /etc/icinga2-classicui/cgi.cfg:
authorized_for_all_services=icingaadmin,guest authorized_for_all_hosts=icingaadmin,guest
3. Create guest user for Nagios (Debian/Ubuntu)
Add guest user:
htpasswd /usr/local/nagios/etc/htpasswd.users guest
Enable guest user for Nagios at /usr/local/nagios/etc/cgi.cfg, uncomment following:
default_user_name=guest
add guest in followings lines:
authorized_for_all_services=nagiosadmin,guest authorized_for_all_hosts=nagiosadmin,guest
Restart nagios:
/etc/init.d/nagios restart
Configuration: example for connecting Nagios/Icinga without password
Modify nagios.conf or icinga.conf for apache (ex: Debians servers: /etc/apache2/conf.d/nagios.conf) in all your Nagios/Icinga servers:
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> Options ExecCGI AllowOverride All Order allow,deny AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user Allow from MediaWiki_Server_IP, Authorized_Users_IP SetEnv REMOTE_USER guest Satisfy Any </Directory> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> Options None AllowOverride All Order allow,deny AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user Allow from MediaWiki_Server_IP, Authorized_Users_IP SetEnv REMOTE_USER guest Satisfy Any </Directory>
Allow From:
- MediaWiki_Server_IP
- IP address of your MediaWiki Server
- Authorized_Users_IP
- IP address of users who connect to Nagios/Icinga without password
IP's not included in Allow from should introduce an authorized (Nagios/Icinga) user for pages with NagVis Tag
Screenshots (Examples)
- NagVis tag with argument showheader=yes:
- NagVis tag with argument showheader=no
- When you move the mouse over icons in the maps you get data from Nagios/Icinga/NagVis server:
Credits
This extension uses the following software:
- PHP Simple HTML DOM Parser at http://simplehtmldom.sourceforge.net/
and works with:
- Nagvis http://nagvis.org
- Icinga https://www.icinga.org/
- Nagios https://www.nagios.org/
Versions
1.08:
- Updated to:
- NagVis: 1.7 and 1.8 branches
- Tested on:
- Mediawiki: 1.24.1
1.06:
- Updated to:
- NagVis: 1.6 branch
- Tested on:
- Mediawiki: 1.18
1.04:
- Updated to:
- NagVis: 1.4 branch
- Tested on:
- Mediawiki: 1.14
1.02:
- Updated to:
- NagVis: 1.3 branch
1.0:
- Tested on:
- Mediawiki: 1.7 and 1.13
- NagVis: 1.3rc3