# Automap

## Einleitung

Die NagVis-Automap wurde mit NagVis-1.3 eingeführt. Die Hauptaufgabe dieses Features ist der Ersatz der eingebauten Map von Nagios. Das größte Problem der Nagios-Map ist die fehlende Skalierbarkeit. In großen Nagios-Installationen ist die Automap nicht nutzbar. Das liegt u.a. an fehlenden Konfigurationsoptionen wie z.B. der Selektion von bestimmten anzuzeigenden Elementen.
NagVis behandelt die Objekte und definiert eine Konfiguration für Graphviz. Das Map-Bild und der HTML-Code für die Links werden von GraphViz erzeugt und an NagVis weitergeleitet.

## Voraussetzungen

- GraphViz >= 2.14 für die Automap (niedrigere Versionen haben Probleme mit Truecolor-Unterstützung beim Rendering). Sie benötigen weitere Pakete wie gd, libpng und freetype, ... aber wenn Sie graphviz kompiliert/installiert haben, sollte es funktionieren.
- Sie müssen Abhängigkeiten zwischen den einzelnen Hosts definieren. Hinweise finden Sie u.a. hier.

## Erster Aufruf

Die Automap kann wie folgt aufgerufen werden:

    http://<nagios-server>/<path-to-nagvis>/frontend/nagvis-js/index.php?mod=Automap&act=view&show=__automap

Wenn alles richtig konfiguriert ist, sollten der Root-Host und zwei Ebenen von abhängigen Hosts auf der Automap angezeigt werden.

## Hauptkonfiguration

Einige Parameter für die Automap können in der Hauptkonfiguration von NagVis gesetzt werden. Weitere Informationen finden Sie in der Beschreibung der Hauptkonfigurationsdatei.

## Map-Konfiguration

Die Automaps werden durch spezielle Map-Konfigurationsdateien konfiguriert, die im Verzeichnis `etc/automaps` abgelegt werden. Die Default-Map-Konfigurationsdatei heißt `__automap.cfg`. Alle Werte finden Sie in der Beschreibung der Automap-Konfigurationsdatei.
Die Werte wie iconset usw. werden an alle Objekte der Map vererbt.

## URL-Parameter

Die Automap kann mit verschiedenen URL-Parametern aufgerufen werden. Hier eine Liste aller verfügbarer Optionen:

Parameter | Default | Beschreibung
--- | --- | ---
show |  | Der Name der Automap. Seit NagVis 1.5 können verschiedene Automap-Konfigurationsdateien definiert werden. Die anzuzeigende Automap muss hier angegeben werden.
backend | default backend | Die Backend-Id des Backends, dessen Objekte benutzt werden sollen. Für Einzelheiten schauen Sie in den [backend_*]-Abschnitt der Beschreibung der Hauptkonfigurationsdatei.
root | siehe root object definition | Dies ist der Name des Root-Objektes. Es ist nicht notwendig, den Host hier zu setzen. Es gibt mehrere Wege, das Root-Objekt zu ermitteln. Einzelheiten finden Sie im Root-Objekt-Definition-Kapitel auf dieser Seite
childLayers | 2 | maximale Anzahl von anzuzeigenden Ebenen abhängiger "Child"-Hosts.
parentLayers | 0 | maximale Anzahl von anzuzeigenden Ebenen darüber liegender "Parent"-Hosts.
renderMode | undirected | Setzt den Render-Modus der Map. Einzelheiten finden Sie unter verfügbare Render-Modi
width | 1024 | Breite der Automap in Pixeln
height | 786 | Höhe der Automap in Pixeln
ignoreHosts | none | Kommaseparierte Liste von Hosts (einschließlich abhängiger Hosts), die nicht angezeigt werden sollen
filterByState | none | Bei einem Wert von 1 ist der "Problem Automap"-Modus aktiviert. Dabei werden alle Zweige ausgefiltert, die nur Hosts im Status "UP" enthalten. Das resultiert in einer "Problem-Automap", die einen Baum zeigt, in dem in jedem Zweig mindestens einen Host mit einem Problem gibt
filterGroup | none | Geben Sie den Namen einer Hostgruppe an. Nur Hosts dieser Hostgruppe werden auf der Map angezeigt.
search | none | Suche nach einem Map-Objekt während des Map-Ladens. Passende Objekte werden hervorgehoben.
rotation | none | Rotieren der Map-Objekte im angegebenen Rotations-Pool
enableHeader | none | Aktivieren/Deaktivieren des Header-Menüs durch 1 bzw. 0. Übersteuert die Konfiguration.
enableHover | none | Aktivieren/Deaktivieren des Hover-Menüs durch 1 bzw. 0. Übersteuert die Konfiguration.
enableContext | none | Aktivieren/Deaktivieren des Context-Menüs durch 1 bzw. 0. Übersteuert die Konfiguration.

## Root-Objekt-Definition

Die Vorgehensweise der Automap ist, beim Root-Objekt zu beginnen und den in Nagios definierten Abhängigkeitsbaum zu durchlaufen und die gefundenen Objekte auf der Map anzuzeigen.
Es gibt mehrere Wege, um das Root-Objekt zu ermitteln:

- URL-Parameter: das Root-Objekt kann durch den Parameter `root` gesetzt werden
- Hauptkonfiguration: die `defaultroot`-Option kann im `[automap]`-Abschnitt gesetzt werden
- automatische Erkennung: Das Backend nach einem Host ohne Eltern fragen. Das funktioniert allerdings nur, wenn es genau EINEN Host ohne Eltern gibt.

Die obige Liste ist nach Priorität geordnet.

## Verfügbare Render-Modi

Es gibt verschiedene verfügbare Render-Modi:

Modus | Beispiel-Bild
directed |
undirected |
radial |
circular |
undirected2 |

## Automap-nach-Map-Export

Seit NagVis 1.5 ist es möglich, die aktuelle Automap-Ansicht als normale NagVis-Map zu exportieren. Durch den Export erhalten Sie Vorteile aus beiden Ansichten.

Sie können mit der Automap beginnen, um mit Hilfe der Automap-Render-Modi die Objekte auf Ihrer Automap zu positionieren. Sobald Sie fertig sind, exportieren Sie die Automap zusammen mit dem generierten Hintergrundbild in eine reguläre Map. Dazu benutzen Sie den Punkt "Export to map", den Sie im "Aktionen"-Menü Ihres Header-Menüs finden.

Auf der exportierten Map können Sie - abhängig von Ihren Anforderungen - zusätzliche Design-Elemente platzieren oder das Layout anpassen.

Eine Automap kann beliebig oft in die gleiche Ziel-Map exportiert werden (wodurch natürlich Ihre Anpassungen in der Ziel-Map überschrieben werden!). Sie können nur Maps überschreiben, wenn Sie die Berechtigung dazu haben.

Eine normale Map kann nicht in eine Automap konvertiert werden.

## Host-URLs

Die URLs von Host-Objekten werden zur Identifizierung der Objekte während des Renderns benutzt. Speziell der "host="-Parameter ist wichtig. Wenn dieser Parameter in der Host-URL fehlt, dann können die Objektpositionen nicht ermittelt werden.

Normalerweise sollte diese Information nicht von Interesse für Sie sein. Wenn Sie aber die Host-URLs in Ihrer NagVis-Installation anpassen, dann ist es wichtig zu wissen, dass Ihre benutzerdefinierte URL den Parameter "host=" enthalten muss, der mit dem Hostnamen des Objekts zu füllen ist, damit die Hosts in der Automap benutzt werden können.