Login
Newsletter
Werbung

Do, 11. August 2016, 15:00

Simpler CMDB-Import mit Icinga Director

Icinga Director-Anpassungen

Der erste Schritt ist es, die externe Datenbank als Ressource anzulegen. Dazu sind Klicks auf Konfiguration > Anwendung > Ressources und Neue Ressource erstellen notwendig. Als Typ wird SQL-Datenbank ausgewählt, das Formular in etwa wie folgt ausgefüllt:

SQL-Ressource

Christian Stankowic

SQL-Ressource

Ein Klick auf Konfiguration validieren stellt eine Test-Verbindung her und speichert die Resource im Idealfall ab.

Der nächste Schritt ist es, die Datenquelle innerhalb Icinga Director zu definieren - es folgen Klicks auf Icinga-Director > Automatisierung > Importquelle und Importquelle hinzufügen. Neben einem sinnvollen Namen wird wieder SQL als Typ ausgewählt. In unserem Beispiel wird der Dialog wie folgt ausgefüllt:

  • Schlüsselspaltenname: host_name (Feldname der den Hostname enthält)
  • Resource name: Name der zuvor angelegten SQL-Resource
  • DB Query: SELECT host_name, host_ip, host_desc from hosts;

Beim Einsatz marktüblicher CMDB-Produkte wird es vermutlich notwendig sein, die Inhalte der Felder zu manipulieren, beispielsweise um die Schreibweise zu ändern oder Domänen-Namen anzuhängen. Anpassungen dieser Art können in der Registerkarte Modifikatoren definiert werden. Wurde die Datenquelle konfiguriert, kann sie im Reiter Importquelle mit einem Klick auf Auf Änderungen prüfen auf Updates geprüft werden. Ein weiterer Klick auf Importlauf anstoßen importiert und verarbeitet Daten - im Reiter Preview können die Informationen anschließend eingesehen werden. In unserem Fall sollte die Tabelle wie folgt aussehen:

SQL-Import

Christian Stankowic

SQL-Import

Schön - die Daten können wir nun auslesen! Mithilfe eines Synchronisationsjobs können wir dafür sorgen, dass die Hosts in die Icinga Director-Datenbank übernommen werden. Um einen solchen zu erstellen, klicken wir auf den Reiter Synchronisationsregel und anschließend auf Synchronisationsregel hinzufügen. Neben einem sinnvollen Namen wählen wir den Host-Objekttyp aus. Unter Ändere können wir definieren, wie der Director mit den neu gewonnen Daten umgeht - er kann lokal definierte Informationen komplett ersetzen (Ersetzen) oder sie ergänzen (Zusammenführen). Diese Einstellung hängt ganz von der verwendeten CMDB ab - ich habe mich für die Ergänzung entschieden, da ich beispielsweise Services und Notifications nicht über die CMDB abbilde. Bereinigen definiert, ob in der Quelle gelöschte Informationen auch aus der Icinga Director-Datenbank gelöscht werden. Auch hier kommt es wieder drauf an, wie ihr mit den verschiedenen Informationsquellen umgehen wollt. Prinzipiell werden die importierten Informationen meistens mit weiteren Einstellungen kombiniert (z.B. Services, Notifications, ...) - in meinem Setup macht es Sinn, entfernte Hosts aus der Director-Datenbank zu entfernen.

Wurde der Job definiert, kann er im ersten Reiter mit Klicks auf Auf Änderungen prüfen und Diese Synchronisation anstoßen getestet und gestartet werden. Wurde er fehlerfrei ausgeführt, ist ein entsprechender Eintrag im Reiter Historie zu sehen. Klickt man auf den Eintrag, wird sogar ein detailliertes Protokoll angezeigt.

Sync-Historie

Christian Stankowic

Sync-Historie

Sync-Historie Details

Christian Stankowic

Sync-Historie Details

Schön und gut - wir haben eine Datenquelle samt Synchronisation konfiguriert. Aber richtig praktisch ist es für viele erst dann, wenn das vollautomatisiert ausgeführt wird - und hier kommen Aufträge ins Spiel. Mit beherzten Klicks auf den Reiter Aufträge und Hinzufügen wird ein weiterer Assistent zur Erstellung eines Jobs gestartet. Will man den bereits beschriebenen Vorgang vollständig automatisieren, müssen zwei Jobs erstellt werden:

  1. Import der Hosts aus der Datenbank
  2. Erstellen und Ausrollen der Konfiguration

Insbesondere bei letzterem werden die Meinungen weit auseinander gehen. In vielen Umgebungen ist das Ausrollen der Konfiguration eine Aufgabe, die nicht automatisiert stattfinden soll - beispielsweise um weitere Anpassungen zu überprüfen. In manchen Entwicklungs- und Testumgebungen kann das aber durchaus sinnvoll sein - hier entscheidet wieder ihr, was für euch am besten ist.

Neben einem sinnvollen Namen wird die Art des Jobs gefragt - für den ersten Job wählen wir Import, für den zweiten Config. Beim Importieren der Informationen muss noch die zugehörige Datenquelle angegeben werden. Für jeden Job wird ein Intervall in Sekunden angegeben - beispielsweise 86400 für einen täglichen Durchlauf. Meine Job-Einstellungen sehen wie folgt aus:

Job »Import«

Christian Stankowic

Job »Import«

Job »Config«

Christian Stankowic

Job »Config«

Job-Details

Christian Stankowic

Job-Details

Probiert es aus - ihr werdet sehen, dass unterhalb des Menüpunkts Historie etwaige Änderungen an der Konfiguration dokumentiert werden. Mit einem Klick auf den Protokolleintrag seht ihr sogar detaillierte Änderungen des Codes.

Fazit

Ich finde es faszinierend, wie leicht sich Fremdinformationen sinnvoll mithilfe des Icinga Directors importieren und umsetzen lassen. Es erfordert zwar einige Tests, doch insbesondere in größeren Umgebunden kann man so zahlreiche Arbeitsstunden einsparen und auch stetige Anpassungen erleichtern. An der Stelle ein großes Lob an das Icinga-Team, tolle Arbeit!

Dieser Artikel erschien ursprünglich im Blog von Christian Stankowic. Veröffentlichung mit freundlicher Genehmigung.

Kommentare (Insgesamt: 1 || Alle anzeigen )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung