Icinga 2 Director - erste Schritte und Nutzung

Icinga 2 Director - erste Schritte und Nutzung

Diesen Beitrag schrieb ich 6 Jahre und 6 Monate zuvor; die nachfolgenden Ausführungen müssen heute nicht unbedingt noch genau so funktionieren. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 3 Minuten

Wenn du den Director nicht innerhalb der letzten 15 Minuten eingerichtet hast empfehle ich dir, den aktuellen Stand via GitHub auszuchecken und zum Einsatz zu bringen – Tom arbeitet sehr fleißig, und nahezu täglich gibt es neue Commits. Beachte dabei auch eventuelle Datenbankanpassungen und -änderungen!

Host Template, Host Object und Deploy

Unser erster Schritt besteht darin, ein host template generic-director-host und ein host object fritzbox4711.bafi.lan anzulegen (das von generic-director-host erbt).

Host Template Host Template

Der übliche Check, der für Hosts verwendet werden soll, ist hostalive. In Icinga Web 2 navigierst du also zu Icinga Director → Host Objects → Add Host und fügst das Template (zum Beispiel gemäß der Angaben in nebenstehendem Screenshot) hinzu. Bist du fertig, speichere die Angaben mit einem Klick auf Store.

Host Objekt fritzbox4711.bafi.lan Host Objekt fritzbox4711.bafi.lan

Jetzt kann mit fritzbox4711.bafi.lan der erste reale Host erfasst werden; wiederum navigierst du über Icinga Director → Host Objects → Add Host – als Object Type musst du nun jedoch Object angeben (und nicht, wie zuvor, Template).

Deployment Deployment

Host und Template sind nun erfasst, jedoch noch nicht in die Konfiguration übernommen – die entsprechende Zahl der Änderungen wird üblicherweise neben Deployments/ History hervorgehoben. Wagen wir es also und übermitteln dem System unsere Änderungen – klicke hierzu auf Deployments/ History → Render config → Deploy to master (vgl. auch Screenshot – hier hab ich echt lange gebraucht, bis der Groschen endlich fiel!).

Der Rest analog

Das ist der übliche Ablauf: du erfasst deinen Kram – Hosts und Services, User und Downtimes, Notifications und so weiter – und lässt dem ein Deploy folgen. That’s it – deine Änderungen erscheinen nahezu zeitgleich. Das Webinterface hat ein Refresh-Intervall von 10 Sekunden, deine Änderungen sind aber schon deutlich eher verfügbar; im Zweifelsfalle kannst du auch auf Refresh klicken, dann siehst du das.

Data Lists und Data Fields

Frei wählbare Felder wie diese brauchst du, um die Konfiguration vollends an deine Bedürfnisse anpassen zu können. Ich zum Beispiel möchte, dass Icinga 2 mir Warnungen per Jabber schickt – ich möchte also meinen User-Eintrag um meinen Jabber-Namen erweitern. Tun wir das gemeinsam: über Icinga Director → Define data fields → Add new definieren wir das Feld Jabber vom Typ String.

Data Field Data Field

Nun weisen wir dieses Feld dem Template generic-director-user zu (Icinga Director → Users → generic-director-user → Reiter „Fields“), wir erweitern also das Template um den Eintrag Jabber – hier können wir auch angeben, ob die Angabe eines Jabber-Namens optional oder zwingend ist. Und für jeden User, der Ableger des Templates generic-director-user ist, kann nun ein Jabber-Name hinterlegt werden. That’s it.

Jabber ID Jabber ID

Analog hierzu funktionieren Data Lists – erwartungsgemäß stellen wir hier ein Drop-Down-Feld zur Verfügung, aus dem ausgewählt werden kann. Erweitern wir nun also unser Template generic-director-host um die Angabe, welches Betriebssystem auf dem Host installiert ist.

Provide Data List Provide Data List

  • Im ersten Schritt erstellen wir also eine Liste aller Betriebssysteme, die wir einsetzen: Icinga Director → Provide Data Lists → Add list.
  • Anschließend müssen wir ein Data Field vom Typ Data List anlegen und diesem Feld unsere eben erstellte Betriebssystem-Liste unterschieben.
  • Zuletzt erweitern wir unser Host-Template um eben dieses Data Field, indem wir in Icinga Director · Hosts · generic-director-host auf den Reiter Fields klicken, das Field Operating System auswählen und festlegen, ob diese Angabe freiwillig oder zwingend zu erfolgen hat.
  • Deploy. That’s it.

Data Field of type Data List Data Field of type Data List

Bin ich verständlich? Ich fürchte, es ist umständlicher zu erklären als auszuführen, deshalb habe ich dir großzügig Screenshots angeheftet und hoffe, sie helfen dir weiter. Feedback – wie immer – erwünscht! Und nun: viel Spaß beim Ausprobieren :-)

Add field to template Add field to template