Zur Navigation springenZur Suche springen
Beispielhafte Einrichtung einer Icinga2 Installation mit
Dieses Beispiel ist insofern nicht ideal, als dass die Datenbank natürlich einen Single Point of Failure darstellt. Ihr solltet eine redundante Datenbank nutzen mit einer Service IP zum Beispiel. Diesbezüglich am besten die Dokumentation befragen. In meinem Seznario genügt mir die einfache Datenbank.
Auf mastersiteA und mastersiteB:
pkg install -y icinga2
sysrc icinga2_enable="yes"
service icinga2 start
Die Installation der Nagios Plugins erfolgt automatisch als Abhängigkeit. Auf dem Datenbankhost:
Nur auf einem der beiden Master; Schema importieren:
psql -U icinga -W -h dein_postgresql_host.domain.net icinga < /usr/local/share/icinga2-ido-pgsql/schema/pgsql.sql
Nun wieder auf beiden Mastern; Icinga2 IDO pgsql Modul aktivieren, Konfiguration anlegen und Icinga2 neustarten.
icinga2 feature enable ido-pgsql
vim /usr/local/etc/icinga2/features-enabled/ido-pgsql.conf
object object IdoPgsqlConnection "ido-pgsql" {
user = 'icinga'
password = 'deinsicherespasswort'
host = 'dein_postgresql_host.domain.net'
database = 'icinga'
}
service icinga2 restart
Einrichtung der API
icinga2 api setup
Einen API Benutzer anlegen für das icingaweb2 mit minimalen Rechten:
vim /usr/local/etc/icinga2/conf.d/api-users.conf
object ApiUser "icingaweb2" {
password = "Wijsa8ZdfeRs5E35d"
permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]
}
service icinga2 restart
Webserver für den Betrieb von icingaweb2 einrichten, hier eine Beispielkonfiguration von nginx auf einem Alpine Host mit icingaweb über apk installiert in /usr/share/webapps/icingaweb2.
server {
# icingaweb2
listen [::]:80;
server_name icinga.mydomain.net;
autoindex off;
access_log /var/log/nginx/icinga.mydomain.net-access.log;
error_log /var/log/nginx/icinga.mydomain.net-error.log;
root /var/www/vhosts/icinga.mydomain.net;
location / {
index index.html index.htm index.php;
}
location ~ ^/icingaweb2/index\.php(.*)$ {
fastcgi_pass unix:/run/nginx/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/share/webapps/icingaweb2/public/index.php;
fastcgi_param ICINGAWEB_CONFIGDIR /etc/icingaweb2;
fastcgi_param REMOTE_USER $remote_user;
}
location ~ ^/icingaweb2(.+)? {
alias /usr/share/webapps/icingaweb2/public;
index index.php;
try_files $1 $uri $uri/ /icingaweb2/index.php$is_args$args;
}
}
Achtung. Das Webinterface sollte natürlich über HTTPS angesprochen werden. Ich löse das in meinem Fall, indem ich einen Reverse Proxy dazwischen schalte, der SSL Offloading macht.
Installation des Paketes icingaweb2 mit diversen Plugins
apk add icingaweb2 icingaweb2-bash-completion icingaweb2-doc icingaweb2-module-director icingaweb2-module-incubator icingaweb2-module-incubator-doc icingaweb2-module-ipl icingaweb2-module-reactbundle
chgrp -R icingacweb2 /etc/icingaweb2
chmod -R g+rws /etc/icingaweb2
Token zur Einrichtung generieren:
icingacli setup token create
http://myicingaweb2.domain.net/
icingacli module enable setup
Webseite aufrufen, z.B.:
https://icinga.mysstem.net/icingaweb2/setup