Icinga 2: Dashing
Das war ein langer Tag für mich: Boarding in Saarbrücken ab 6h00, Landung in Berlin-Tegel um 7h45, zum Hotel hetzen, zur Location hetzen. Und obgleich ich in der Zeit zwischen 10h00 und 17h30 überwiegend in den Talks saß, habe ich laut Garmin knappe 15.000 Schritte gemacht. Das erklärt die Müdigkeit.
Das war es also: das #icingacamp Berlin 2016! Unterhaltsam, lehrreich, spannend. Ich bin wahnsinnig froh, dass ich dabei sein durfte! In nächster Zeit werde ich mich an die Integration von Icinga 2 und Puppet machen, auch der Director hat es mir sehr angetan. Außerdem ist die Icinga 2 API definitiv etwas, das ich mir näher anschauen muss.
Als kleine Fingerübung – mit müden Beinen auf dem Hotelbett liegend und Berlin-Dokumentationen auf RBB schauend – habe ich mir das Dashing eingerichtet. Und ihr solltet das auch mal tun – es ist nämlich lustig ;-) Dazu musste ich im ersten Schritt einige Abhängigkeiten installieren:
$ apt-get install ruby ruby-dev nodejs
$ gem install bundle
$ gem install dashing
$ bundle install
Jetzt muss das API-Feature in Icinga 2 eingeschaltet und der Dienst anschließend durchgestartet werden:
$ icinga2 api setup
$ service icinga2 restart
Für das Dashing lege ich mir einen eigenen API-User an; ihn füge ich der /etc/icinga2/conf.d/api-users.conf
hinzu:
[...]
object ApiUser "dashing" {
password = "asdf1234"
client_cn = "icinga2"
permissions = [ "*" ]
}
Den GitHub-Master ziehe ich mir nach /usr/share
– Geschmackssache…
$ cd /usr/share
$ git clone https://github.com/Icinga/dashing-icinga2.git
Cloning into 'dashing-icinga2'...
remote: Counting objects: 166, done.
remote: Total 166 (delta 0), reused 0 (delta 0), pack-reused 166
Receiving objects: 100% (166/166), 446.71 KiB | 56.00 KiB/s, done.
Resolving deltas: 100% (45/45), done.
Checking connectivity... done.
Hier muss eben angelegte API-User eingefüttert werden: dazu im eben ausgecheckten /usr/share/dashing-icinga2
die Datei jobs/icinga2.rb
entsprechend anpassen:
[...]
$api_username = "dashing"
[...]
$api_password = "asdf1234"
[...]
Nun kann es für einen ersten Test gestartet werden – und ballert fröhlich die Konsole voll ;-)
$ cd /usr/share/dashing-icinga2
$ ./run.sh
Thin web server (v1.6.4 codename Gob Bluth)
Maximum connections set to 1024
Listening on 0.0.0.0:3030, CTRL+C to stop
Über Port 3030 ist das Interface nun erreichbar, und es eignet sich beispielsweise prima, den Usern einen Überblick zu geben – oder einfach mit der API zu spielen und rumzuprobieren. Und dass in meinem Testlauf so viele Checks auf CRITICAL stehen liegt einfach daran, dass ich lediglich eine geschrumpfte Icinga 2-Konfiguration zu Testzwecken auf dem Laptop habe. Wie fandet ihr die Veranstaltung? Was werdet ihr als nächstes in Angriff nehmen?
Hintergrundbild: Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten