So installieren Sie das Icinga 2 Monitoring Tool unter Debian 9

In diesem Leitfaden wird erläutert, wie Sie das neueste Icinga 2 Web-Monitoring-Tool in Debian 9.2 installieren und konfigurieren, um alle wichtigen Geräte der Netzwerkinfrastruktur zu überwachen, wie z.B. physische oder virtuelle Server oder VMs, Router, Switches, Firewall-Appliances und andere Netzwerk-IoT-Geräte. Es kann auch den Zustand von Netzwerkprotokollen wie HTTP, FTP, SMTP, IMAP oder anderen Netzwerkdiensten, Host-Ressourcen, physikalischen Sensoren sowie Software, CPU-Last, Speicher, Festplattenspeicher usw. und fast allen miteinander verbundenen Netzwerkgeräten über ICMP- oder Ping-Anfragen überwachen.

Icinga, ursprünglich ein Teil des Nagios-Monitoringsystems, ist eine moderne Open-Source-Netzwerküberwachungsanwendung, die in PHP geschrieben und unter Linux unter Apache/Nginx, PHP und MySQL/MariaDB-Komponenten, auch bekannt als LAMP- oder LEMP-Stacks, stark eingesetzt wird. Icinga 2 kann konfiguriert werden, um System- oder Netzwerkadministratoren per E-Mail, SMS, Chat oder anderen Arten von Warnmeldungen über Netzwerk-, System-, Dienst- oder andere damit zusammenhängende Netzwerkausfälle zu informieren und kann auch Grafiken über Netzwerkausfallzeiten oder -leistungen generieren.

Anforderungen

  • Debian 9 wird auf einem Bare-Metal-Rechner oder auf einem Virtual Private Server installiert.
  • Eine der Netzwerkkarten des Servers, die mit einer statischen IP-Adresse konfiguriert ist.
  • Direkter Zugriff auf das Root-Konto über die Konsole oder remote über den SSH-Dienst oder die sudo Root-Privilegien auf einem lokalen oder Remote-Konto.
  • Ein Domainname, privat oder öffentlich, je nach Ihrer Bereitstellung, mit den richtigen DNS-Einträgen, die für Webdienste konfiguriert sind.
  • Ein Mail-Service, der bei Ihnen vor Ort richtig konfiguriert ist, um Mail-Alarme zu versenden.

Erstkonfiguration

Bevor Sie mit der Installation und Konfiguration von Icinga 2 Web Monitoring Tool auf Ihrem eigenen Server beginnen, stellen Sie zunächst sicher, dass das System alle Softwareanforderungen für die Kompilierung und Installation der Anwendung erfüllt.

apt update
apt upgrade

Führen Sie im nächsten Schritt den folgenden Befehl aus, um einige notwendige Dienstprogramme zu installieren, die zur weiteren Verwaltung Ihres Systems von der Befehlszeile aus verwendet werden.

apt install wget bash-completion unzip

Als nächstes richten Sie den Hostnamen für Ihr System ein, indem Sie den folgenden Befehl ausführen. Ersetzen Sie Ihre Hostnamen-Variable entsprechend.

hostnamectl set-hostname icinga

Überprüfen Sie den Hostnamen und die Hosts-Datei des Computers, indem Sie die folgenden Befehle ausführen.

hostnamectl
cat /etc/hostname
hostname –s

Set system hostname

Schließlich starten Sie den Debian-Server neu, um Kernel-Updates anzuwenden und den Hostnamen korrekt zu ändern.

init 6

Icinga 2 ist eine Netzwerküberwachungsanwendung, die über das Web konfiguriert werden kann und deren Funktionalität hauptsächlich auf der serverseitigen Programmiersprache PHP basiert. Um die PHP-Dateiskripte der Anwendung auszuführen, muss ein Webserver, wie beispielsweise der Apache HTTP-Server, und ein PHP-Verarbeitungs-Gateway im System installiert und betriebsbereit sein. Um den Apache Webserver und den PHP-Interpreter sowie alle erforderlichen PHP-Module zu installieren, die Icinga für die ordnungsgemäße Ausführung benötigt, geben Sie den folgenden Befehl in Ihrer Serverkonsole ein.

apt install apache2 libapache2-mod-php7.0 php7.0-xml php7.0-opcache php7.0-xml php7.0-mbstring php7.0-json php7.0-curl php7.0-ldap php7.0-cli php7.0-gd php7.0-intl php7.0-readline

Nachdem Apache und PHP installiert wurden, testen Sie, ob der Webserver läuft und warten Sie auf Netzwerkverbindungen auf Port 80, indem Sie den folgenden Befehl mit root-Rechten ausführen.

netstat –tlpn

Falls das netstat-Netzwerkdienstprogramm in Ihrem Debian-System nicht standardmäßig installiert ist, führen Sie den folgenden Befehl aus, um es zu installieren.

apt install net-tools

Wenn Sie sich die Ausgabe des netstat-Befehls ansehen, sehen Sie, dass der Apache-Webserver auf Port 80 auf eingehende Netzwerkverbindungen wartet. Für die gleiche Aufgabe können Sie auch den Befehl ss verwenden, der unter Debian 9 standardmäßig automatisch installiert wird.

ss- tulpn

Wenn Sie eine Firewall in Ihrem System aktiviert haben, z.B. eine UFW-Firewall-Anwendung, sollten Sie eine neue Regel hinzufügen, damit der HTTP-Verkehr die Firewall passieren kann, indem Sie den folgenden Befehl ausführen.

ufw allow WWW

oder

ufw allow 80/tcp

Wenn Sie iptables Rohregeln verwenden, um Firewall-Regeln in Ihrem Debian-Server zu verwalten, fügen Sie die folgende Regel hinzu, um eingehenden Datenverkehr auf Port 80 auf der Firewall zu erlauben, so dass Besucher die Icinga2-Webschnittstelle durchsuchen können.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

Als nächstes aktivieren und wenden Sie die folgenden Apache-Module an, die zum Umleiten von HTTP-Verbindungen zu HTTPS verwendet werden, indem Sie den folgenden Befehl ausführen.

a2enmod rewrite
systemctl restart apache2

Testen Sie abschließend, ob die Standardwebseite des Apache Webservers in den Browsern Ihres Clients angezeigt werden kann, indem Sie die IP-Adresse Ihres Debian-Rechners oder Ihren Domänennamen oder Server FQDN per HTTP-Protokoll besuchen. Wenn Sie die IP-Adresse Ihrer Maschine nicht kennen, führen Sie ifconfig oder ip a Befehle aus, um die IP-Adresse Ihres Servers preiszugeben. Die Standard-Apache-Seite für Debian wird in Ihrem Browser angezeigt, wie im folgenden Screenshot gezeigt.

http://your_domain.tld

Apache Debian Standardseite

Um auf die Icinga 2 Überwachungsanwendung über das HTTPS-Protokoll zuzugreifen, das den Datenverkehr für Ihre Kunden sichert, geben Sie den folgenden Befehl aus, um das Apache Webserver-SSL-Modul und die SSL-Standortkonfigurationsdatei zu aktivieren. Aktivieren Sie auch das Apache Umschreibmodul, um Benutzer zu zwingen, die Schnittstelle über HTTPS zu besuchen.

a2enmod ssl rewrite
a2ensite default-ssl.conf

Als nächstes öffnen Sie die Apache Standard-SSL-Site-Konfigurationsdatei mit einem Texteditor und aktivieren Sie die URL-Rewrite-Regeln, indem Sie die folgenden Codezeilen hinzufügen nach DocumentRoot Direktive, wie im folgenden Beispiel gezeigt:

nano /etc/apache2/sites-enabled/default-ssl.conf

Auszug aus der Konfigurationsdatei der SSL-Site:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Nehmen Sie auch die folgende Änderung an der VirtualHost-Zeile vor, um wie im folgenden Auszug dargestellt auszusehen:

        <VirtualHost *:443>

SSL Virtual Host Konfiguration

Schließen Sie die TLS Apache-Datei und öffnen Sie die Datei /etc/apache2/sites-enabled/000-default.conf zur Bearbeitung und fügen Sie die gleichen URL-Rewrite-Regeln hinzu wie bei der SSL-Konfigurationsdatei. Fügen Sie die Codezeilen nach der DocumentRoot-Anweisung ein, wie im folgenden Beispiel gezeigt.

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Apache Standard-Vhostdatei bearbeiten

Starten Sie schließlich den Apache-Daemon neu, um alle bisher konfigurierten Regeln anzuwenden und Ihre Domäne über das HTTP-Protokoll zu besuchen. Da Sie das von Apache bei der Installation automatisch ausgestellte selbstsignierte Zertifikatspaar verwenden, sollte im Browser eine Fehlermeldung angezeigt werden, wie im folgenden Screenshot zu sehen ist.

systemctl restart apache2

https://yourdomain.tld

SSL-Warnung

Akzeptieren Sie die Warnung, um fortzufahren und über das HTTPS-Protokoll auf die Standardwebseite des Apache weitergeleitet zu werden. Die folgende Seite wird in Ihrem Browser angezeigt.

SSL-verschlüsselte Webseite

Falls die UFW-Firewall-Anwendung eingehende Netzwerkverbindungen zum HTTPS-Port blockiert, sollten Sie eine neue Regel hinzufügen, damit der HTTPS-Verkehr die Firewall passieren kann, indem Sie den folgenden Befehl ausführen.

ufw allow 'WWW Full'

oder

ufw allow 443/tcp

Wenn iptables die Standard-Firewall-Anwendung ist, die zum Schutz Ihres Debian-Systems auf Netzwerkebene installiert ist, fügen Sie die folgende Regel hinzu, um eingehenden Datenverkehr auf Port 443 in der Firewall zu erlauben, so dass Besucher Ihren Domänennamen durchsuchen können.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

Im nächsten Schritt müssen wir einige weitere Änderungen an der PHP-Standardkonfigurationsdatei vornehmen, um sicherzustellen, dass die folgenden PHP-Variablen aktiviert sind und die PHP-Zeitzoneneinstellung korrekt konfiguriert ist und Ihrem geografischen Standort des Systems entspricht. Öffnen Sie die Datei /etc/php/7.0/apache2/php.ini zur Bearbeitung und stellen Sie sicher, dass die folgenden Zeilen wie folgt aufgebaut sind. Machen Sie auch zunächst ein Backup der PHP-Konfigurationsdatei.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Suchen, bearbeiten und ändern Sie die folgenden Variablen in der Konfigurationsdatei php.ini:

php_value max_execution_time 300
php_value memory_limit 128M
php_value max_input_time 300
date.timezone = Europe/London

Ersetzen Sie die Zeitzone Variable entsprechend Ihrer physischen Zeit, indem Sie die Liste der Zeitzonen in PHP-Dokumenten unter folgendem Link einsehen: http://php.net/manual/en/timezones.php

Wenn Sie die Ladegeschwindigkeit Ihrer Webseiten über das für PHP7 verfügbare OPCache Plugin erhöhen möchten, fügen Sie die folgenden OPCache Einstellungen am Ende der Konfigurationsdatei des PHP-Interpreters an, wie unten beschrieben:

opcache.enable=1 
opcache.enable_cli=1 
opcache.interned_strings_buffer=8 
opcache.max_accelerated_files=10000 
opcache.memory_consumption=128 
opcache.save_comments=1
opcache.revalidate_freq=1

Schließen Sie die Konfigurationsdatei php.ini und prüfen Sie, ob das Ende der PHP-Konfigurationsdatei überprüft wird, um zu überprüfen, ob die Variablen korrekt hinzugefügt wurden, indem Sie den folgenden Befehl ausführen.

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

Nachdem Sie die oben beschriebenen Änderungen vorgenommen haben, starten Sie den Apache-Daemon neu, um die neuen Änderungen durch Ausführen des folgenden Befehls anzuwenden.

systemctl restart apache2

Erstellen Sie schließlich eine PHP-Infodatei, indem Sie den folgenden Befehl ausführen und überprüfen Sie, ob die PHP-Zeitzone korrekt konfiguriert wurde, indem Sie die PHP-Info-Skriptdatei von einem Browser aus unter der folgenden URL aufrufen, wie im folgenden Bild gezeigt. Scrollen Sie nach unten zur Datumseinstellung, um die Konfiguration der php-Zeitzone zu überprüfen.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

https://domain.tld/info.php

PHPINFO-Ausgabe

Icinga 2 speichert Benutzer, Kontakte und andere gesammelte Daten in einer bestimmten RDBMS-Datenbank, wie MySQL, SQLite oder PostgreSQL. In diesem Leitfaden konfigurieren wir Icinga mit MariaDB-Datenbank, einem Fork der MySQL-Datenbank, als Backend. Geben Sie den folgenden Befehl ein, um die MariaDB-Datenbank zu installieren und das PHP-Modul, das für den Zugriff auf die mysql-Datenbank benötigt wird.

apt install mariadb-server mariadb-client php7.0-mysql

Nachdem Sie MariaDB installiert haben, überprüfen Sie, ob der Daemon läuft und lauscht auf Verbindungen auf localhost, Port 3306, indem Sie netstat oder den Befehl ss ausführen.

netstat –tlpn | grep mysql

Melden Sie sich dann in der MySQL-Konsole an und sichern Sie das MariaDB-Rootkonto, indem Sie die folgenden Befehle ausführen.

mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit

Nun sichern wir die MariaDB, indem wir das Skript mysql_secure_installation ausführen, das von den Installationspaketen aus den Debian-Repositories bereitgestellt wird. Während der Ausführung stellt das Skript eine Reihe von Fragen zur Sicherung der MariaDB-Datenbank, wie z.B.: Änderung des MySQL-Root-Passworts, Entfernung anonymer Benutzer, Deaktivierung von Remote-Root-Logins und Löschen der Testdatenbank. Führen Sie das Skript aus, indem Sie den folgenden Befehl ausführen und versichern Sie sich, dass Sie alle Fragen mit Ja beantworten, um den MySQL-Daemon vollständig zu schützen. Verwenden Sie die folgende Skriptausgabe außer als Leitfaden.

sudo mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
 SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
You already have a root password set, so you can safely answer 'n'.
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

Um die MariaDB-Sicherheit zu testen, versuchen Sie, sich von der Konsole aus ohne Root-Passwort in die Datenbank einzuloggen. Der Zugriff auf die Datenbank sollte verweigert werden, wenn kein Passwort für das Root-Konto angegeben ist. Wenn das Passwort angegeben wird, sollte der Anmeldevorgang für die MySQL-Konsole freigegeben werden, wie im folgenden Screenshot gezeigt.

mysql -h localhost -u root
mysql -h localhost -u root –p

MariaDB Login Test

Als nächstes melden Sie sich bei der MariaDB-Datenbankkonsole an und erstellen Sie zunächst eine Datenbank, die von der Icinga2-Anwendung verwendet werden soll, und einen Benutzer mit einem Passwort, das zur Verwaltung dieser Datenbank verwendet wird, indem Sie die folgenden Befehle ausführen. Ersetzen Sie diesen Datenbanknamen, Benutzer und Passwort entsprechend.

mysql –u root -p
create database icingadb;
grant all privileges on icingadb.* to 'icinga_user'@'localhost' identified by 'icinga_pass';
flush privileges 
exit

Erstellen Sie Icinga Datenbankbenutzer

Als nächstes erstellen Sie eine zweite MySQL-Datenbank, die verwendet wird, um Benutzer, Gruppen und andere benutzerdefinierte Daten der Icinga2-Weboberfläche zu speichern, indem Sie die folgenden Befehle ausführen. Stellen Sie außerdem, wie bei der obigen Datenbank, sicher, dass Sie den Datenbanknamen und die Anmeldeinformationen entsprechend ersetzen und ein starkes Passwort für den Datenbankbenutzer wählen.

mysql –u root –p
create database icinga_users;
grant all privileges on icinga_users.* to 'icinga_user'@'localhost' identified by 'icinga_pass';
flush privileges 
exit

Erstellen einer zweiten Icinga-Datenbank

Um alle bisher vorgenommenen Änderungen zu übernehmen, starten Sie die MySQL- und Apache-Daemonen neu und überprüfen Sie, ob die Daemonen laufen, indem Sie die folgenden Befehle ausführen.

systemctl restart mysql apache2
systemctl status mysql apache2

Icinga 2 installieren

Nachdem alle Systemanforderungen für die Installation unserer Web-Monitoring-Anwendung erfüllt sind, fahren Sie mit der Installation der Anwendung zusammen mit dem MySQL-Modul fort, das für den Zugriff auf die MySQL-Datenbank erforderlich ist, indem Sie den folgenden Befehl ausführen. Icinga 2 hat vorkompilierte Binärpakete, die von Debian 9-Repositories angeboten werden. Die Installation erfolgt über den Debian 9 apt Paketmanager.

apt install icinga2 icinga2-ido-mysql

Während der Installation von Icinga2 vorkompilierten Binärdateien aus Debian 9-Repositories erscheint auf Ihrem Bildschirm eine Reihe von Eingabeaufforderungen, um die Anwendung zu konfigurieren. Bei der ersten Eingabeaufforderung werden Sie gefragt, ob Sie Icinga 2 konfigurieren und für die Verwendung des MySQL-Moduls aktivieren möchten. Wählen Sie Ja aus der Eingabeaufforderung und drücken Sie die Taste[enter], um fortzufahren, wie im unteren Bild gezeigt.

Icinga 2 mit MySQL installieren

In der nächsten Eingabeaufforderung werden Sie gefragt, ob Sie die Datenbank für icinga2-ido-mysql mit der Option dbconfig-common konfigurieren möchten. Wählen Sie Nein aus der Eingabeaufforderung und drücken Sie die Taste[enter], um die Installation von Icinga 2 abzuschließen.

dbconfig common verwenden

Nachdem Icinga 2 installiert wurde, starten Sie den Daemon Icinga 2 und überprüfen Sie den Dienststatus, indem Sie die folgenden Befehle ausführen.

systemctl start icinga2.service
systemctl status icinga2.service

Im nächsten Schritt installieren Sie die Pakete Icinga 2 Web-Interface und Kommandozeilen-Utility von Debian 9 mit Hilfe des folgenden Befehls.

apt install icingaweb2 icingacli

Bevor Sie mit der Konfiguration von Icinga 2 aus dem Web beginnen, starten Sie den Icinga 2-Daemon neu, um alle Änderungen zu übernehmen und den Applikationsstatus durch Ausführen des folgenden Befehls zu überprüfen.

systemctl restart icinga2.service
systemctl status icinga2.service

Entfernen Sie anschließend die vom Apache Webserver installierte Standarddatei index.html in den Webroot-Pfad und löschen Sie auch die zuvor erstellte Datei info.php.

rm /var/www/html/index.html
rm /var/www/html/info.php

Installieren Sie nun das MySQL-Schema für die Icinga-Datenbank, indem Sie den folgenden Befehl ausführen. Das MySQL-Datenbankschema befindet sich im Verzeichnis /usr/share/icinga2-ido-mysql/schema/.

mysql -u root icingadb -p < /usr/share/icinga2-ido-mysql/schema/mysql.sql

Um die Installation von Icinga 2 aus dem Web durchzuführen, erzeugen Sie ein Installationstoken mit dem folgenden Befehl. Notieren Sie sich diesen Token, denn wir werden ihn später auf Anfrage im Webinterface schreiben.

icingacli setup token create

Installationstoken generieren

Falls Sie diesen Token später nicht mehr finden können, können Sie den folgenden Befehl ausführen, um den erzeugten Token anzuzeigen.

icingacli setup token show

Icinga-Setup-Token erstellen

Fahren Sie nun mit der Installation der Icinga2-Webschnittstelle fort, indem Sie einen Browser öffnen und die IP-Adresse oder den Domänennamen Ihres Servers per HTTP-Protokoll zu der folgenden URL navigieren.

http://your_domain.tld/icingaweb2/setup

Auf dem ersten Installationsbildschirm werden Sie aufgefordert, das zuvor generierte Token aufzuschreiben, um den Installationsprozess zu starten, wie im folgenden Screenshot gezeigt. Nachdem Sie Ihren Token hinzugefügt haben, klicken Sie auf die Schaltfläche Weiter, um mit dem Installationsprozess fortzufahren.

Icinga Web-Installer

Auf dem nächsten Installationsbildschirm werden Sie aufgefordert, einige Module für die Icinga 2 Webinstallation zu aktivieren. Wählen Sie Dokument- und Überwachungsmodule aus und klicken Sie auf die nächste Schaltfläche, um fortzufahren, wie im unteren Bild dargestellt.

Dokument- und Überwachungsmodul aktivieren

Als nächstes wird der Icinga2 Web-Installer eine Reihe von System- und PHP-Modulprüfungen durchführen, um festzustellen, ob alle Anforderungen erfüllt sind, um mit dem Installationsprozess fortzufahren. Scrollen Sie nach unten zur Liste aller erforderlichen PHP-Module, die installiert und richtig konfiguriert sind, und drücken Sie die Schaltfläche Weiter, um zum nächsten Installationsabschnitt zu gelangen, wie in den folgenden Bildern gezeigt.

Icinga 2 Voraussetzungsprüfung

Icinga 2 Voraussetzung prüfen Teil zwei

Wählen Sie auf dem nächsten Bildschirm Datenbank als Authentifizierungs-Backend-Methode für Icinga Web 2 und klicken Sie auf die Schaltfläche Weiter, um fortzufahren.

Datenbank-Authentifizierung verwenden

Fügen Sie im nächsten Schritt den Namen der Icinga 2 Web MySQL-Datenbank und die Zugangsdaten für diese Datenbank hinzu. Diese Datenbank wird für die Speicherung von Benutzern und Gruppen der Icinga 2 Weboberfläche verwendet. Verwenden Sie die Datenbankinformationen für die zweite, zuvor erstellte Datenbank. Hinzufügen icingaweb_db Aktivieren Sie nicht die Optionen Persistent und SSL und klicken Sie auf die Schaltfläche Konfiguration validieren, um die Datenbankverbindung zu validieren, wie im folgenden Bild gezeigt. Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Weiter, um zum nächsten Abschnitt des Installers zu gelangen.

Icinga 2 Datenbankverbindung

Legen Sie nun einen Namen für die gesicherte Datenbank-Authentifizierung fest und klicken Sie auf die Schaltfläche Weiter, um fortzufahren, wie im folgenden Screenshot gezeigt.

Name für Datenbank-Authentifizierung gesichert

Geben Sie auf dem nächsten Bildschirm einen administrativen Benutzernamen für die Verwaltung der Icinga2-Webschnittstelle ein und wählen Sie ein sicheres Passwort für dieses Konto. Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Weiter, um zum nächsten Installationsbildschirm zu gelangen.

Admin-Benutzername auswählen

Konfigurieren Sie die Icinga-Anwendungs- und Protokollierungskonfiguration mit den folgenden Einstellungen und wenn Sie mit der Schaltfläche Weiter fertig sind, um fortzufahren.

  • Aktivieren Sie Show Stacktraces anzeigen.
  • Speichertyp = Datenbank
  • Protokollierungsart = Datei
  • Protokollierungsstufe = Fehler
  • Dateipfad = /var/log/icingaweb2/icingaweb2.log

Konfiguration der Icinga-Anwendung und Protokollierung der Konfiguration

Auf dem nächsten Bildschirm wird Ihnen eine Meldung angezeigt, dass Icinga Web2 erfolgreich konfiguriert wurde, und ein detaillierter Bericht zeigt alle bisher vorgenommenen Konfigurationen an. Überprüfen Sie den Bericht und klicken Sie auf die Schaltfläche Weiter, um zum nächsten Installationsabschnitt zu gelangen.

Das Web-Interface wurde erfolgreich konfiguriert.

Klicken Sie auf die Schaltfläche Weiter, um mit der Konfiguration des Überwachungsmoduls Icinga 2 fortzufahren, wie im unteren Bild gezeigt.

Konfiguration des Überwachungsmoduls Icinga 2

Auf dem nächsten Bildschirm fügen Sie einen Namen für Icinga2 Backend hinzu, wählen Sie IDO als Backend-Typ und klicken Sie auf die Schaltfläche Next, um fortzufahren.

Name für Icinga2 Backend

Gehen Sie zurück zur Serverkonsole, öffnen und bearbeiten Sie die Icinga MySQL IDO-Konfigurationsdatei und fügen Sie Icinga-Datenbank-Anmeldeinformationen (die ersten Datenbankinformationen) hinzu, wie im folgenden Beispiel gezeigt.

nano /etc/icinga2/features-enabled/ido-mysql.conf

ido-mysql.conf Dateiauszug:

library "db_ido_mysql"
 
object IdoMysqlConnection "ido-mysql" {
  user = "icinga_user",
  password = "icinga_pass",
  host = "localhost",
  database = "icingadb"
}

ido-mysql.conf Datei

Speichern Sie die Datei und starten Sie den Icinga2-Daemon neu, um die Einstellungen anzuwenden, indem Sie den folgenden Befehl ausführen. Gehen Sie anschließend zurück zur Icinga-Weboberfläche und setzen Sie den Installationsprozess fort.

systemctl restart icinga2.service

Fügen Sie Icinga-Datenbankinformationen hinzu, um die IDO-Ressourcenumgebung einzurichten. Verwenden Sie die Datenbankinformationen für die erste erstellte Datenbank, wie im folgenden Bild dargestellt. Nachdem Sie die Bearbeitung der Datenbankinformationen abgeschlossen haben, klicken Sie auf die Schaltfläche Konfiguration validieren, um die Icinga Monitoring IDO-Ressource zu validieren, und klicken Sie auf die Schaltfläche Weiter, um zum nächsten Installationsbildschirm zu gelangen.

Einrichten der Überwachungsdatenbank

Konfigurieren Sie Icinga Command Transport mit den folgenden Einstellungen und klicken Sie zum Fortfahren auf die Schaltfläche Next.

  • Transportname = icinga2
  • Transporttyp = Lokale Kommandodatei
  • Befehlsdatei = /var/run/icinga2/cmd/icinga2.cmd

Icinga Command Transport konfigurieren

Auf dem nächsten Bildschirm belassen Sie die Standardvariablen, die für die Sicherheitsüberwachung konfiguriert sind, wie in der Abbildung unten gezeigt, und drücken Sie die Schaltfläche Weiter, um fortzufahren.

Überwachung der Sicherheit

Auf dem nächsten Bildschirm wird Ihnen eine neue Meldung angezeigt, dass das Icinga2 Monitoring-Modul erfolgreich konfiguriert wurde. Überprüfen Sie den angezeigten Bericht, um zu überprüfen, ob alles korrekt konfiguriert ist, und drücken Sie die Schaltfläche Fertigstellen, um die Installation abzuschließen.

Das Icinga2 Überwachungsmodul wurde erfolgreich konfiguriert.

Nachdem der Installationsvorgang erfolgreich abgeschlossen wurde, erhalten Sie eine Glückwunschmeldung, dass Icinga Web 2 erfolgreich installiert wurde. Klicken Sie auf den Login-Link, um zur Icinga2-Login-Seite weitergeleitet zu werden.

Zur Login-Seite von Icinga 2 gehen

Melden Sie sich mit den während des Installationsvorgangs konfigurierten Anmeldeinformationen bei Icinga Web 2 an, und Sie werden zum Icinga Web 2 Dashboard weitergeleitet, wo Sie eine Liste der aktuell überwachten Dienste und Systemressourcen Ihres Servers sehen.

Icinga Login

Icinga 2 Dashboard

Melden Sie sich anschließend erneut in der Befehlszeile des Servers an und führen Sie die folgenden Befehle aus, um sicherzustellen, dass Icinga Web 2-Protokolle erstellt werden.

mkdir -p /var/log/icingaweb2/
chgrp -R icingaweb2 /var/log/icingaweb2/
chmod -R 775 /var/log/icingaweb2/

Um Besucher zu zwingen, die Icinga Web 2-Schnittstelle über das HTTPS-Protokoll zu durchsuchen, erstellen Sie eine neue.htaccess-Datei in Ihrem Dokumentenstammpfad des Webservers mit folgendem Inhalt.

nano /var/www/html/.htaccess

.htaccess Dateiauszug:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L] 
</IfModule>
 
RewriteEngine on
Options -Indexes

Das ist alles! Sie haben die Netzwerküberwachungsanwendung Icinga 2 unter Debian 9.2 erfolgreich installiert und konfiguriert. Da der Apache HTTP-Server jedoch selbstsignierte Zertifikate verwendet, um den Datenverkehr zwischen dem Server und dem Browser des Clients zu verschlüsseln, wird bei jedem Zugriff auf Ihre Domain eine Warnmeldung generiert und in Ihrem Browser angezeigt. In diesem Fall sollten Sie ein von einer vertrauenswürdigen Zertifizierungsstelle ausgestelltes Zertifikat kaufen oder ein kostenloses Zertifikatspaar von Let’s Encrypt CA erhalten.

Weitere kundenspezifische Konfigurationen zu Icinga 2 finden Sie auf der Dokumentationsseite unter folgender Adresse: https://www.icinga.com/docs

Das könnte dich auch interessieren …