# NagVis

NagVis ist eine unter der freien Lizenz GNU GPL veröffentlichte Software-Erweiterung für das Programm Nagios, die der Darstellung der Statusinformationen einer IT-Infrastruktur dient. Mit Hilfe von NagVis können Statusinformationen, die mit Hilfe von Nagios ermittelt wurden, so dargestellt werden, dass sie auch fachfremden Betrachtern verständlich gemacht werden können.
NagVis wird seit 2004 als Open-Source-Projekt entwickelt.

## Funktionsweise

Das Grundprinzip von NagVis basiert auf einfach anzupassenden Ansichten, welche Maps genannt werden. Diese Maps haben ein statisches Hintergrundbild als Grundlage. Auf diesem Hintergrundbild können Objekte, wie z. B. kleine Statusicons oder Linien positioniert werden, die den Status von Nagios-Objekten darstellen.
Auf diese Weise können Raumpläne, schematische Zeichnungen, Fotos und ganze Dokumentationen mit aktuellen Statusinformationen aus dem Monitoring-System versehen werden. Dabei können zusätzlich auch Detail-Informationen über ein Objekt angezeigt werden. Mit einem Rechtsklick auf die Objekte kann ein Menu aufgerufen werden, in dem beliebige Aktionen hinterlegt werden können.

## Automatische Ansichten

Neben den manuell erstellten Maps gibt es auch sogenannte Automaps. Diese werden anhand der Parent-Beziehungen in Nagios erstellt. Hierzu wird die freie Software Graphviz genutzt. Mit einer Automap können die Beziehungen der Systeme im überwachten Netzwerk einfach dargestellt werden. Auch hier werden die aktuellen Statusinformationen angezeigt.

## Flexible Datenquellen

NagVis war die erste Nagios-Erweiterung, die flexibel mehrere verschiedenartige Datenquellen (genannt Backends) unterstützt. In einer Ansicht können Daten von mehreren Nagios-Servern aggregiert werden. Dabei können die verschiedenen Nagios-Server über verschiedene Typen von Backends angesprochen werden. Aktuell können Nagios-Installationen über MKLivestatus, die NDO und IDO mit MySQL, Merlin mit MySQL angebunden werden, wobei die Anbindung über MKLivestatus der empfohlene Weg ist.

## Historie

Das NagVis-Projekt wurde im Jahr 2004 von Jörg Linge ins Leben gerufen. Die erste öffentliche Version 0.0.2 von NagVis wurde am 30. April 2004 von Jörg Linge im Deutschen Nagios Portal freigegeben.
Zunächst war NagVis ein einfaches CGI-Script. Dieses wurde dann in der Version 0.1.0 in PHP umgeschrieben. Kurz darauf wurde die Datei status.cgi als Datenquelle abgeschafft und durch einen CGI-Parser ersetzt. Dieser CGI-Parser wies jedoch bei großen Nagios-Installationen massive Performance-Probleme auf.
NagVis war das erste Addon, das die frisch veröffentlichte NDO als Datenquelle unterstützte und hat damit auch maßgeblich die Verbreitung der NDOUtils vorangetrieben. Mit der Freigabe der NDO-Datenquelle wurde der CGI-Parser abgelöst, so dass sich die Performance-Probleme in großen Installationen nicht mehr so stark auswirkten.
Die erste als stabil deklarierte Version NagVis 1.0 wurde erst am 30. April 2007 freigegeben. Zu diesem Zeitpunkt war NagVis komplett in PHP5 OOP geschrieben und unterstützte die Aggregation mehrerer Datenquellen in einer Ansicht.
Mit der Version 1.4 gab es eine erneute Umstellung in der Architektur. Von nun an wurden die NagVis-Ansichten nicht mehr in festgelegten Intervallen neu geladen. Stattdessen wird seither der Status der einzelnen Objekte mit Hilfe von JavaScript und Ajax aktualisiert. Dieser Schritt diente der Skalierbarkeit von NagVis-Ansichten, da hierbei weniger Informationen auf einmal verarbeitet werden müssen.
Ab der Version 1.5 existiert im NagVis die Unterstützung für die Datenquelle MKLivestatus. MKLivestatus ist Bestandteil von Check MK und stellt einen direkten Zugriff auf die Daten im Nagios-Prozess zur Verfügung. Bei diesem Ansatz werden nur beim Zugriff Informationen verarbeitet. Im Vergleich zur bisherigen Standard-Datenquelle NDO birgt diese Art von Zugriff viele Vorteile, wie z. B. bessere Performance und weniger Wartungsaufwand. Aus diesen Gründen ist der Zugriff über MKLivestatus nun die empfohlene Art, Daten von Nagios in NagVis einzubinden.