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

Server mit Ubuntu 20.04 LTS
Mindestens 2 GB RAM – mehr sind empfohlen für grössere Netzwerke
Macht euch Notizen und schreibt jedes Passwort und Token auf.

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

Yes
Yes
PASSWORT_SICHER
PASSOWORT_SICHER wiederholen

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

http://<IP-DES-SERVERS>/icingaweb2/setup

Gebe nun hier den Token ein und klicke auf Next

18.1 Module aktivieren

Wir brauchen nur die beden Module Docs und Monitoring.

18.2 Überprüfung

Hier sollte alles auf grün stehen, bis auf PostgresSQl. Diese verwenden wir nicht und ist somit korrekt.

18.3 Verbindungsart

Wähle als Authentication type „Database“ aus und klicke auf Next

18.4 Datenbankverbindung

Trage die Daten von deinem Datenbankserver ein. In etwas wie in dieser Liste.

  • icingaweb_db
  • MySQL
  • localhost
  • leer oder 3306
  • icingaweb2
  • icingaweb2
  • DEIN_PASSWORT

Klicke anschliessend auf „Validate“ und teste deine Konfiguration.

Wenn alles stimmt kannst du auf „Next“ klicken.

18.5 Backend Authentication

icingaweb2 und „Next“

18.6 Administrator erstellen

Wähle einen Benutzernamen und ein sicheres Passwort für die Weboberfläche.

18.7 Application Configuration

Alles so lassen und auf „Next“ klicken

18.8 Überprüfung

Mit „Next“ gehts weiter 🙂

18.9 Willkommensseite

Mit „Next“ gehts weiter 🙂

18.10 Monitoring Backend

  • Backend Name: Icinga2
  • Backend Type: IDO

18.11 Datenverbindung für IDO erstellen

Felder wie folgt ausfüllen

  • icinga_ido
  • MySQL
  • localhost
  • leer oder 3306
  • icinga2
  • icinga2
  • PASSWORT FÜR DIE ICINGA2 Datenbank

Validieren und mit „Next“ weiter

18.12 Command Transport

Transport Type auf „Local Command File“ ändern den Rest so lassen wie es ist.

Weiter mit „Next“

18.13 Monitoring Security

Alles auf Default belassen und „Next“

18.14 Überprüfung

Wenn alles korrekt ist auf „Finish“ klicken

18.15 Login

Rechts oben auf den Login Button klicken und mit den und mit euren Daten anmelden.

Schlusswort

Sollte alles wie erwartet geklappt haben. So habt Ihr nun eure Grundinstallation von Icinga2 auf einem Ubuntu Server 20.04 LTS.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.