Icinga 2 Monitoring Software auf Ubuntu 20.04 LTS installieren

Wer hier gelandet ist, braucht bestimmt keine Erklärung mehr was icinga 2 ist aber für alle verirrten ein paar kurze Worte.
Bei Icinga 2 handelt es sich um eine Monitoring Software die im 2009 als Fork von Nagios entstanden ist. Mit Icinga2 lässt sich das ganze Netzwerk überwachen und das sogar als HA-Cluster.
In diesem Tutorial installieren wir Icinga2 und die Weboberfläche IcingaWeb 2.
Anforderungen
1. Repository hinzufügen
Damit wir Icinga2 direkt aus dem Repository von Icinga beziehen können. Erstellen wir uns hierfür eine neue Liste. Wir machen dies, um auf dem neusten Stand zu sein und auch zu bleiben.
GPG Key von Icinga 2 hinzufügen
curl https://packages.icinga.com/icinga.key | apt-key add -
Neue Source-Liste erstellen
cd /etc/apt/sources.list.d/
vi icinga.list
Diese Konfiguration einfügen
deb http://packages.icinga.com/ubuntu icinga-focal main
deb-src http://packages.icinga.com/ubuntu icinga-focal main
speichern und verlassen
2. Icinga2 und Monitoring Plugins installieren
Wir können nun Icinga2 über apt aus der korrekten Source installieren. apt update darf an dieser Stelle nicht vergessen werden, da ansonsten Icinga 2 aus der Quelle von Ubuntu bezogen wird.
sudo apt update
sudo apt install icinga2 monitoring-plugins
3. Icinga2 starten
systemctl start icinga2
systemctl enable icinga2
systemctl enable aktiviert den AutoStart für Icinga2, so das es bei jedem Neustart auch von alleine wieder gestartet wird.
Es empfiehlt sich noch kurz den Status zu überprüfen mit
systemctl status icinga2
4. MySQL Datenbank Server installieren
Damit unser Monitoring auch die Daten irgendwo hinschreiben kann, benötigen wir eine Datenbank. Diese können wir einfach über apt installieren.
sudo apt install mysql-server mysql-client
5. Datenbank Server starten
systemctl start mysql
systemctl enable mysql
6. Datenbank Server konfigurieren
Im Momentanen Zustand können wir mit dem Datenbank Server noch nicht all zu viel Anfangen. Mit dem Konfigurationsassistenten erstellen wir uns nun einen Zugang.
mysql_secure_installation
Die Fragen können alle mit Y beantwortet werden. Passwort muss sicher sein!
Press y|Y for Yes, any other key for No:
Please set the password for root here.
New password:
Re-enter new password:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
7. MySQL Modul installieren
sudo apt install icinga2-ido-mysql
Fragen beantworten
Es wurde nun ein Datenbank Benutzer Icinga2 angelegt.
8. Datenbank Benutzer konfigurieren
Der Benutzer hat noch nicht die entsprechenden Berechtigungen um sich per Passwort auf den Datenbank Server zu verbinden.
Login mit root auf den Datenbank Server
mysql -u root -p
Passwort aus der Konfiguration von MySQL eingeben und [ENTER].
Benutzer mit diesem Query anpassen. Als Passwort das Passwort aus Schritt 7 verwenden.
ALTER USER icinga2@localhost IDENTIFIED WITH mysql_native_password BY 'PASSWORT_SICHER';
flush privileges;
Verlassen
exit
9. Feature aktivieren und Neustart
icinga2 feature enable ido-mysql
Überprüfen ob es geklappt hat mit
icinga2 feature list
Icinga2 neu starten
systemctl restart icinga2
10. python3-software-properties installieren
sudo apt install python3-software-properties
11. Repository für PHP hinzufügen
sudo add-apt-repository ppa:ondrej/php
12. PHP und apache2 installieren
sudo apt install apache2 php7.4 php7.4-common php7.4-gd php7.4-ldap php7.4-intl php7.4-curl libapache2-mod-php7.4 php7.4-mysql php7.4-pgsql php7.4-xml
13. php.ini anpassen
vi /etc/php/7.4/apache2/php.ini
Die Zeitzone gemäss eurem Standort anpassen
date.timezone = Europe/Zurich
Auskommentieren der Zeile cgi.fix_pathinfo=0 (# entfernen)
cgi.fix_pathinfo=0
mit :wq speichern und verlassen
14. apache2 neu starten und Autostart
systemctl restart apache2
systemctl enable apache2
Status überprüfen
systemctl status apache2
15. icingaweb2 installieren
Damit wir nicht nur per CLI sondern auch über den Browser alle unsere Server überwachen können. Installieren wir im nächsten Schritt die Weboberfläche von Icinga2.
sudo apt install icingaweb2 icingacli
16. Token erzeugen
icingacli setup token create
Speichert euch euren Token auf jeden Fall. Diesen braucht Ihr um einen Administrator zu erstellen.
17. Datenbank Benutzer für icingaweb2 erstellen
Login in die Datenbank mit root
mysql -u root -p
neuen Benutzer mit diesem Query erstellen
create database icingaweb2;
create user icingaweb2@localhost identified with mysql_native_password by "PASSWORDICINGAWEB2";
grant all privileges on icingaweb2.* to icingaweb2@localhost with grant option;
flush privileges;
Datenbank verlassen
exit
18. Setup icingaweb2
Öffne einen Browser und navigiere zu folgender Seite
Hier sollte alles auf grün stehen, bis auf PostgresSQl. Diese verwenden wir nicht und ist somit korrekt. Wähle als Authentication type „Database“ aus und klicke auf Next Trage die Daten von deinem Datenbankserver ein. In etwas wie in dieser Liste. Klicke anschliessend auf „Validate“ und teste deine Konfiguration. Wenn alles stimmt kannst du auf „Next“ klicken. icingaweb2 und „Next“ Wähle einen Benutzernamen und ein sicheres Passwort für die Weboberfläche. Alles so lassen und auf „Next“ klicken Mit „Next“ gehts weiter 🙂 Mit „Next“ gehts weiter 🙂 Felder wie folgt ausfüllen Validieren und mit „Next“ weiter Transport Type auf „Local Command File“ ändern den Rest so lassen wie es ist. Weiter mit „Next“ Alles auf Default belassen und „Next“ Wenn alles korrekt ist auf „Finish“ klicken Rechts oben auf den Login Button klicken und mit den und mit euren Daten anmelden. Sollte alles wie erwartet geklappt haben. So habt Ihr nun eure Grundinstallation von Icinga2 auf einem Ubuntu Server 20.04 LTS.
18.2 Überprüfung
18.3 Verbindungsart
18.4 Datenbankverbindung
18.5 Backend Authentication
18.6 Administrator erstellen
18.7 Application Configuration
18.8 Überprüfung
18.9 Willkommensseite
18.10 Monitoring Backend
18.11 Datenverbindung für IDO erstellen
18.12 Command Transport
18.13 Monitoring Security
18.14 Überprüfung
18.15 Login
Schlusswort