Icinga2 auf dem Raspberry Pi installieren

Icinga 2 ist ein freies Netzwerk Monitoring System und direkter Nachfolger von Icinga 1 einem Fork des Nagios Projekt. Ziel ist es eine Plattform bereitzustellen die kleine, mittlere und große Netzwerke und Hosts überwachen. Icinga 2 ist dabei keine Out-of-the-Box Lösung mit der man sicher mithilfe einer Oberfläche schnell etwas zusammen klicken kann sondern legt Wert auf eine individuelle Lösung. Es bringt von Haus aus die wichtigsten Checks für Linux und Windows Hosts, SNMP fähige Geräte und mehr mit. Außerdem können Eskalationspläne erstellt werden die im Notfall entsprechende Personen benachrichtigt.

Im folgenden werde ich vorstellen wie man Icinga 2 mithilfe von Puppet auf einem Raspberry Pi B+ zum laufen bekommt. Zweck soll sein einen Einstiegspunkt für Icinga 2 zu finden und das geht meiner Meinung nach am besten im Laborbetrieb auf einem Raspberry Pi.

Voraussetzung ist ein lauffähiger Raspberry Pi Model B+ oder ein anderes Modell mit einem Debian Jessie und SSH Zugriff.

loading slideshow...

  • Icingaweb 2 Erstkonfiguration Schritt 1/18

  • Icingaweb 2 Erstkonfiguration Schritt 2/18

  • Icingaweb 2 Erstkonfiguration Schritt 3/18

  • Icingaweb 2 Erstkonfiguration Schritt 4/18

  • Icingaweb 2 Erstkonfiguration Schritt 5/18

  • Icingaweb 2 Erstkonfiguration Schritt 6/18

  • Icingaweb 2 Erstkonfiguration Schritt 7/18

  • Icingaweb 2 Erstkonfiguration Schritt 8/18

  • Icingaweb 2 Erstkonfiguration Schritt 9/18

  • Icingaweb 2 Erstkonfiguration Schritt 10/18

  • Icingaweb 2 Erstkonfiguration Schritt 11/18

  • Icingaweb 2 Erstkonfiguration Schritt 12/18

  • Icingaweb 2 Erstkonfiguration Schritt 13/18

  • Icingaweb 2 Erstkonfiguration Schritt 14/18

  • Icingaweb 2 Erstkonfiguration Schritt 15/18

  • Icingaweb 2 Erstkonfiguration Schritt 16/18

  • Icingaweb 2 Erstkonfiguration Schritt 17/18

  • Icingaweb 2 Erstkonfiguration Schritt 18/18

Damit wir beginnen können muss man sich auf den Raspberry Pi via SSH einloggen. Mein Raspberry Pi hat den Standart Benutzer pi und trägt den Hostnamen labpi1.local und ist unter der IPv4 Adresse 192.168.2.144 in einem privaten LAN erreichbar. Damit ich meinen Raspberry Pi auch unter labpi1.local von meinem Desktop PC erreichen kann habe ich die /etc/hosts auf meinem Macbook (auf Windows liegt die Datei unter C:\Windows\System32\drivers\etc\hosts) um folgende Zeile erweitert.

192.168.2.144 labpi1.local

Anschließend kann sich auf dem Raspberry Pi via SSH mit dem folgenden Kommando aus einem Terminal seiner Wahl oder Drittanbieter Tools wie Putty einloggen. Aus einem Terminal ruft man dazu einfach folgenden Befehl auf

ssh pi@labpi1.local

Damit wir Icinga 2 mit Puppet installieren können müssen wir erstmal Puppet selber installieren und das Icinga 2 Puppet Modul mit Abhängigkeiten herunterladen und bereitstellen. Aus Gründen der Übersicht lege ich die Puppet Module daher im Homeverzeichnis des pi Benutzers ab und nicht wie richtig und üblich unter /etc/puppet/modules und verlinke die Module nur mit symbolischen Links.

sudo apt-get install puppet vim
mkdir Puppet
cd Puppet

git clone https://github.com/puppetlabs/puppetlabs-stdlib.git stdlib
git clone https://github.com/puppetlabs/puppetlabs-apt.git apt
git clone https://github.com/kofrezo/puppet-icinga2.git icinga2

sudo ln -s /home/pi/Puppet/stdlib /etc/puppet/modules/stdlib
sudo ln -s /home/pi/Puppet/apt /etc/puppet/modules/apt
sudo ln -s /home/pi/Puppet/icinga2 /etc/puppet/modules/icinga2

Da wir Puppet im Standalone Modus und nicht im Master- Agentenmodus laufen lassen (Klicke hier für weitere Einzelheiten) und wir einige Einstellung auf unseren Raspberry Pi anpassen wollen müssen wir die Puppet Konfiguration noch etwas anpassen. Dazu erstellen wir die Datei /etc/puppet/manisfests/site.pp zum Beispiel mit vim

sudo vim /etc/puppet/manisfests/site.pp

und geben ihr folgenden Inhalt

node default {

    $server_name = 'labpi1.local'
    $server_admin = 'pi@labpi1.local'
    include icinga2

}

Danach können wir die Installation von Icinga 2 via Puppet starten. Dies dauert auf dem Raspberry Pi aufgrund der geringen Leistung natürlich etwas länger (ca. 30 Minuten). Damit wir wenigstens sehen was er macht starten wir Puppet im Verbose- und Debugmodus.

sudo puppet apply --debug --verbose /etc/puppet/manifests/site.pp

Ist Puppet ohne Fehler durchgelaufen erreichen wir die Weboberfläche von Icingaweb 2 zur ersten Konfiguration in einem Browser über die URL

https://labpi1.local

Damit wir Zugriff auf die Ersteinrichtung bekommen, müssen wir das Token eingeben das während der Installation erstellt wurde und vor unbefugten Zugriff durch Angreifer im Netzwerk schützen soll. Das Token in der SSH Sitzung aus dem Terminal durch folgenden Befehl anzeigen

sudo icingacli setup token show

Nachdem wir das Token eingegeben haben können wir erstmal mutig Next klicken bis wir zum Punkt Database Resource kommen. Hier müssen wir die Zugangsdaten für die PostgreSQL Datenbank eintragen die Icinga 2 verwendet um die Zugangsdaten für die Authentifizierung und Autorisierung von Benutzern zu speichern. Da diese Datenbank nicht automatisch bei der Installation mit angelegt wird müssen wir sie erst mit den folgenden Befehlen im Terminal mit der SSH Sitzung erstellen.

sudo su - postgres
createuser -P icingaweb_db
createdb -E utf-8 -O icingaweb_db icingaweb_db
exit

Anschließend können wir wieder mutig auf Next klicken bis wir zum Punkt Administration kommen wo wir das Konto für den ersten Benutzer der Icingaweb 2 Oberfläche anlegen müssen. Die Werte sind natürlich indiviudell. Ich werde als Benutzer admin und als Passwortbeispiel t0ps3cr3t benutzen.

Danach können wir ein vorletztes Mal solange auf Next klicken bis wir beim Punkt Monitoring IDO Resource angekommen sind und die Zugangsdaten für die PostgreSQL Datenbank eingeben müssen in denen Icinga 2 die Ergebnisse (Perfdata genannt) von den ausgeführten Checks speichert um die Graphen für die Perforamnce Daten zu zeichen. Diese wurden bei der Installation schon angelegt und liegen in der Datei /etc/icinga2/features-enabled/ido-pgsql.conf und lassen sich im Terminal mit der SSH Sitzung mit folgenden Befehl anzeigen.

sudo cat /etc/icinga2/features-enabled/ido-pgsql.conf

Ein letztes Mal müssen wir nun ein paar Mal auf Next klicken bis wir die Installation abschließen können und uns an der Weboberfläche mit dem angelegten Benutzerkonto anmelden können. Nachdem Login sehen wir das dass Dashboard von Icingaweb 2 das eine Übersicht über die zu überwachenden Hosts gibt. Standartmäßig wird nur der Raspberry Pi selber überwacht.

Leave a Reply

Your email address will not be published. Required fields are marked *