# Backends

## Allgemeine Informationen

Der NagVis-Code besteht aus mehreren Schichten. Eine dieser Schichten ist die "Daten-Schicht". Die Datenschicht wird benutzt, um Informationsanfragen von Dritten zu behandeln, wie z.B. Nagios NDO. Wir nennen diese Schicht im Allgemeinen "Backend". Innerhalb von NagVis gibt es einige Komponenten, um diese Backends zu verwalten und sie dienen als "Kleber" zwischen den einzelnen Backends und den anderen Schichten.

## Default-Backend

Zur Zeit werden mit dem NagVis-Kern vier Backends ausgeliefert: das mklivestatus, ndomy, ndo2fs und merlinmy Backend. Alle Backends werden im Folgenden genauer beschrieben.
Das ndomy-Backend ist das Default-Backend von NagVis 1.0 bis NagVis 1.4.x. Es holt Nagios-Informationen aus der NDO-MySQL-Datenbank. Seit NagVis 1.5 ist MKLivestatus das Default-Backend.

## Backend-Typen

### mklivestatus-Backend

MKLivestatus ist ein einfaches und elegantes Nagios Eventbroker Modul. Livestatus ist konzipiert, um Disk-IO, Speicher- und CPU-Last, welcher durch die Verarbeitung von aktuellen Statusinformationen verursacht wird, zu reduzieren. Genau wie die NDO-Datenbank setzt Livestatus auf die Event-Broker-API von Nagios auf und lädt ein binäres Modul in den Nagios-Kern. Anders als bei NDO werden keine Daten aktiv in eine Datenbank oder Ähnliches kopiert. Die Daten werden über einen UNIX-Socket nur bereitgestellt, wenn sie auch angefragt werden. Details über diese neue Datenquelle sind in der offiziellen Dokumentation zu finden.

Seit NagVis 1.4.5 ist das MKLivestatus-Backend in NagVis enthalten. Es ist wesentlich performanter als alle bisherigen Backends und kommt mit weniger Overhead aus. Es wird keine weitere Datenbank benötigt.

Value | Default | Description
--- | --- | ---

socket

unix:/usr/local/nagios/var/rw/live

Der Socket, auf dem MKLivestatus hört. Es kann ein lokaler UNIX-Socket, oder ein TCP-Socket sein. Am Anfang des Wertes muss der Typ des Sockets bestimmt werden, dies kann "unix:" für UNIX-Sockets oder "tcp:" für TCP-Sockets sein.

Im Falle eines UNIX-Sockets muss nach dem Doppelpunkt der Pfad zum Socket angegeben werden.

Wenn ein TCP-Socket genutzt wird, muss nach dem Doppelpunkt die Hostadresse und im Anschluss, von einem Doppelpunkt getrennt, der Port angegeben werden: <host>:<port>. Die Hostadresse kann sowohl eine IP-Adresse, als auch ein DNS-Name sein.

Es gibt außerdem einige globale Backend-Parameter, diese können in der Dokumentation der Hauptkonfiguration nachgelesen werden.

### ndo2db-MySQL-Backend (ndomy)

Das ndo2db-MySQL-Backend, kurz ndomy-Backend, wird benutzt, um Nagios-Informationen wie Status- und Konfigurationsdaten aus einer MySQL-Datenbank zu holen. Ein Nagios-Addon namens ndoutils speichert alle Informationen, die bei einem laufenden Nagios anfallen, in einer MySQL-Datenbank. Diese Datenbank wird über das NagVis-ndomy-Backend abgefragt.

Sie können die folgenden Parameter benutzen, um ein ndomy-Backend zu konfigurieren:

Wert | Default | Beschreibung
--- | --- | ---
dbhost | localhost | Hostname der NDO-Datenbank
dbport | 3306 | Port der NDO-Datenbank
dbname | db_nagios | Name der NDO-Datenbank
dbuser | root | Benutzername für den Datenbankzugriff (Leseberechtigung ist ausreichend)
dbpass | root | Passwort für den Datenbankzugriff (Leseberechtigung ist ausreichend)
dbprefix | nagios_ | Präfix der Tabellen in der NDO-Datenbank (wie in der ndo2db.cfg definiert)
dbinstancename | default | Name der Nagios-Instanz in der NDO-Datenbank (wie in der ndomod.cfg definiert)
maxtimewithoutupdate | 180 | Maximale Zeit in Sekunden nach der letzten Aktualisierung in NDO. NagVis wird melden, dass Nagios nicht läuft, wenn diese Zeit überschritten ist

Es gibt auch einige allgemeine Parameter. Sie finden sie in der Formatbeschreibung der Hauptkonfigurationsdatei.

### ndo2fs-Backend

Wert | Default | Beschreibung
--- | --- | ---
path | /usr/local/ndo2fs/var | Pfad zum ndo2fs-var-Verzeichnis. Die Dateien in diesem Verzeichnis sollten ndo2fs.pid, VOLATILE und PERSISTENT sein.
instancename | default | Name der Backend-Instanz.
maxtimewithoutupdate | 180 | Maximale Zeit in Sekunden nach der letzten Aktualisierung in NDO. NagVis wird melden, dass Nagios nicht läuft, wenn diese Zeit überschritten ist

Es gibt auch einige allgemeine Parameter. Sie finden sie in der Formatbeschreibung der Hauptkonfigurationsdatei.

### Andere Backend-Typen

FIXME: Hinweis auf andere Backends (eigene erzeugen, Backends von Dritten, ...).

## Konfigurieren von Backends

Die Backends werden in der Hauptkonfigurationsdatei definiert. Schauen Sie in die Formatbeschreibung der Hauptkonfigurationsdatei, wie Backends definiert werden.