So installieren Sie Icinga und Icinga Web unter Ubuntu 16.04

Einführung

Icinga ist ein flexibles und leistungsstarkes Open-Source-Überwachungssystem, mit dem der Zustand der vernetzten Hosts und Dienste überwacht wird. Es kann verwendet werden, um die Auslastung und die Betriebszeit eines Clusters von Web-Workern, den freien Speicherplatz auf einem Speichergerät, den Speicherverbrauch bei einem Caching-Dienst usw. zu überwachen. Nach der ordnungsgemäßen Einrichtung bietet Icinga auf einen Blick einen Überblick über den Status einer großen Anzahl von Hosts und Services sowie Benachrichtigungen, die Planung von Ausfallzeiten und die langfristige Speicherung von Leistungsdaten.

Dieses Tutorial behandelt die Installation des Icinga-Kerns, seines Datenbank-Backends und der Icinga-Weboberfläche. Schließlich richten wir eine E-Mail-Benachrichtigung ein, damit Sie Benachrichtigungen in Ihrem Posteingang erhalten, wenn sich ein Dienst schlecht verhält.

Voraussetzungen

Bevor Sie dieses Tutorial starten können, benötigen Sie:

Schritt 1 - Installieren von Icinga

Um die neueste Version von Icinga zu erhalten, müssen wir zuerst ein Software-Repository hinzufügen, das vom Icinga-Team verwaltet wird. Anschließend installieren wir die Software mit "+ apt-get +" und durchlaufen einige Konfigurationsbildschirme, um das Datenbank-Backend von Icinga einzurichten.

Laden Sie zuerst den Signaturschlüssel für das Icinga-Entwicklerpaket herunter und fügen Sie ihn dem "+ apt +" -System hinzu:

curl -sSL https://packages.icinga.com/icinga.key | sudo apt-key add -

Dieser Schlüssel wird verwendet, um die Integrität von Software, die wir aus dem Icinga-Repository herunterladen, automatisch zu überprüfen. Jetzt müssen wir die Repository-Adresse zu einer + apt + Konfigurationsdatei hinzufügen. Öffnen Sie die Datei mit Ihrem bevorzugten Texteditor. In diesem Tutorial verwenden wir "+ nano +":

sudo nano /etc/apt/sources.list.d/icinga.list

Dadurch wird eine neue leere Textdatei geöffnet. Füge folgende Zeile ein:

/etc/apt/sources.list.d/icinga.list

deb https://packages.icinga.com/ubuntu icinga-xenial main

Speichern und schließen Sie die Datei und aktualisieren Sie den Paket-Cache:

sudo apt-get update

+ apt-get + lädt jetzt Informationen aus dem soeben hinzugefügten Repository herunter und stellt die Icinga-Pakete für die Installation zur Verfügung:

sudo apt-get install icinga2 icinga2-ido-mysql

Dadurch wird die Haupt-Icinga-Software zusammen mit einem Datenbankadapter installiert, mit dem Icinga historische Daten und andere Informationen in eine MySQL-Datenbank einfügen kann. Es werden einige Konfigurationsbildschirme für den Datenbankadapter angezeigt:

  1. Ido-MySQL-Funktion von Icinga 2 aktivieren?

  2. Datenbank für icinga2-ido-mysql mit dbconfig-common konfigurieren?

  3. Sie werden dann aufgefordert, ein Icinga-Datenbankkennwort einzurichten. Erstellen Sie ein sicheres Passwort und notieren Sie es für später. Wir werden es für die Einrichtung des Webinterfaces benötigen.

Jetzt müssen wir das Icinga-Datenbank-Backend aktivieren. Der Befehl + icinga2 + kann Funktionen in der Befehlszeile aktivieren und deaktivieren. Während wir gerade dabei sind, werden wir auch die * command * -Funktion aktivieren, mit der wir schließlich manuelle Integritätsprüfungen über die Weboberfläche ausführen können.

sudo icinga2 feature enable ido-mysql command

Starten Sie nun + icinga2 + neu, um die neuen Funktionen zu nutzen:

sudo systemctl restart icinga2

Überprüfen wir abschließend den Status von "+ icinga2 +", um sicherzustellen, dass es ordnungsgemäß ausgeführt wird:

sudo systemctl status icinga2
Output● icinga2.service - Icinga host/service/network monitoring system
  Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)

 Process: 15354 ExecStartPre=/usr/lib/icinga2/prepare-dirs /usr/lib/icinga2/icinga2 (code=exited, status=0/SUCCESS)
Main PID: 15416 (icinga2)
   Tasks: 11
  Memory: 7.7M
     CPU: 488ms
. . .

Wenn Sie "+ Active: active (running) +" sehen, ist Icinga in Betrieb. Nachdem wir das Icinga-Kernsystem und das Datenbank-Backend eingerichtet haben, ist es an der Zeit, das Webinterface in Betrieb zu nehmen.

Schritt 2 - Installieren des Icinga-Webinterface

Der Icinga-Core ist vollständig konfigurierbar und kann ohne Webschnittstelle verwendet werden. Icinga Web bietet jedoch einen übersichtlichen Überblick über den Zustand Ihrer Hosts und Services und ermöglicht es Ihnen, Ausfallzeiten zu planen, Probleme zu erkennen, Integritätsprüfungen manuell auszulösen und Benachrichtigungen zu senden von Ihrem Browser.

Lassen Sie uns Icinga Web mit "+ apt-get" installieren:

sudo apt-get install icingaweb2

Der Rest der Einrichtung von Icinga Web erfolgt in einem Webbrowser. Bevor wir jedoch umschalten, müssen wir eine Einstellung aktualisieren. Für Icinga Web muss eine Zeitzone für die PHP-Umgebung festgelegt werden. Bearbeiten Sie daher die PHP-Konfigurationsdatei:

sudo nano /etc/php/7.0/apache2/php.ini

Wir müssen eine bestimmte Zeile zum Aktualisieren finden. In "+ nano " können wir " STRG-W " drücken, um eine Suchoberfläche aufzurufen. Geben Sie " date.timezone " ein und drücken Sie " ENTER ". Der Cursor bewegt sich auf die Zeile, die aktualisiert werden muss. Kommentieren Sie zuerst die Zeile aus, indem Sie das anfängliche Semikolon "; +" entfernen, und geben Sie dann Ihre richtige Zeitzone ein. + Das richtige Zeitzonenformat finden Sie unter https://secure.php.net/manual/en/timezones.php im Abschnitt zur Zeitzone des PHP-Handbuchs]. Es sollte ungefähr so ​​aussehen, wenn Sie fertig sind:

/etc/php/7.0/apache2/php.ini

date.timezone =

Speichern und schließen Sie die Datei. Starten Sie Apache neu, um Folgendes zu aktualisieren:

sudo systemctl restart apache2

Jetzt ist es an der Zeit, das browserbasierte Icinga-Setup durchzuarbeiten.

Schritt 3 - Einrichten des Icinga Webinterface

Bevor wir für den webbasierten Installationsprozess zu unserem Browser wechseln, müssen wir ein setup-Token erstellen. Dies ist ein Schlüssel, den wir in der Befehlszeile generieren und der uns zur Verwendung des Web-Setup-Tools berechtigt. Wir erstellen diesen Schlüssel mit dem Befehl + icingacli +:

sudo icingacli setup token create

Ein kurzer Token wird gedruckt:

Output

Kopieren Sie das Token in Ihre Zwischenablage, wechseln Sie zu Ihrem Browser und laden Sie die Icinga-Webadresse. Standardmäßig ist dies der Domänenname oder die IP-Adresse Ihres Servers, gefolgt von "+ / icingaweb2 +":

https:///icingaweb2

Ihnen wird ein Konfigurationsbildschirm angezeigt. Fügen Sie das kopierte Token in Ihre Zwischenablage ein und drücken Sie * Weiter *, um den Vorgang zu starten. Es gibt viele Seiten mit Optionen. Wir werden sie nacheinander durchgehen.

Modul-Setup

Auf der zweiten Seite haben Sie die Möglichkeit, einige zusätzliche Module für die Webschnittstelle zu aktivieren. Wir können die Standardeinstellung akzeptieren, dass nur das * Monitoring * -Modul aktiviert wird. Klicke weiter um fortzufahren.

Umgebungsstatus

Die dritte Seite zeigt den Status unserer PHP-Umgebung. Es sollten keine roten Kästchen angezeigt werden, die auf ein Problem oder eine falsche Konfiguration hinweisen. Möglicherweise sehen Sie gelbe Kästchen, in denen angegeben ist, dass PostgreSQL-Module fehlen. Wir können diese ignorieren, da wir MySQL und nicht PostgreSQL verwenden. Klicke weiter um fortzufahren.

Icinga-Webauthentifizierung

Auf der vierten Seite können wir auswählen, wie Icinga-Webbenutzer authentifiziert werden sollen. Wenn Sie einen LDAP-Dienst zur Authentifizierung integrieren möchten, können Sie dies hier auswählen. Wir verwenden die Standardeinstellung "Datenbank", um Benutzer in unserer MySQL-Datenbank zu speichern. Klicke weiter um fortzufahren.

Benutzerdatenbank einrichten

Die fünfte Seite fordert uns auf, eine Datenbank zum Speichern der Benutzerdaten einzurichten. Dies unterscheidet sich von der Datenbank, die wir zuvor während der Befehlszeileninstallation eingerichtet haben.

Die meisten Standardeinstellungen sind in Ordnung, aber wir müssen auch eine Kombination aus Datenbankname und Benutzer / Passwort wählen:

  1. Ressourcenname:

  2. Datenbanktyp:

  3. Wirt:

  4. Hafen:

  5. Name der Datenbank:

  6. Nutzername:

  7. Passwort:

  8. Zeichensatz:

  9. Hartnäckig:

  10. Verwenden Sie SSL:

Drücken Sie * Weiter *, um fortzufahren.

Benutzerdatenbank erstellen

Auf der nächsten Seite wird angegeben, dass Ihre Datenbank nicht vorhanden ist und Sie nicht über die Anmeldeinformationen verfügen, um sie zu erstellen. Geben Sie als Benutzernamen * root * ein, geben Sie das MySQL-Root-Passwort ein und klicken Sie auf * Weiter *, um die Icinga-Webdatenbank und den Benutzer zu erstellen.

Nennen Sie den Authentifizierungsanbieter

Nun müssen wir das gerade erstellte Authentifizierungs-Backend benennen. Der Standardwert * icingaweb2 * ist in Ordnung. Weiter klicken*.

Erstellen Sie ein Administratorkonto

Nachdem wir unsere Benutzerdatenbank eingerichtet haben, können wir unser erstes Icinga-Webadministratorkonto erstellen. Wählen Sie einen Benutzernamen und ein Passwort und klicken Sie auf * Weiter *, um fortzufahren.

Einstellungen und Protokollspeicher

Als Nächstes erhalten Sie Optionen zum Speichern von Benutzereinstellungen und Protokollen. Die Standardeinstellungen sind in Ordnung und speichern die Einstellungen in der Datenbank, während Sie sich bei Syslog anmelden. Drücken Sie * Weiter *, um fortzufahren.

Konfigurationsüberprüfung

Es wird eine Seite angezeigt, auf der Sie alle unsere Konfigurationen überprüfen können. Klicken Sie auf * Weiter *, um die Konfigurationsdetails zu bestätigen und mit der Konfiguration des Überwachungsmoduls fortzufahren.

Einführung in die Überwachungskonfiguration

Jetzt konfigurieren wir das eigentliche Überwachungsmodul für Icinga Web. Klicken Sie zum Starten auf * Weiter *.

Wählen Sie Monitoring Backend

Zunächst wählen wir unser Monitoring-Backend aus. Der Standardname * icinga * und der Typ * IDO * sind in Ordnung. Dies weist darauf hin, dass Icinga Web Informationen aus der * ido-mysql * -Datenbank abruft, die wir zuvor bei der Installation von Dingen in der Befehlszeile konfiguriert haben.

Richten Sie die Überwachungsdatenbank ein

Wir müssen die Verbindungsdetails für die * ido-mysql * -Datenbank eingeben. Wir haben dieses Passwort während der Installation erstellt.

Diese Seite bietet dieselben Optionen wie der Bildschirm zur Einrichtung der Benutzerdatenbank:

  1. Ressourcenname:

  2. Datenbanktyp:

  3. Wirt:

  4. Hafen:

  5. Name der Datenbank:

  6. Nutzername:

  7. Passwort:

  8. Zeichensatz

  9. Hartnäckig:

  10. Verwenden Sie SSL:

Klicke weiter um fortzufahren.

Wählen Sie Command Transport Method

Als Nächstes wird eine Eingabeaufforderung * Command Transport * angezeigt. Auf diese Weise können wir festlegen, wie Icinga Web Befehle an Icinga weiterleitet, wenn wir Integritätsprüfungen in der Weboberfläche manuell ausführen. Die Standardeinstellung für * Local Command File * ist in Ordnung und funktioniert mit der * command * -Funktion, die wir in Schritt 1 aktiviert haben. Klicke weiter um fortzufahren.

Richten Sie die Sicherheit der Überwachungsschnittstelle ein

Auf diese Weise können Sie Daten angeben, die in der Weboberfläche maskiert werden sollen, um zu verhindern, dass potenzielle Betrachter Kennwörter und andere vertrauliche Informationen sehen. Die Standardeinstellungen sind in Ordnung. Drücken Sie * Weiter *, um fortzufahren.

Konfigurationsübersicht des Überwachungsmoduls

Es wird erneut eine Zusammenfassung unserer Konfiguration angezeigt. Klicken Sie auf * Fertig stellen *, um die Einrichtung von Icinga Web abzuschließen. Eine * Glückwunsch! * Nachricht wird geladen.

Klicken Sie auf * Bei Icinga Web 2 anmelden * und melden Sie sich mit Ihrem Administrator-Benutzernamen und Passwort an.

Die Hauptoberfläche von Icinga Web wird geladen. Lernen Sie ein wenig und machen Sie sich mit der Benutzeroberfläche vertraut. Wenn auf Ihrem Server kein Auslagerungsspeicher eingerichtet ist, wird möglicherweise ein rotes Feld * Kritischer Fehler * angezeigt. Wir können dies vorerst ignorieren, oder Sie können * das Problem bestätigen *, indem Sie auf das rote Kästchen klicken, * Bestätigen * in der rechten Spalte auswählen, einen Kommentar ausfüllen und schließlich auf die Schaltfläche * Problem bestätigen * klicken.

Nachdem wir Icinga und Icinga Web eingerichtet haben, richten wir E-Mail-Benachrichtigungen ein.

Schritt 4 - E-Mail einrichten

Die Überwachung ist nicht besonders hilfreich, wenn Sie keine Benachrichtigungen erhalten, wenn ein Fehler auftritt. Die Standardkonfiguration von Icinga enthält einige Skripts, mit denen Sie einen Administrator per E-Mail benachrichtigen können. Sie müssen jedoch E-Mail auf unserem Server einrichten, bevor sie funktionieren. Die einfachste Möglichkeit besteht darin, ein Programm mit dem Namen "+ ssmtp +" zu verwenden, um die gesamte Mail des Servers über einen Standard-SMTP-Server weiterzuleiten.

Installieren Sie zuerst + ssmtp + und einige Hilfsprogramme für E-Mails:

sudo apt-get install ssmtp mailutils

Und jetzt bearbeiten wir die Konfigurationsdatei "+ ssmtp +" mit unseren SMTP-Details. Diese sollten von Ihrem Internetdienstanbieter, E-Mail-Anbieter oder der IT-Abteilung bereitgestellt werden. Sie benötigen einen Benutzernamen, ein Passwort und die Adresse Ihres SMTP-Servers:

sudo nano /etc/ssmtp/ssmtp.conf

In der Datei ist eine Konfiguration vorhanden. Löschen Sie es und ersetzen Sie es durch dieses grundlegende Setup, das mit den meisten SMTP-Servern funktionieren sollte:

/etc/ssmtp/ssmtp.conf

mailhub=:465
UseTLS=yes
FromLineOverride=yes
AuthUser=
AuthPass=

Speichern und schließen Sie die Datei. Verwenden Sie zum Testen der Verbindung den Befehl + mail +:

echo "" | mail -s ""

Sie sollten in Kürze eine E-Mail in Ihrem Posteingang sehen. Jetzt müssen wir ein paar Einstellungen aktualisieren, damit Icinga E-Mails senden kann.

Schritt 5 - Einrichten und Testen von Benachrichtigungen

Damit E-Mail-Benachrichtigungen funktionieren, aktualisieren Sie die E-Mail-Adresse, an die Icinga sendet:

sudo nano /etc/icinga2/conf.d/users.conf

Ändern Sie die Zeile "+ email +" in die Adresse, unter der Sie Benachrichtigungen erhalten möchten:

/etc/icinga2/conf.d/users.conf

. . .
email = ""
. . .

Starten Sie Icinga ein letztes Mal neu:

sudo systemctl restart icinga2

Der * icinga-master * -Host ist bereits so konfiguriert, dass bei Problemen Benachrichtigungen gesendet werden. Lassen Sie uns ein Problem verursachen und sehen, was passiert. Wir verwenden den Befehl "+ stress +", um die Systemlast zu erhöhen und eine Warnung auszulösen.

Installieren Sie + stress:

sudo apt-get install stress

+ stress + kann Last, Festplatten-E / A, Arbeitsspeicher und andere Systemmetriken manipulieren. Die Icinga-Standardkonfiguration löst eine Warnung aus, wenn die Systemlast mehr als fünf beträgt. Lassen Sie uns das jetzt veranlassen:

stress --cpu 6

Wechseln Sie zurück zur Icinga-Weboberfläche, und die * load * -Metrik steigt langsam an. Nach einigen Überprüfungen wird der Status soft * Warning * angezeigt. Soft bedeutet, dass die Prüfung noch einige Male fehlschlagen muss, bevor sie als harter Zustand gewertet wird. Zu diesem Zeitpunkt werden Benachrichtigungen gesendet. Dies soll verhindern, dass Benachrichtigungen für vorübergehende Probleme gesendet werden, die sich schnell selbst beheben lassen.

Warten Sie, bis die Warnung einen harten Status erreicht hat, und senden Sie die Benachrichtigung. Sie sollten eine E-Mail mit den Details erhalten, was schief geht.

Drücken Sie + STRG-C +, um den Befehl + stress + zu beenden. Die Systemlast wird relativ schnell wiederhergestellt und auf der Icinga-Weboberfläche auf "OK" zurückgesetzt. Sie erhalten auch eine weitere E-Mail, in der Sie darüber informiert werden, dass das Problem behoben ist.

Fazit

In diesem Tutorial haben wir Icinga und Icinga Web erfolgreich eingerichtet, einschließlich der E-Mail-Benachrichtigungsfunktion von Icinga. Derzeit überwachen wir jedoch nur den Icinga-Host selbst. Fahren Sie mit unserem nächsten Tutorial How To Monitor Hosts and Services fort mit Icinga auf Ubuntu 16.04, wo wir die Fernüberwachung einrichten werden.