Icinga 2: Installation unter MacOS X

Diesen Beitrag schrieb ich 7 Jahre und 12 Monate zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 2 Minuten

Ich probiere derzeit viel aus, und heute habe ich Icinga 2 unter MacOS X 10.11.4 (El Capitan) gebaut, denn ich möchte meinen Arbeitsplatzrechner als Test-Node nutzen. Er soll mir kein Webinterface zur Verfügung stellen, er benötigt auch keine Datenbankanbindung. Ich zeige euch mal, wie ich es gemacht habe…

Die Abhängigkeiten

Ich nutze schon seit vielen Jahren The MacPorts, und die benötigten Pakete installiere ich hierüber – aber erst, nachdem ich alles auf den neuesten Stand gebracht habe. Und das kann eine ganze Weile dauern…

$ port selfupdate
$ port upgrade outdated
$ port install wget git ccache boost cmake bison flex yajl openssl nagios-plugins

Außerdem werden ein User icinga und eine zugehörige Gruppe icinga benötigt; die können unter System Preferences → Users & Groups angelegt werden. Außerdem weisen wir dem User als Login-Shell die /usr/bin/false zu – sicher ist sicher.

$ dscl
list Local/Default/Users
...
read Local/Default/Users/icinga
...
UserShell: /bin/bash
 > change Local/Default/Users/icinga UserShell /bin/bash /usr/bin/false
 > quit
Goodbye

Icinga 2 bauen

Nun wird der Icinga 2-Source benötigt – am besten schnappst du dir den per git. Ich schmeiße ihn auf den Desktop – dann vergesse ich anschließend das Aufräumen nicht – aber das kannst du halten wie der sprichwörtliche Dachdecker ;-)

$ cd ~/Desktop/
$ git clone git://git.icinga.org/icinga2.git
$ cd icinga2
$ mkdir debug
$ cd debug
$ export CC='ccache clang'
$ export CXX='ccache clang++'
$ export CCACHE_CPP2=yes
$ cmake -DCMAKE_BUILD_TYPE=Debug -DICINGA2_UNITY_BUILD=OFF -DICINGA2_WITH_MYSQL=OFF -DICINGA2_WITH_PGSQL=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/icinga2 ..
$ cd ..
$ sudo make -j4 install -C debug
$ sudo chown -R icinga:icinga /usr/local/icinga2

Somit wurde ein vollständiges Icinga 2 nach /usr/local/icinga2 installiert; mit dem letzten Aufruf werden die Dateirechte auf User und Gruppe icinga gestellt, und vergiss nicht, /usr/local/icinga/sbin in deine PATH-Variable aufzunehmen – vielleicht durch ein export PATH=/usr/local/icinga2/sbin/:$PATH in deiner .profile oder wo auch immer du das verwaltest. Und nun kannst du schonmal vorsichtig linsen:

$ /usr/local/icinga2/sbin/icinga2 feature list
Disabled features: api command compatlog debuglog gelf graphite ido-pgsql livestatus opentsdb perfdata statusdata syslog
Enabled features: checker mainlog notification
$ icinga2 daemon

Da ist der, der Daemon, und er ist für alle Schandtaten bereit; ich habe meinen als Node eingerichtet – und bin dann schnell an die Wand gelaufen, als die nagios-plugins nicht gefunden werden konnten…

Die Nagios-Plugins

Icinga 2 Mac als Node Eingangs hatten wir sie per port install installiert – sie liegen in /opt/local/libexec/nagios/. Erwartet wurden sie von meinem System in /usr/lib/nagios/plugins/. Kein Problem, dachte ich ganz naiv, setz’ ich halt einen Symlink – nicht die hübscheste Lösung, aber funktioniert halt. Denkste! El Capitan kommt mit der System Integrity Protection, und die erlaubt es nicht, in /usr/lib auch nur irgendwas zu machen; so erhält auch root ein lapidares Permission denied beim Versuch, einen Ordner anzulegen oder einen Symlink zu setzen.

Ich für meinen Teil habe den radikalen Weg beschritten und die System Integrity Protection gänzlich abgeschaltet (ob du das für dich so löst oder anders sei dir überlassen):

  • Den Mac herunterfahren und im Recovery-Modus starten, dazu beim Start ⌘+R gedrückt halten.
  • Ein Terminal-Fenster öffnen und die folgenden beiden Befehle eingeben: csrutil disable
  • Es folgt der Hinweis Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
  • reboot

Mit dieser Krücke ist es mir nun möglich, meinen Symlink zu setzen, und mein Mac wandert als Node in die Überwachung – sehr sexy und zumindest nicht schmerzhafter als dieses Rumgefrickel mit NRPE, wenn ihr mich fragt :D

Alle Bilder dieser Seite: © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: 1440x 530px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten

Eure Gedanken zu „Icinga 2: Installation unter MacOS X“

Ich freue mich über jeden Kommentar, es sei denn, er ist blöd. Deshalb behalte ich mir auch vor, die richtig blöden kurzerhand wieder zu löschen. Die Kommentarfunktion ist über GitHub realisiert, weshalb ihr euch zunächst dort einloggen und „utterances“ bestätigen müsst. Die Kommentare selbst werden im Issue-Tracker und mit dem Label „✨💬✨ comment“ erfasst – jeder Blogartikel ist ein eigenes Issue. Über GitHub könnt ihr eure Kommentare somit jederzeit bearbeiten oder löschen.