Zum Inhalt

Icinga2 Director

Hat man sich für Icinga2 die Weboberfläche installiert und eingerichtet, möchte man am liebsten auch die Konfiguration von Icinga2 darüber erledigen. Am besten noch zentral für alle Server. Genau hier setzt das Modul Icinga Director an. Ich gebe zu: die Funktionsweise vom Director ist etwas komplexer, als deren Einrichtung. Hat man die Logik dahinter erst einmal verstanden, erleichtert er die Arbeit mit Icinga2 enorm.

Voraussetzungen

Zuerst kommt aber die Installation. Ich starte hier mit einem neuen, sauberen System, wie es auch empfohlen wird. Natürlich kann man den Director auch unter einem Produktivsystem mit fertigen Konfigurationen von Servern und Agenten zum Laufen bringen. Allerdings ist dann etwas mehr Handarbeit notwendig, welche unter Umständen auch den zuverlässigen Lauf des Monitorings negativ beeinflussen kann. Der Knackpunkt ist, dass der Director keine fertigen, aktiven Konfigurationen einliest. Diese bleiben von ihm unangetastet und sind somit kein Bestandteil seiner Einrichtung. Somit müssen die weiterhin händisch über einen Editor gepflegt werden, oder man überträgt sie Stück für Stück.

Die folgenden Voraussetzungen müssen erfüllt sein, damit die Installation auch klappt:

  • ein funktionierendes Icinga2 in der Version >= 2.6.0
  • Icingaweb 2>=2.4.1
  • git, curl, php-curl
    apt-get install curl php7.0-curl 
    service apache2 restart

Im ersten Schritt wird eine Datenbank für den Director eingerichtet.

mysql -u root -p
CREATE DATABASE director CHARACTER SET 'utf8';
GRANT ALL ON director.* TO director@localhost IDENTIFIED BY '<Passwort>';
quit;

Hinweis: Der Zeichensatz der Datenbank muss zwingend utf8 sein.

Um den Director mit Icinga2 verbinden zu können, benötigen wir für den Director einen Api-User. Den legen wir in /etc/icinga2/conf.d/api-users.conf wie folgt an:

object ApiUser "director" {
  password = "Hier_ein_Passwort_einsetzen"
  permissions = [ "*" ]
}

Nun folgt der übliche Neustart von Icinga2 mittels service icinga2 restart

Jetzt wechseln wir in das Verzeichnis für die Module von Icingaweb2 und klonen mit Hilfe von Git das Repository vom Director.

cd /usr/share/icingaweb2/modules
git clone https://github.com/Icinga/icingaweb2-module-director.git director

Haben wir diese Schritte erfolgreich durchgeführt, läuft der Rest des Setups über die Web-Oberfläche von Icingaweb2.

Unter Configuration –> Application –> Resources hinterlegen wir die Director-Datenbank, welche wir weiter oben anlegten.

Ist die Validierung sauber durchgelaufen, dann stehen drei Datenbanken unter Resource:

  • icingaweb_db : Weboberfläche Icingaweb2
  • icinga-ido: Verbindung zwischen Icinga2 und Icingaweb2
  • director: Icinga Director

Jetzt ist der Zeitpunkt gekommen, dass unter Configuration –> Modules –> director das Modul aktiviert werden kann. Ab diesem Zeitpunkt taucht auf der linken Navigation der Punkt Icinga Director mit einer blauen 1 auf. Klickt man auf diesen Navigationspunkt, startet man die abschließende Einrichtung des Moduls:

  1. Datenbank angeben, welche man gerade unter Resources hinterlegt hat
  2. API-User und Endpointname (C-Name des Icinga2-Servers) angeben und die Datenbank initialisieren
  3. Icinga Director ist nun einsatzbereit und im Activity-Log werden die initialen Änderungen an der Grundkonfiguration vom Director angezeigt 
  4. über Deplay pending changes kann man diese Änderungen im System übernehmen

Ab sofort steht der Icinga Director bereit und wartet auf die ersten Grundkonfigurationen der neuen Server/ Agenten.

Hinweis: Sollte beim Initialisieren der Datenbank der Fehler  „No CURL extension detected, it must be installed and enabled (RestApiClient.php:74)“ angezeigt werden, dann wurde nach der Installation von php-curl wahrscheinlich der Apache2 noch nicht neu gestartet. Startet den Apache2 neu und die Meldung sollte verschwinden.

Director updaten

Bevor man den Director updatet, sollte man zur Sicherheit die Datenbanken sichern. Da all unsere Arbeiten in der Console erfolgen, ist ein Datenbankbackup recht simpel:

mysqldump -u root -p director > /backup/dbs/director.sql

Ich lege meist auch noch ein Backup vom alten Director-Ordner an. Danach wird der Director-Ordner gelöscht und der master branch vom Director mittels git-Befehl abgerufen.

# Backup vom alten Director-Ordner anlegen
zip -r /backup/director.zip /usr/share/icingaweb2/modules/director/

# Ordner löschen
rm /usr/share/icingaweb2/modules/director/ -R

# master branch ziehen
ICINGAWEB_MODULES=/usr/share/icingaweb2/modules/
DIRECTOR_GIT=https://github.com/Icinga/icingaweb2-module-director.git
git clone $DIRECTOR_GIT $ICINGAWEB_MODULES/director


Published inNützliches

Schreibe den ersten Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.