# 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

Wenn Sie bisher keine Erfahrung mit der Automap haben, dann werfen Sie einen Blick auf die Demo-Automaps, die mit NagVis installiert werden (demo-automap und demo-automap2). Sie sollten in der Lage sein, diese Automaps direkt nach der NagVis-Installation über das "Öffnen"-Menü in der Kopfzeile zu öffnen. Wenn alles korrekt konfiguriert ist, sollten auf der Demonstrations-Map "demo-automap" der root-Host und drei Ebenen von Kind-Hosts angezeigt werden.

## Map-Konfiguration

In der Vergangenheit wurden die Automaps durch spezielle Map-Konfigurationsdateien konfiguriert, die im Verzeichnis `etc/automaps` abgelegt waren, aber dies wurde mit NagVis 1.7 geändert. Die Automap-Konfigurationsdateien werden nun wie normale Map-Konfigurationen erzeugt (wie in Map-Konfigurationsdatei beschrieben. Um ab NagVis 1.7 eine Automap zu erzeugen, müssen Sie die Map-Source auf `automap` setzen. Um dies zu tun, müssen Sie im global-Abschnitt den `sources`-Parameter einfügen und ihm den Wert `automap` geben.

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

## URL-Parameter

Die Automap kann mit verschiedenen URL-Parametern aufgerufen werden. Seit NagVis 1.7 können diese Optionen in den global-Abschnitt der Map-Konfiguration eingetragen werden, damit sie persistent sind. 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_id backend | default backend | Die Backend-Id des Backends, dessen Objekte benutzt werden sollen. Einzelheiten finden Sie im [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
child_layers childLayers | 2 | maximale Anzahl von anzuzeigenden Ebenen abhängiger "Child"-Hosts.
parent_layers parentLayers | 0 | maximale Anzahl von anzuzeigenden Ebenen darüber liegender "Parent"-Hosts.
render_mode 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
ignore_hosts ignoreHosts | none | Kommaseparierte Liste von Hosts (einschließlich abhängiger Hosts), die nicht angezeigt werden sollen
filter_by_state 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
filter_by_id |  | Die angegebenen object_ids ausschließen; wird hauptsächlich intern genutzt .
filter_group 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.
LR
rankdir | none | Konfiguriert die Richtung von gerichteten Automaps, kann auf TB (Top/Bottom) oder LR (Links/Rechts) gesetzt werden.
rotation | none | Rotieren der Map-Objekte im angegebenen Rotations-Pool
header_menu enableHeader | none | Aktivieren/Deaktivieren des Header-Menüs durch 1 bzw. 0. Übersteuert die Konfiguration.
hover_menu enableHover | none | Aktivieren/Deaktivieren des Hover-Menüs durch 1 bzw. 0. Übersteuert die Konfiguration.
context_menu enableContext | none | Aktivieren/Deaktivieren des Context-Menüs durch 1 bzw. 0. Übersteuert die Konfiguration.
margin | none | Setzt den freien Bereich am Rand des Automap-Graphen. Die Angabe erfolgt in Pixeln.
overlap | none | Konfigurieren der Kollisionsbehandlung von Objekten (eine Erklärung der Werte finden Sie in der GraphViz-Dokumentation)

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