NagVis is a visualization addon for the Open Source Network Monitoring solution Nagios.
NagVis is meant to visualize Nagios status information, e.g. to display the status of IT processes, network infrastructures or other complex environments. Using NagVis complex environments can easily be visualized to make the dependencies of the single components and the results of a problems state more intuitive.
History of NagVis
The NagVis project was started in the year 2004. The first announcement was release 0.0.2 in German Nagios Portal on April 30th 2004 by pitchfork (aka Jörg Linge) (Thread). The NagVis project was created on 2005-02-21 at Sourceforge.net.
At first NagVis was written as simple cgi script called nagvis.cgi. The informations were gathered from the Nagios status.dat. NagVis could only show the status of hosts and services. The cgi was released in NagVis 0.0.2 and 0.0.3.
Michael Lübben rewrote NagVis 0.0.3 in PHP and added support for host- and servicegroups. This resulted in NagVis 0.1.0.
Andreas Husch added some features like the map rotation and a parser for the CGIs of Nagios to get more informations about the host- and servicegroups in Nagios. The parser was called HTML backend later. Andreas Husch registered the NagVis Domain www.nagvis.org on 2005-02-26.
The cgi parser had some performance problems on big maps. After the release of the NDO-utils Andreas Husch wrote a backend for the NDO based on MySQL. The backend was called NDOMy backend. NagVis was the first addon which used the data from NDO and is the main reason for using the NDO today.
Guillaume Rozane introduced the WUI to NagVis. The WUI is the web based configuration interface for managing the NagVis map configuration files.
I joined the NagVis team after the second German Nagios Workshop which happened in Erlangen on 2006-03-03 (NagVis Version around 0.9). Until this event I was a "normal" user NagVis. The team was searching for some active developers at the workshop. The project sounded very interesting to me.
And the main reason for me to join the project: They rejected some feature request of mine. Having that situation I had two options: Discuss with the project team to realize or add my requests and patches or infiltrate the project to add the things myself. So I did it the easy way: Infiltrate ! (Just kidding…)
After some weeks as developer in the NagVis project I emerged to the leading developer in the NagVis team. This resulted mainly from the inactivity of the other project members. In this timerange we release the final version of NagVis 0.9 on 2006-10-14. There was a relaunch of the NagVis homepage. Additionally there were added a consequent release system, coding guidelines and detailed changelogs in these versions.
So NagVis grew up…
Cause we are all coders and not very handy with designing logos or complete webpage designs we used free templates for Drupal and Dokuwiki which were the platforms for our webpages. These designs did not look very well.
Some day I found a new logo on the page of PNP4Nagios. Pitchfork told me that Karolina Kalisz from Netways created this new logo. So I asked Karolina for a new logo for NagVis. After some days Karolina sent us several previews of Logos. All of those were very beautiful. We searched for a nice template for our CMS to integrate the new logo in the webpage. So we released a new homepage for the NagVis project on 2008-05-21. We changed the design of NagVis in version 1.3 release candidates to add the new banner.
The NagVis documentation was integrated in the NagVis homepage since years. This is problematic when we decided to change the cms from wiki format to plain HTML.The translation of the documentation was not easy cause the docs were not under version controll. A translator could not really follow the changes of the English documentation. So we recoded the documentation to standalone HTML files and added them to subversion. From this time we had an up-to-date german translation of all the documentation files. Thanks to Wolfgang Nieder for translating and fixing all my typos . The new documentation was released on 2008-07-30. Since then we include the documentation in every release of NagVis.
On 2008-09-13 NagVis got the logo “NagiosPowered” at the Nagios Conference 2008 in Germany. NagVis is the second AddOn for Nagios, which was awarded this logo. (The first one was PNP4Nagios. Keep up the great work Jörg!). You can find some informations about this brand on the Nagios Enterprises page.
And the story will continue…
NagVis release / feature history
You can read about all changes in the Changelogs in the documentation archive on NagVis.org and Sourceforge tickets since first test release of NagVis 1.0. But I guess it’s important to write a bit about the major features of the single NagVis releases.
At first I like to attach a little graph for the line-of-code history. I created a post in german some time ago which describes how I created these graphs.
We started of a parallel development of NagVis 0.9 and 1.0 as 0.9 was in beta state. The most of the changes in version 1.0 were made of my hands. We did a lot of changes since version 0.9x to bring NagVis up to version 1.0:
- Recoded NagVis to (nearly) OOP
- PHP 5 ready
- Multi backend usage
- Made NDO backend to standard and moved HTML to optional
- Introduced shapes
- Default configuration in code
- Changed language format to XML (Were several text files before)
- Recoded error handling
- Added new options to objects (hover_url, only_hard_states, backend_id, z)
- Made background color configurable
- Reduced paths in main configuration file
- Reduced code and fixed many bugs
The final release of NagVis 1.0 was published on 2007-04-30.
NagVis 1.1 final was released on 2007-09-06. The major features of this version are:
- Map Index Page
- Added Label feature for all map objects
- Information Page for Debug/Support Informations
- Hover- and Head-Menu template system
- Automatic configuration file validation
- Improved WUI a lot (New pages, dynamic forms, better validation, added map lock feature)
NagVis 1.2 final was released on 2007-12-17. Major features of this release are:
- Recoded Map rotation feature (Several rotation pools)
- Added dynamic favicon image (Depends on state)
- Introduced new "template" map object to make the configuration easier
- Improved WUI
NagVis 1.3 final was been released on 2008-06-25. Some of the main features of this version are:
- Introduced Automap feature
- Added maintenance mode
- Recoded complete object handling (More OOP)
- Improved summary output of all objects
- Improved Map Index (Added rotation pool list, Better thumbnails)
The first NagVis 1.4 stable version has been released on 2009-05-22. The focus of this release is to make NagVis more scalable for big maps. We also wanted to reduce load peaks on the NagVis servers. We already made the biggest steps in development to write a little about the major feature:
- Removed map refresh, the icon
- Introduced NagVis installer (Big thanks to Wolfgang Nieder)
- Rewrote map configuration parse method (Only UNIX line breaks are supported now)
- Added configuration file cache
- Changed language format to gettext
- Map objects can now represent the summary state of the current map by adding the same map name to the object as the current map (No more map loops)
- Background-, Icon-, Shape-Images can now be in jpg, gif or png format
- The perfdata is now available in hover menu and labels of host and service objects
- Added support for the icons defined in the Nagios statusmap to NagVis Automap
- Added event highlighting on state changes (Flashing border, sound, scrolling to object)
- Introduced Gadgets, a new view on service objects. Gadgets are small dynamic php scripts which parse a dynamic image
- Moved objects in WUI are now automatically saved
NagVis 1.5 has been released on 2010-06-15. The focus of this release was to make NagVis even faster and easier to use.
- New default backend: MKLivestatus – replaces the NDOMy backend
- Reworked layout of NagVis
- Weathermap lines powered by the Nagios performance data
- Moved NagVis default directory out of the Nagios share directory
- New authentication and authorization mechanism
- Automap configuration files
- Problem automaps
- Switched WUI Navigation to header menu
- Internal performance tunings
This list will be continued…