NagVis Project

NagVis Logo 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

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 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.

NagVis is Nagios powered 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

NagVis line-of-code history

You can read about all changes in the Changelogs in the documentation archive on 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.

NagVis 1.0

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

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

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

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)

NagVis 1.4

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:

  • Completely rewrote the frontend of NagVis to ajax and javascript
  • Rewrote object handling to new Javascript frontend. The object are now refreshed by ajax requests
  • Removed map refresh, the icon
  • Introduced NagVis installer (Big thanks to Wolfgang Nieder)
  • Recoded line drawing to javascript
  • 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

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…

Comments (4) Trackbacks (0)
  1. Pedro RoenickNo Gravatar
    21:14 on July 12th, 2010

    Hi. Is there a way to force NagVis to sound a signal every map refresh time if there is a non OK state on it (instead of sounding the signal only on state change)? Maybe a combination of the “interval” and “updateobjectstates” parameters of the WORKER section of the main configuration file.

  2. LaMiNo Gravatar
    08:36 on July 16th, 2010

    As answerde in At the moment this is not supported.

  3. Bobby WindhamNo Gravatar
    23:20 on November 9th, 2011

    In Nagvis rotation pool, I am trying to get an external website to work alongside my maps. The entry is: maps=”US,Overview,[]”

    It comes back with bad format….if I remove “/blahblah” it pulls up the webpage. I am suspecting the slash. I tried using ‘%2F” to replace the slash but no luck.

    I worked from the Apache angle trying to use “AllowEncodedSlashes On” and “AllowEncodedSlashes NoDecode”… luck.

    Has anyone had success using an external website with a lengthy URL? I have spent so much time on this and getting nowhere…simple URL’s work but not longer ones with slashes or special characters like “&”.

    Thanks, Bobby

  4. DaroNo Gravatar
    19:10 on May 20th, 2014

    hi, i have the same problem that you had with a container on Nagvis 1.7 . this is the url of your post: http://www.monitoring-portal.o.....adID=27015 How i can fix it ?, because i don´t understand your response, sorry for my english :), help me please.

No trackbacks yet.