Icinga 2 richtig unter CentOS 7 installieren

Einige von euch werden bestimmt im Laufe der Arbeitszeit mit dem Thema Monitoring konfrontiert werden. Aus diesem Grund werde ich in diesem Artikel Schritt für Schritt erklären, wie Icinga 2 auf einem CentOS 7 Server installiert werden kann. Voraussetzung dafür ist, eine lauffähige CentOS 7 Installation die einen Internet Zugang hat.

Logo von Icinga 2

Icinga 2 Logo

1. Schritt: Deaktivierung des Security-Enhanced Linux

Zuerst sollten wir das Security-Enhanced Linux (SELinux) unseres Betriebssystems deaktivieren. Dafür rufen wir mit einem Editor unserer Wahl (bei mir vim) die Datei /etc/selinux/config auf und ändern die folgende Zeile:

Nach dieser Änderung müssen wir das System Neustarten, damit die Änderung erfolgreich wird.

2. Schritt: System aktualisieren

Nun bringen wir das System auf den aktuellen Stand. Dafür verwenden wir den folgenden Befehl:

3. Schritt: Installation zusätzlicher Komponenten

Als nächstes müssen wir das System noch etwas vorbereiten. Dafür installieren wir erstmal die Deployment Tools-

Anschließend installieren wir noch den http Server, falls der bei unserer Grundinstallation noch nicht mit inbegriffen ist:

Nun müssen wir noch ein paar PHP Abhängikeiten erfüllen. Dafür einfach den folgenden Befehl verwenden:

4. Schritt: MySQL installieren:

Damit Icinga 2 die erhobenen Daten richtig strukturieren kann, brauchen wir noch einen MySQL Server. Dafür gibt es zwei Möglichkeiten.

MariaDB

Bei mariadb handelt es sich um die MySQL Version für CentOS 7. Diese würde ich euch empfehlen da die Installation relativ einfache ist. Zum Installieren wird einfach der folgende Befehl verwendet.

Anschließend wir der mariadb Service auf dem Server gestartet.

Dies getan, setzten wir noch ein Passwort für den root User.

MEIN_ROOT_PASSWORT muss durch unser root Passwort ersetzt werden.

Damit mariaDB nach dem Neustart automatisch startet, müssen wir noch den folgenden Befehl verwenden:

 

Community MySQL

Anstelle von mariadb kann ich der Community Build vom MySQL verwendet werden. Dafür laden wir uns zuerst das entsprechende yum repo herunter und installieren das:

Jetzt prüfen wir noch, ob das repo auch hinterlegt ist:

Hat alles richtig funktioniert sollten bei der Ausgabe die folgenden beiden Dateien angezeigt werden:

  • /etc/yum.repos.d/mysql-community.repo
  • /etc/yum.repos.d/mysql-community-source.repo

Nun noch den MySQL Server installieren und ein root Passwort setzten:

5. Schritt: Icinga 2 Repository einrichten und Installation

Um Icinga 2 auf unserem CentOS 7 Server installieren zu können, muss als erstes das Repository für Icinga hinterlegt werden.
Dafür importieren wir zuerst den Key von Icinga. Damit wird das Repository bzw. die Pakete auf Integrität geprüft. Danach wird mit wget das eigentlich Repository heruntergeladen und in /etc/yum.repos.d/ICINGA-release.repo hinterlegt.

Wurde auch der Cache des Paketmangers erneurt, könne wir erstmal nach dem Paket für Icinga 2 suchen.

icinga-2-paket

Wurde das Paket gefunden, wird dieses mit den dazugehörigen MySQL Paketen installiert.

Nach der erfolgreichen Installation der Pakete kann Icinga aktiviert und gestartet werden

Damit Icinga 2 auch seiner Arbeit nachgehen kann, benötigt es jetzt noch die nötigen Plugins. Diese ruft Icinga 2 auf, um die Checks auszuführen.

6. Schritt: Icinga 2 Datenbank erstellen und anlegen

Nun müssen wir noch eine Datenbank in MySQL anlegen. Dafür loggen wir uns zuerst in den MySQL Server ein:

Jetzt geben wir hier die folgenden MySQL Befehle ein:

Anschließend wird noch das Datenbankschema importiert.

Zu guter letzt überprüfen wir noch, ob der Datenbankzugriff richtig konfiguriert ist ( /etc/icinga2/features-available/ido-mysql.conf).
Das sollte dann so aussehen:

Danach wird Icinga 2 einmal neugestartet

7. Schritt: Icinga Web installieren

Zum Installieren des Webfrontend von Icinga starten wir zuerst den Webserver. Anschließen installieren wir das Webfrontend und die MySQL Schnittstelle.

Anschließend müssen wir den Webserver noch in der lokalen Firewall freigeben.

8. Schritt: Icinga Web Datenbank Installation

Um Icinga Web verwenden zu können, muss noch die Datenbank vorbereitet werden. Dies funktioniert ähnlich wie bei Icinga selbst.

Anschließend wird das System nochmal rebootet.

Nun können wir auf das Webinterface zugreifen und uns mit dem User root und dem Passwort password einloggen.

icinga-2-login

Icinga 2 Login Screen

 

In der Übersicht sehen wir nun, dass schon einige Checks eingerichtet sind und Daten erheben. Diese Checks überprüfen den Icinga 2 Server selbst.

Icinga 2 Frontend

Icinga 2 Frontend

Artikel Update

Am 03.09.2015 wurde die Installation von mariadb mit aufgenommen.

Am 08.09.2015 wurde der autostart von mariadb aufgenommen. (Danke für den Hinweis Pit)

About Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Comments

  1. Hallo Christian,
    Danke für diese hervorragende Anleitung.
    Noch eine kleine Rückmeldung: Nach dem Reboot muss der MariaDB-Server jeweils manuell gestartet werden.
    Ich vermute Du hast vergessen den entscheidenden Befehl zu ergänzen:

    MariaDB für den automatischen Start beim Booten aktivieren:
    # systemctl enable mariadb

    Ansonsten weiter so, wird die ICINGA-Serie fortgeführt (Konfiguration / FrontEnd etc)?

    – Pit

    • Christian Piazzi says:

      Hallo Pit,

      erstmal Danke für dein Kommentar und den Hinweis auf den fehlenden Eintrag.
      Die Icinga Serie werde ich auf jedenfall fortführen. Welche Themen genau noch vorgestellt werden ist allerdings noch offen.
      Bisher habe ich schon den Wunsch für Satellite bekommen. Hast du etwas was dich speziell Interessiert?

      Gruß

      Christian

  2. Gute Anleitung. Es hat alles funktioniert.
    Du solltest noch hinzufügen, dass der HTTP check die Datei index.php im Verzeichnis /var/www/html/ erwartet. Sonst gibt es eine “HTTP WARNING: HTTP/1.1 403 Forbidden” Meldung. Die index.php ist bei einer Erstinstallation von Apache 2.4 nicht vorhanden und muss angelegt werden. Z.B. mit touch /var/www/html/index.php

  3. Tolle Anleitung für mich als CentOS Anfänger. Ich stecke jedoch fest bei der Schemaimport für die Datenbank. Bekomme immer die Meldung das der Pfad nicht existiert.
    Auch die /etc/icinga2/features-available/ido-mysql.conf ist nicht vorhanden.
    Was mache ich falsch??

    • Christian Piazzi says:

      Hallo Thomas,

      hast du die Pakete icinga2-ido-mysql und icinga-idoutils-libdbi-mysql installiert?
      Einfach nochmal prüfen mit: yum install icinga2-ido-mysql icinga-idoutils-libdbi-mysql
      Wenn die Pakete installiert sind, kann man prüfen ob sich möglicherweise der Pfad geändert hat.
      Das kann man mit dem Befehl: locate ido-mysql.conf
      Kann sein das locate auch noch installiert werden muss (yum install mlocate).
      Hat dir das weitergeholfen?

      Gruß

      Christian

  4. Hallo.

    Installation hat wunderbar geklappt. Allerdings kommt alle 5 Sekunden folgende Meldung:

    Anfrage fehlgeschlagen
    Der Server hat einen Fehler festgestellt:
    Internal Exception, check your logs!

    In den Logs steht nicht wirklich was drin.

    Gibts ne Lösung.

    Vielen Dank im Vorraus.

  5. Christin says:

    Hallo, vielen Dank für die tolle Anleitung! Ich habe alles soweit hinbekommen, jedoch verstehe ich etwas nicht. Wie komm ich auf das Webinterface? Bei mir kommt immer nur die Standartseite die mit Apache mitgeliefert wird. Danke für die Hilfe! LG Christin

  6. Hallo Christian,

    bitte gib doch an, unter welchem URL die Icinga2 Website auf dem lokalen Rechner erreichbar sein müsste. Im Verzeichnis /var/www/html (DOCUMENT_ROOT) ist nichts eingetragen, in der Apache2-Konfiguration gibt es nichts außer der Default-Site.

    Bezogen auf die Antwort auf Christins Frage: Was soll denn http://icinga-classicui sein? Da versucht der Browser doch lediglich, auf http://www.icinga2-classicui.com/ zuzugreifen, was natürlich daneben geht.

    Viele Grüße
    Holger

  7. Hallo Christian,

    ich finde deine Anleitung sehr gut, es hat alles soweit funktioniert. Da ich aber ein CentOS und auch ein Icinga Neuling bin habe ich Probleme auf die Weboberfläche zukommen. Könntest du mir diese Schritte genauer erklären? In deiner Anleitung kommt z.B keine IP Adressen Vergabe drin vor, wodurch ich Icinga über einen Internet Explorer aufrufen könnte.
    Ich wäre dir wirklich sehr dankbar wenn du mir helfen kannst, da ich bereits seit Wochen mit diesem Problem kämpfe.

    Viele Dank
    Patrick

  8. @ALLE mit Problemen beim Webseitenaufruf:

    Die icinga-Webseite sollte im Anschluss an diese Anleitung mit http://was.auch.immer/icinga-web aufrufbar sein.

    Ihr werdet nichts unter /var/www/html finden. Unter /etc/httpd/conf.d findet ihr die icinga-web.conf in der die Konfiguration für icinga vorgenommen wird. Aus dieser sollte bei euch allen ersichtlich sein unter welcher Adresse Icinga aufrufbar ist (im Normalfall “icinga-web” welches intern auf /usr/share/icinga-web/pub) zeigt.

    Meine Erwartungshaltung an Administratoren, die dieser Anleitung folgen ist aber schon die, die man versteht was man macht ohne die Befehle einfach der Reihe nach in die Konsole zu hämmern, daher musste ich meinen Kopf leider 3x auf den Tisch hämmern bei Holgers Kommentar (“icinga2-classicui.com/ “).

    Besten Gruß!

Speak Your Mind

*