Datenbank Unterstützung

(MySQL und PostgreSQL)


Index

Einführung
Weg mit dem alten Zeug...
Loslegen
Umwandeln mit MySQL Unterstützung
Umwandeln mit PostgreSQL Unterstützung
Konfigurations Anweisungen

Tabellen Definitionen

Einführung

Dies hier wird erläutern wie das zentrale Programm und die CGIs umzuwandeln sind, so das sie von sich aus die Speicherung verschiedener Daten in einer oder mehreren Datenbanken unterstützen. Im Moment werden nur MySQL und PostgreSQL Datenbanken unterstützt, obwohl in Zukunft wharscheinlich noch mehr unterstützt werden.

Weg mit dem alten Zeug...

Okay, bevor wir weitermachen und in die Details der Datenbankintegration einsteigen, müssen Sie eines verstehen. Die bevorzugte Methode in Nagios, um Status Daten, Kommentare usw. zu speichern, sind die guten alten Textdateien. Die Standard Dateien die dazu benutzt werden schliesen die Dateien status file, downtime file, comment file, und die state_retention file ein. In der Standard Installation werden die erweiterten Host und Dienst Informationen nicht in einer eigenen Datei abgelegt, sondern in extended host and service information Definitionen in der CGI configuration file Datei.

Wenn Sie planen für die Speicherung einiger oder aller externer Daten eine Datenbank einzusetzen, werden sich einige Dinge logischerweise ändern. Die Daten werden nicht länger in Text Dateien gespeichert, sondern in einer oder mehreren Datenbanken. Da mir nicht danach ist eine ganze Menge Dokumentation neu zu schreiben, müssen Sie eine Umsetzung im Kopf machen. Sie müssen realisieren das Status Informationen nicht mehr länger im Satus Log gespeichert werden. Das gleiche gilt für alle anderen Arten von externen Daten (Ausfallzeiten, Kommentare, Übernahme Informationen und erweiterte Host Informationen).

Loslegen

Ich setze voraus das Sie einen MySQL oder einen PostgreSQL Datenbank Server in Ihrem Netzwerk verfügbar haben und das Sie die benötigten Datenbank Client-Bibliotheken auf dem Rechner installiert haben auf dem Sie Nagios umwandeln und starten wollen. Weiter setze ich voraus das Sie wissen wie Datenbanken und Tabellen erstellt werden und wie Sie die Benutzer Zugriffsrechte auf der Datenbank administrieren die Sie benutzen wollen. Wissen Sie das nicht lernen Sie bevor Sie versuchen Nagios mit Datenbank Unterstützung umzuwandeln.

Sehr wichtiger Hinweis: Wenn Sie das configure Skript aufrufen um die Datenbank Unterstützung zu integrieren (siehe unten), stellen Sie sicher das Sie beides, das Kernprogramm und alle CGIs neu übersetzen (Benutzen Sie dazu den make all Befehl)!!

Umwandeln mit MySQL Unterstützung

Um die Unterstützung für die verschiedenen Daten in MySQL zu aktivieren müssen Sie eine oder mehrere Optionen dem configure Skript übergeben.

Sie haben hier eine einige Möglichkeiten. Als erstes müssen Sie entscheiden welche Daten Sie in MySQL speichern wollen und welche (wenn überhaupt) Sie in den Text Dateien belassen wollen. Benutzen Sie die untenstehende Tabelle um herauszufinden welche Optionen sie dem configure Skript übergeben müssen um Ihre Vorgaben zu erfüllen. Hinweis: MySQL Unterstützung um die Objekt Daten zu speichern (Dienst, Host und Befehls Definitionen) wird zur Zeit noch nicht unterstützt..

Daten TypConfigure Skript OptionKommentar
All Arten --with-mysql-xdata Dies integriert bei der Umwandlung die MySQL Unterstützung für alle Arten von externen Daten (Ausfallzeiten, Kommentare, Staus Daten, Übernahme Daten und erweiterte Daten). Unterstützung um die Objekt Daten zu speichern (Dienst, Host und Befehls Definitionen) ist zur Zeit nicht verfügbar.
Ausfallzeiten --with-mysql-downtime Dies integriert bei der Umwandlung die MySQL Unterstützung für Ausfallzeiten (die ersetzt die Standard Ausfallzeiten Datei)
Kommentar Daten --with-mysql-comments Dies integriert bei der Umwandlung die MySQL Unterstützung für Kommentar Daten (die ersetzt die Standard Kommentar Datei)
Status Daten --with-mysql-status Dies integriert bei der Umwandlung die MySQL Unterstützung für Status Daten (die ersetzt das Standard Status Log)
Übernahme Daten --with-mysql-retention Dies integriert bei der Umwandlung die MySQL Unterstützung für Übernahme Daten (die ersetzt die Standard Status_Übernahme Datei)
Erweiterte Daten --with-mysql-extinfo Dies integriert bei der Umwandlung die MySQL Unterstützung für erweiterte Daten (die ersetzt die Standard hostextinfo[] und serviceextinfo[] Definitionen in der CGI Konfigurations Datei)

Umwandeln mit PostgreSQL Unterstützung

Um die Unterstützung für die verschiedenen Daten in PostgreSQL zu aktivieren müssen Sie eine oder mehrere Optionen dem configure Skript übergeben.

Sie haben hier eine einige Möglichkeiten. Als erstes müssen Sie entscheiden welche Daten Sie in PostgreSQL speichern wollen und welche (wenn überhaupt) Sie in den Text Dateien belassen wollen oder möglicherwiese in MYSQL speichern wollen. Benutzen Sie die untenstehende Tabelle um herauszufinden welche Optionen sie dem configure Skript übergeben müssen um Ihre Vorgaben zu erfüllen. Hinweis: PostgreSQL Unterstützung um die Objekt Daten zu speichern (Dienst, Host und Befehls Definitionen) wird zur Zeit noch nicht unterstützt..

Daten TypConfigure Skript OptionKommentar
All Arten --with-pgsql-xdata Dies integriert bei der Umwandlung die PostgreSQL Unterstützung für alle Arten von externen Daten (Ausfallzeiten, Kommentare, Staus Daten, Übernahme Daten und erweiterte Daten). Unterstützung um die Objekt Daten zu speichern (Dienst, Host und Befehls Definitionen) ist zur Zeit nicht verfügbar.
Ausfallzeiten --with-pgsql-downtime Dies integriert bei der Umwandlung die PostgreSQL Unterstützung für Ausfallzeiten (die ersetzt die Standard Ausfallzeiten Datei)
Kommentar Daten --with-pgsql-comments Dies integriert bei der Umwandlung die PostgreSQL Unterstützung für Kommentar Daten (die ersetzt die Standard Kommentar Datei)
Status Daten --with-pgsql-status Dies integriert bei der Umwandlung die PostgreSQL Unterstützung für Status Daten (die ersetzt das Standard Status Log)
Übernahme Daten --with-pgsql-retention Dies integriert bei der Umwandlung die PostgreSQL Unterstützung für Übernahme Daten (die ersetzt die Standard Status_Übernahme Datei)
Erweiterte Daten --with-pgsql-extinfo Dies integriert bei der Umwandlung die PostgreSQL Unterstützung für erweiterte Daten (die ersetzt die Standard hostextinfo[] und serviceextinfo[] Definitionen in der CGI Konfigurations Datei)

Konfigurations Direktiven

Wenn Sie sich entschieden haben welche Arten von Daten Sie in einer oder mehreren Datenbanken speichern wollen, müssen Sie einige Konfigurations Direktiven in die Resource Datei und/oder in die CGI Konfigurations Datei einfügen. Los gehts...

Konfigurations Direktiven für Ausfallzeiten: (--with-mysql-downtime oder --with-pgsql-downtime Option):

In der CGI Konfigurations Datei, müssen Sie die folgende Direktiven hinzufügen (Die downtime_file Direktive in der Haupt Konfigurations Datei wird nicht mehr benutzt)...

xdddb_host=datenbank_server
xdddb_port=datenbank_port
xdddb_username=datenbank_benutzer
xdddb_password=datenbank_passwort
xdddb_datenbank=datenbank_name

Sie sind eigentlich selbsterklärend. Sie werden von den CGIs benutzt um die Adresse des Datenbankservers (und des Ports auf dem dieser läuft), den Namen der Datenbank in welchem die Ausfallzeiten gespeichert werden sollen und den Benutzernamen/Passwort die benutzt werden sollen wenn eine Verbindung zur Datenbank aufgebaut wird, in Erfahrung zu bringen. Nagios setzt voraus das zwei Tabellen (wie sie hier definiert wurden) in der Datenbank existieren. Hinweis: Die CGIs brauchen nur lesenden Zugriff auf die Ausfallzeiten, also sollte dieser Benutzer nur SELECT Privilegien auf diese Tabellen haben.

In der Resource Datei, müssen Sie die folgenden Direktiven hinzufügen...

xdddb_host=datenbank_server
xdddb_port=datenbank_port
xdddb_username=datenbank_benutzer
xdddb_password=datenbank_passwort
xdddb_datenbank=datenbank_name
xdddb_optimize_data=[0/1]

Diese Direktiven sind identisch mit denen die Sie der CGI Konfigurationsdatei hinzugefügt haben, mit dem Unterschieden das diese vom Nagios Zentral Prozess benutzt werden. Der Datenbankuser den Sie hier angeben muss SELECT, INSERT, UPDATE und DELETE Privilegien auf der Ausfallzeiten Tabelle haben. Die CGIs versuchen nicht irgendeine Resource Datei zu lesen also können Sie restriktive Verechtigungen darauf vergeben so das kein anderere als der Nagios Prozess diese lesen kann. Die xdddb_optimize_data Option zwingt Nagios dazu die Daten in der Ausfallzeitentabelle zu optimieren wenn Nagios gestartet wird. Falls Sie PostgreSQL für die Ausfallzeiten benutzen bedeutet dies das ein VACUUM auf die Tabelle gemacht wird.

Konfigurations Direktiven für Kommentare: (--with-mysql-comments oder --with-pgsql-comments Optionen):

In der CGI Konfigurations Datei, müssen Sie die folgenden Direktiven hinzufügen (die comment_file Direktive in der Haupt Konfigurations Datei wird nicht mehr benutzt)...

xcddb_host=datenbank_server
xcddb_port=datenbank_port
xcddb_username=datenbank_benutzer
xcddb_password=datenbank_passwort
xcddb_datenbank=datenbank_name

Sie sind eigentlich selbsterklärend. Sie werden von den CGIs benutzt um die Adresse des Datenbankservers (und des Ports auf dem dieser läuft), den Namen der Datenbank in welchem die Kommentare gespeichert werden sollen und den Benutzernamen/Passwort die benutzt werden sollen wenn eine Verbindung zur Datenbank aufgebaut wird, in Erfahrung zu bringen. Nagios setzt voraus das zwei Tabellen (wie sie hier definiert wurden) in der Datenbank existieren. Hinweis: Die CGIs brauchen nur lesenden Zugriff auf die Kommentare, also sollte dieser Benutzer nur SELECT Privilegien auf diese Tabellen haben.

In der Resource Datei, müssen Sie die folgenden Direktiven hinzufügen...

xcddb_host=datenbank_server
xcddb_port=datenbank_port
xcddb_username=datenbank_benutzer
xcddb_password=datenbank_passwort
xcddb_datenbank=datenbank_name
xcddb_optimize_data=[0/1]

Diese Direktiven sind identisch mit denen die Sie der CGI Konfigurationsdatei hinzugefügt haben, mit dem Unterschieden das diese vom Nagios Zentral Prozess benutzt werden. Der Datenbankuser den Sie hier angeben muss SELECT, INSERT, UPDATE und DELETE Privilegien auf der Ausfallzeiten Tabelle haben. Die CGIs versuchen nicht irgendeine Resource Datei zu lesen also können Sie restriktive Verechtigungen darauf vergeben so das kein anderere als der Nagios Prozess diese lesen kann. Die xcddb_optimize_data Option zwingt Nagios dazu die Daten in der Ausfallzeitentabelle zu optimieren wenn Nagios gestartet wird. Falls Sie PostgreSQL für die Ausfallzeiten benutzen bedeutet dies das ein VACUUM auf die Tabelle gemacht wird.

Konfigurations Direktiven für Status Daten: (--with-mysql-status oder --with-pgsql-status Optionen):

In der CGI Konfigurations Datei, müssen Sie die folgenden Direktiven hinzufügen (die status_file Direktive in der Haupt Konfigurations Datei wird nicht mehr benutzt)...

xsddb_host=datenbank_server
xsddb_port=datenbank_port
xsddb_username=datenbank_benutzer
xsddb_password=datenbank_passwort
xsddb_datenbank=datenbank_name

Sie sind eigentlich selbsterklärend. Sie werden von den CGIs benutzt um die Adresse des Datenbankservers (und des Ports auf dem dieser läuft), den Namen der Datenbank in welchem die Status Daten gespeichert werden sollen und den Benutzernamen/Passwort die benutzt werden sollen wenn eine Verbindung zur Datenbank aufgebaut wird, in Erfahrung zu bringen. Nagios setzt voraus das zwei Tabellen (wie sie hier definiert wurden) in der Datenbank existieren. Hinweis: Die CGIs brauchen nur lesenden Zugriff auf die Status Daten, also sollte dieser Benutzer nur SELECT Privilegien auf diese Tabellen haben.

In der Resource Datei, müssen Sie die folgenden Direktiven hinzufügen...

xsddb_host=datenbank_server
xsddb_port=datenbank_port
xsddb_username=datenbank_benutzer
xsddb_password=datenbank_passwort
xsddb_datenbank=datenbank_name
xsddb_optimize_data=[0/1]
xsddb_optimize_interval=sekunden

Diese Direktiven werden, im Gegensatz zu den CGIs, vom Nagios Prozess benutzt. Der einzige Unterschied ziwschen diesen und den in den CGI Konfiguration ist der, das der benutzer SELECT, INSERT, UPDATE und DELETE Orivilegien auf die Status Tabellen haben muss. Die CGIs versuchen nicht irgendeine Resource Datei zu lesen also können Sie restriktive Verechtigungen darauf vergeben so das kein anderere als der Nagios Prozess diese lesen kann. Die xsddb_optimize_data Option zwingt Nagios dazu die Daten in der Statustabelle periodisch zu optimieren. Die Häufigkeit bzw. das Intervall der Optimierung der Daten hängt von dem Wert der Option xsddb_optimize_interval ab. Falls Sie PostgreSQL für die Ausfallzeiten benutzen bedeutet dies das ein VACUUM auf die Tabelle gemacht

Konfigurations Direktiven für die Übernahme Daten: (--with-mysql-retention oder --with-pgsql-retention Optionen):

In der Resource Datei, müssen Sie die folgenden Direktiven hinzufügen (die status_retention_file Direktive in der Haupt Konfigurations Datei wird nicht mehr benutzt)...

xrddb_host=datenbank_server
xrddb_port=datenbank_port
xrddb_username=datenbank_benutzer
xrddb_password=datenbank_passwort
xrddb_datenbank=datenbank_name
xrddb_optimize_data=[0/1]

Sie sind eigentlich selbsterklärend. Sie werden von den CGIs benutzt um die Adresse des Datenbankservers (und des Ports auf dem dieser läuft), den Namen der Datenbank in welchem die Übernahme Daten gespeichert werden sollen und den Benutzernamen/Passwort die benutzt werden sollen wenn eine Verbindung zur Datenbank aufgebaut wird, in Erfahrung zu bringen. Nagios setzt voraus das drei Tabellen (wie sie hier definiert wurden) in der Datenbank existieren. Der Benutzer den Sie hier angeben muss SELECT, INSERT, UPDATE und DELETE Berechtigungen auf die Übernahme Daten Tabellen haben. Die CGIs versuchen nicht irgendeine Resource Datei zu lesen also können Sie restriktive Verechtigungen darauf vergeben so das kein anderere als der Nagios Prozess diese lesen kann. Die xrddb_optimize_data Option zwingt Nagios dazu die Daten in der Übernahmedatentabelle zu optimieren wenn Nagios gestartet wird. Falls Sie PostgreSQL für die Ausfallzeiten benutzen bedeutet dies das ein VACUUM auf die Tabelle gemacht wird.

Konfigurations Direktiven für erweiterete Daten: (--with-mysql-extinfo oder --with-pgsql-extinfo Optionen):

In der CGI Konfigurations Datei, müssen Sie die folgenden Direktiven hinzufügen (die hostextino[] und die serviceextinfo[] Direktiven inder CGI Konfiguration werden nicht mehr weiter benutzt)...

xeddb_host=datenbank_server
xeddb_port=datenbank_port
xeddb_username=datenbank_benutzer
xeddb_password=datenbank_passwort
xeddb_datenbank=datenbank_name

Sie sind eigentlich selbsterklärend. Sie werden von den CGIs benutzt um die Adresse des Datenbankservers (und des Ports auf dem dieser läuft), den Namen der Datenbank in welchem die Erweiterten Daten gespeichert werden sollen und den Benutzernamen/Passwort die benutzt werden sollen wenn eine Verbindung zur Datenbank aufgebaut wird, in Erfahrung zu bringen. Nagios setzt voraus das zwei Tabellen (wie sie hier definiert wurden) in der Datenbank existieren. Hinweis: Die CGIs brauchen nur lesenden Zugriff auf die Status Daten, also sollte dieser Benutzer nur SELECT Privilegien auf diese Tabellen haben.

Tabellen Definitionen

Um aus einer Datenbank lesen zu können oder in diese schreiben zu können müssen Sie diese zuerst angelegen und einige Tabellen anlegen in denen die Daten abgelegt werden können. Hinweis: Wenn Sie mehr als eine Art von externen Daten in einer Datenbank speichern, können Sie für jede Art eine seperate Datenbank anlegen. (Kommentare, Status Informationen etc.) Sie können natürlich auch alle Daten in einer Datenbank abspeichern (Verschiedene Daten werden in verschiedenen Tabellen gespeichert). In Ihrer Datenbank müssen Sie die benötigten Tabllen anlegen so das Nagios Daten lesen und schreiben kann.

Wichtig: Skripte um Tabellen für alle Arten von externen Daten anzulegen für MySQL und PostgreSQL Datenbanken finden Sie im contrib/database/ Verzeichnis der Distribution.

Ausfallzeiten Tabelle:

Sie müssen zwei Tabellen (namens hostdowntime und servicedowntime) anlegen um Ausfallzeiten in der Datenbank speichern zu können. Eine der Tabellen wird benutzt um Host Ausfallzeiten zu speichern und die andere für Dienst Ausfallzeiten. Die CGIs brauchen nur SELECT Privilegien auf diese Tabellen, während der Nagios Prozess SELECT, INSERT, UPDATE und DELETE Privilegien braucht.

Kommentar Daten Tabelle:

Sie müssen zwei Tabellen (namens hostcomments und servicecomments) anlegen um Kommentardaten in der Datenbank speichern zu können. Eine der Tabellen wird benutzt um Host Kommentare zu speichern und die andere um Dienst Kommentare zu speichern. Die CGIs brauchen nur SELECT Privilegien auf diese Tabellen, während der Nagios Prozess SELECT, INSERT, UPDATE und DELETE Privilegien braucht.

Status Daten Tabelle:

Sie müssen drei Tabellen (namens programstatus und hoststatus und servicestatus) anlegen um Statusdaten in der Datenbank speichern zu können. Eine der Tabellen wird benutzt um Programm Stati zu speichern, eine für Host Stati und die weitere um Dienst Stati zu speichern. Die CGIs brauchen nur SELECT Privilegien auf diese Tabellen, während der Nagios Prozess SELECT, INSERT, UPDATE und DELETE Privilegien braucht.

Übernahme Daten Tabelle:

Sie müssen drei Tabellen (namens programretention und hostretention und serviceretention) anlegen um Übernahmedaten in der Datenbank speichern zu können. Eine der Tabellen wird benutzt um Programm Übernahmedaten zu speichern, eine für Host Übernahmedaten und die weitere um Dienst Übernahmedaten zu speichern. Der Nagios Prozess braucht SELECT, INSERT, UPDATE und DELETE Privilegien auf diese Tabellen. Die CGIs benutzen diese nicht.

Erweiterte Daten Tabelle:

Sie müssen zwei Tabellen (namens hostextinfo und serviceextinfo) anlegen um erweiterte Daten in der Datenbank speichern zu können. Eine der Tabellen wird benutzt um erweiterte Host Daten zu speichern und die andere um erweiterte Dienst Daten zu speichern (von den CGIs benutzt). Die CGIs brauchen nur SELECT Privilegien auf diese Tabellen. Der Nagios Prozess benutzt diese Tabellen überhaupt nicht.