Internet und Hostinglösungen
  • Werbung
  • Schlagwörter

Icinga Web 2 Installation unter Debian 8 Jessie

Vorwort


Ich erkläre Ihnen hier wie Sie Icinga Web 2 auf einem Linux Debian 8 installieren und einrichten.

Paketquelle


Um Icinga 2 installieren zu können, fügen Sie das Icinga Repository für Debian 8 Jessie zu Ihren Paketquellen hinzu:
wget -O - http://packages.icinga.org/icinga.key | apt-key add -
echo 'deb http://packages.icinga.org/debian icinga-jessie main' > /etc/apt/sources.list.d/icinga.list

Aktualisieren Sie danach die Paketlisten:
apt-get update
Ign http://ftp.ch.debian.org jessie InRelease
OK http://security.debian.org jessie/updates InRelease
[...]
OK http://security.debian.org jessie/updates/main amd64 Packages
Holen: 1 http://ftp.ch.debian.org jessie-updates/main amd64 Packages/DiffIndex [367 B]
OK http://security.debian.org jessie/updates/main Translation-en
[...]
Es wurden 367 B in 2 s geholt (128 B/s).
Paketlisten werden gelesen... Fertig


Icinga 2


Nun können Sie Icinga 2 mit folgendem Befehl installieren:
apt-get install icinga2
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
icinga2-bin icinga2-common icinga2-doc libboost-program-options1.55.0 libboost-regex1.55.0 libboost-system1.55.0
libboost-thread1.55.0 libicinga2 libyajl2 monitoring-plugins-basic monitoring-plugins-common
Vorgeschlagene Pakete:
icinga2-studio icinga icinga nagios3
Die folgenden NEUEN Pakete werden installiert:
icinga2 icinga2-bin icinga2-common icinga2-doc libboost-program-options1.55.0 libboost-regex1.55.0 libboost-system1.55.0
libboost-thread1.55.0 libicinga2 libyajl2 monitoring-plugins-basic monitoring-plugins-common
0 aktualisiert, 12 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 4'143 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 21.3 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] j
Holen: 10 http://packages.icinga.org/debian/ icinga-jessie/main icinga2-bin amd64 2.4.0-1~debmon80+1 [77.8 kB]
[...]
Es wurden 4'143 kB in 2 s geholt (1'390 kB/s).
Vormals nicht ausgewähltes Paket libboost-program-options1.55.0:amd64 wird gewählt.
(Lese Datenbank ... 30249 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../libboost-program-options1.55.0_1.55.0+dfsg-3_amd64.deb ...
Entpacken von libboost-program-options1.55.0:amd64 (1.55.0+dfsg-3) ...
[...]
Trigger für systemd (215-17+deb8u2) werden verarbeitet ...
[...]
Adding system-user for nagios
libicinga2 (2.4.0-1~debmon80+1) wird eingerichtet ...
icinga2-bin (2.4.0-1~debmon80+1) wird eingerichtet ...
enabling default icinga2 features
Enabling feature checker. Make sure to restart Icinga 2 for these changes to take effect.
Enabling feature notification. Make sure to restart Icinga 2 for these changes to take effect.
Enabling feature mainlog. Make sure to restart Icinga 2 for these changes to take effect.
icinga2 (2.4.0-1~debmon80+1) wird eingerichtet ...
icinga2-doc (2.4.0-1~debmon80+1) wird eingerichtet ...
monitoring-plugins-common (2.1.1-1) wird eingerichtet ...
monitoring-plugins-basic (2.1.1-1) wird eingerichtet ...
Creating config file /etc/nagios-plugins/config/apt.cfg with new version
[...]
Setcap for check_icmp and check_dhcp worked!
Trigger für libc-bin (2.19-18+deb8u1) werden verarbeitet ...
Trigger für systemd (215-17+deb8u2) werden verarbeitet ...

Falls erwünscht können Sie nun prüfen, ob die Pakete erfolgreich installiert wurden:
dpkg -l | grep icinga
ii  icinga2                              2.4.0-1~debmon80+1          amd64        host and network monitoring system
ii icinga2-bin 2.4.0-1~debmon80+1 amd64 host and network monitoring system - daemon
ii icinga2-common 2.4.0-1~debmon80+1 all host and network monitoring system - common files
ii icinga2-doc 2.4.0-1~debmon80+1 all host and network monitoring system - documentation
ii libicinga2 2.4.0-1~debmon80+1 amd64 host and network monitoring system - internal libraries


Icinga Web 2


MySQL und IDO


Installieren Sie nun den MySQL Datenbank-Server und die IDO Schnittstelle:
apt-get install mysql-server mysql-client icinga2-ido-mysql
oder
apt install mariadb-server mariadb-client icinga2-ido-mysql
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
dbconfig-common libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18 libterm-readkey-perl
mysql-client-5.5 mysql-common mysql-server-5.5 mysql-server-core-5.5
Vorgeschlagene Pakete:
libclone-perl libmldbm-perl libnet-daemon-perl libsql-statement-perl libipc-sharedcache-perl tinyca
Die folgenden NEUEN Pakete werden installiert:
dbconfig-common icinga2-ido-mysql libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18
libterm-readkey-perl mysql-client mysql-client-5.5 mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5
0 aktualisiert, 14 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 9'533 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 98.2 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] j
Holen: 1 http://ftp.ch.debian.org/debian/ jessie/main libaio1 amd64 0.3.110-1 [9'312 B]
Es wurden 9'533 kB in 6 s geholt (1'368 kB/s).
Vorkonfiguration der Pakete ...
Vormals nicht ausgewähltes Paket libaio1:amd64 wird gewählt.
(Lese Datenbank ... 30550 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../libaio1_0.3.110-1_amd64.deb ...
Entpacken von libaio1:amd64 (0.3.110-1) ...
Trigger für systemd (215-17+deb8u2) werden verarbeitet ...
Trigger für man-db (2.7.0.2-5) werden verarbeitet ...
libaio1:amd64 (0.3.110-1) wird eingerichtet ...
libmysqlclient18:amd64 (5.5.46-0+deb8u1) wird eingerichtet ...
libdbi-perl (1.631-3+b1) wird eingerichtet ...
libdbd-mysql-perl (4.028-2+b1) wird eingerichtet ...
libterm-readkey-perl (2.32-1+b1) wird eingerichtet ...
mysql-client-5.5 (5.5.46-0+deb8u1) wird eingerichtet ...
mysql-server-core-5.5 (5.5.46-0+deb8u1) wird eingerichtet ...
mysql-server-5.5 (5.5.46-0+deb8u1) wird eingerichtet ...
151116 13:46:08 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
151116 13:46:08 [Note] /usr/sbin/mysqld (mysqld 5.5.46-0+deb8u1) starting as process 4158 ...
dbconfig-common (1.8.47+nmu3) wird eingerichtet ...
Creating config file /etc/dbconfig-common/config with new version
icinga2-ido-mysql (2.4.0-1~debmon80+1) wird eingerichtet ...
dbconfig-common: writing config to /etc/dbconfig-common/icinga2-ido-mysql.conf
Creating config file /etc/dbconfig-common/icinga2-ido-mysql.conf with new version
granting access to database icinga2 for icinga2@localhost: success.
verifying access for icinga2@localhost: success.
creating database icinga2: success.
verifying database icinga2 exists: success.
populating database via sql... done.
dbconfig-common: flushing administrative password
libhtml-template-perl (2.95-1) wird eingerichtet ...
Trigger für systemd (215-17+deb8u2) werden verarbeitet ...


Icinga 2 bietet eine IDO Schnittstelle an. Diese Datenbank dient als Kommunikationspunkt zwischen Icinga 2 und Icinga Web 2.
icinga2 feature enable ido-mysql
Enabling feature ido-mysql. Make sure to restart Icinga 2 for these changes to take effect.

icinga2 feature enable command
Enabling feature command. Make sure to restart Icinga 2 for these changes to take effect.


Prüfen Sie ob die Features erfolgreich aktiviert wurden:
icinga2 feature list
Disabled features: api compatlog debuglog gelf graphite icingastatus livestatus opentsdb perfdata statusdata syslog
Enabled features: checker command ido-mysql mainlog notification


Benutzer und Gruppen erstellen


addgroup --system icingacmd
Lege Gruppe »icingacmd« (GID 115) an ...
Fertig.
usermod -a -G icingacmd www-data
id www-data
Die ID (hier 115) kann variieren:
uid=33(www-data) gid=33(www-data) Gruppen=33(www-data),115(icingacmd)



Webinterface


apt-get install icingaweb2
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
apache2 apache2-bin apache2-data apache2-utils fonts-dejavu fonts-dejavu-extra icingaweb2-module-doc
icingaweb2-module-monitoring libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libgd3
liblua5.1-0 libonig2 libqdbm14 libvpx1 libxpm4 php-dompdf php-font-lib php-htmlpurifier php-icinga php5 php5-cli
php5-common php5-gd php5-json php5-ldap php5-mysql php5-readline sdop ssl-cert zendframework
Vorgeschlagene Pakete:
apache2-doc apache2-suexec-pristine apache2-suexec-custom php-pear libgd-tools php-tcpdf php5-apcu php5-xcache
php5-user-cache openssl-blacklist php5-curl php5-imap php5-pgsql php5-sqlite
Die folgenden NEUEN Pakete werden installiert:
apache2 apache2-bin apache2-data apache2-utils fonts-dejavu fonts-dejavu-extra icingaweb2 icingaweb2-module-doc
icingaweb2-module-monitoring libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libgd3
liblua5.1-0 libonig2 libqdbm14 libvpx1 libxpm4 php-dompdf php-font-lib php-htmlpurifier php-icinga php5 php5-cli
php5-common php5-gd php5-json php5-ldap php5-mysql php5-readline sdop ssl-cert zendframework
0 aktualisiert, 35 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 16.6 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 98.2 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]
Holen: 1 http://ftp.ch.debian.org/debian/ jessie/main libapr1 amd64 1.5.1-3 [95.3 kB]
Es wurden 16.6 MB in 3 s geholt (4'506 kB/s).
Extrahiere Vorlagen aus Paketen: 100%
Vorkonfiguration der Pakete ...
Vormals nicht ausgewähltes Paket libapr1:amd64 wird gewählt.
(Lese Datenbank ... 31287 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../libapr1_1.5.1-3_amd64.deb ...
Entpacken von libapr1:amd64 (1.5.1-3) ...
Trigger für man-db (2.7.0.2-5) werden verarbeitet ...
libapr1:amd64 (1.5.1-3) wird eingerichtet ...
apache2-bin (2.4.10-10+deb8u3) wird eingerichtet ...
Enabling module mpm_event.
libvpx1:amd64 (1.3.0-3) wird eingerichtet ...
php5-common (5.6.14+dfsg-0+deb8u1) wird eingerichtet ...
Creating config file /etc/php5/mods-available/pdo.ini with new version
php5_invoke: Enable module pdo for apache2 SAPI
php5_invoke: Enable module pdo for cli SAPI
Adding system-group for icingaweb2
Füge Benutzer »www-data« der Gruppe »icingaweb2« hinzu ...
Benutzer www-data wird zur Gruppe icingaweb2 hinzugefügt.
Fertig.
apache2_invoke: Enable module rewrite
apache2_invoke: Enable configuration icingaweb2
icingaweb2-module-doc (2.0.0-1~debmon80+1) wird eingerichtet ...
icingaweb2-module-monitoring (2.0.0-1~debmon80+1) wird eingerichtet ...
Trigger für libc-bin (2.19-18+deb8u1) werden verarbeitet ...
Trigger für systemd (215-17+deb8u2) werden verarbeitet ...
Trigger für libapache2-mod-php5 (5.6.14+dfsg-0+deb8u1) werden verarbeitet ...


Konfiguration


Erstellen Sie nun ein MySQL Benutzer mit Zugriff auf die Icinga2 Datenbank, welche bereits existiert. IDO muss später auf diese Datenbank zugreifen können:
mysql -uroot -p

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 52
Server version: 5.5.46-0+deb8u1 (Debian)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga2.* TO 'icinga_dat'@'localhost' IDENTIFIED BY 'icinga';
FLUSH PRIVILEGES;
quit


Starten Sie nun die Dienste neu (Wichtig da hierbei die IDO Daten in die Datenbank geschrieben werden):
service mysql restart && service icinga2 restart
.

Erstellen Sie einen Setup Token:
icingacli setup config directory --group icingaweb2
Successfully created configuration directory /etc/icingaweb2
icingacli setup token create
The newly generated setup token is: 4b424b424b424b42

Nach dem Sie den Setup Token erstellt haben, können Sie über einen Browser die folgende Adresse aufrufen:

Dieser Link ist nur für registrierte Benutzer sichtbar.




Setup TokenSetup Token

Setup Token


Auf der ersten Seite werden Sie von dem IcingaWeb2 Installationsassistenten begrüsst. Geben Sie den Setup Token ein und klicken Sie auf Next.








Icinga ModuleIcinga Module

Icinga Module


Wählen Sie die Module aus, welche Sie installieren möchten und klicken Sie anschliessend auf Next.










AnforderungenAnforderungen

Anforderungen

AnforderungenAnforderungen

Anforderungen


Zeitzone:
Öffnen Sie die PHP Konfigurationsdatei mit einem Editor und passen Sie diese wie folgt an:
nano /etc/php5/apache2/php.ini
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "UTC"
PHP Module: INTL
apt-get install php5-intl
ImageMagick
apt-get install php5-imagick
Optional: PHP Module: PDO-PostgreSQL
apt-get install php5-pgsql
Starten Sie anschliessend den Webserver neu:
service apache2 restart
AuthentifizierungAuthentifizierung

Authentifizierung


Wählen Sie die gewünschte Authentifizierungsmethode in dem Dropdown aus und klicken Sie auf Next.









LDAP DiscoveryLDAP Discovery

LDAP Discovery


Geben Sie die Domäne für die LDAP Anmeldung an und klicken Sie danach auf Next.










LDAP ResourceLDAP Resource

LDAP Resource


Geben Sie nun die LDAP Serverinformationen ein, diese können Sie mit Validate Configuration überprüfen lassen.
Nachdem Sie die Konfiguration überprüft haben und diese gültig ist, klicken Sie auf Next.

Unter Windows können Sie den Base DN mit folgendem Befehl in der PowerShell auslesen:
dsquery user -name icinga*
"CN=Icinga Web,OU=Users,OU=4b42,DC=4b42,DC=com"




Authentification BackendAuthentification Backend

Authentification Backend


Passen Sie (sofern erforderlich) die Einstellungen an. Diese können später im Webinterface von Icinga angepasst werden. Klicken Sie dann auf Next.









User Group BackendUser Group Backend

User Group Backend


Passen Sie (sofern erforderlich) die Benutzer- und Gruppen-Einstellungen an. Diese können ebenfalls später im Webinterface von Icinga angepasst werden. Klicken Sie auf Next, um den Administrator-Benutzer festzulegen.








AdministrationAdministration

Administration


Auf dieser Seite können Sie ein Konto für den Administrator zugriff festlegen.
Wählen Sie Existing User, um einen vorhandenen Benutzer aus dem Active Directory auszuwählen. Bestätigen Sie Ihre Einstellungen mit Next.








AnwendungskonfigurationAnwendungskonfiguration

Anwendungskonfiguration


Wählen Sie bei User Preference Storage Type Database aus und klicken Sie auf Next.










Database ResourceDatabase Resource

Database Resource


Geben Sie nun die Datenbankeinstellungen für Icingaweb an. Beachten Sie das Sie den selben Benutzernamen und das selbe Passwort wie oben verwenden. In diesem Beispiel icinga_dat mit dem Passwort icinga.
Klicken Sie nun auf Next.







Database SetupDatabase Setup

Database Setup


Da die Datenbank nicht existiert, benötigt Icingaweb2 noch ein Administratorkonto, geben Sie den Benutzernamen und das Passwort des Administrators an. Klicken Sie dann auf Next.









OverviewOverview

Overview


Auf dieser Seite sehen Sie alle Konfigurationseinstellungen für Icingaweb2, überprüfen Sie diese und passen Sie diese ggfs. an. Klicken Sie anschliessend auf Next.








Monitoring ModuleMonitoring Module

Monitoring Module


Nun können Sie den Kern von Icingaweb2 konfigurieren. Klicken Sie dazu auf Next.










User Group BackendUser Group Backend

User Group Backend


Nun können Sie den Backendtyp auswählen, wählen Sie hier IDO aus und klicken Sie auf Next.









Monitoring IDO RescourceMonitoring IDO Rescource

Monitoring IDO Rescource


Geben Sie nun die IDO Datenbank an, diese sollte bereits mit dem Namen icinga2 existierten und einige Tabellen enthalten. Geben Sie debn Benutzernamen und das dazugehörige Kennwort (welchen/s Sie zuvor erstellt haben) an. Klicken Sie danach auf Next.








Command TransportCommand Transport

Command Transport


Auf folgende Seite können Sie festlegen wie die Befehle an das Monitoring übergeben werden sollen. Hier müssen Sie keine Einstellungen vornehmen und können direkt mit Next bestätigen.








Monitoring SecurityMonitoring Security

Monitoring Security


Auf dieser Seite können Sie angeben, welche Variablen nicht im Klartext angezeigt werden sollen. Passen Sie sofern erforderlich die Variablen an und klicken Sie auf Next.









Overview Monitoring ModuleOverview Monitoring Module

Overview Monitoring Module


Überprüfen Sie die Einstellungen des Monitoring Kerns, sind alle Eingaben korrekt bestätigen Sie diese mit Next.









Installation erfolgreichInstallation erfolgreich

Installation erfolgreich


Nun wird Icingaweb2 konfiguriert, danach sollten Sie folgende Seite sehen. Klicken Sie hier zum Abschluss der Installation auf Login to Icinga Web 2.










Apache2

Standardmässig ist IcingaWeb2 über die Serveradresse und IP-Adressen des Servers erreichbar. Ich möchte nicht das man über jede Domain bzw. IP-Adresse auf IcingaWeb zugreifen kann. Hier ein Beispiel meiner Apache2 Konfiguraion:
nano /etc/apache2/conf-enabled/icingaweb2.conf
<VirtualHost *:80>
ServerName monitoring.4b42.com
DocumentRoot "/usr/share/icingaweb2/public"
<Directory "/usr/share/icingaweb2/public">
Options SymLinksIfOwnerMatch
AllowOverride None
SetEnv ICINGAWEB_CONFIGDIR "/etc/icingaweb2"

EnableSendfile Off
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>
<IfModule !mod_rewrite.c>
DirectoryIndex error_norewrite.html
ErrorDocument 404 /error_norewrite.html
</IfModule>
</Directory>
</VirtualHost>
a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
service apache2 restart


icingaweb2-module-director


git clone https://github.com/Icinga/icingaweb2-module-director.git
Klone nach 'icingaweb2-module-director'...
remote: Counting objects: 19956, done.
remote: Compressing objects: 100% (97/97), done.
remote: Total 19956 (delta 41), reused 4 (delta 4), pack-reused 19854
Empfange Objekte: 100% (19956/19956), 4.65 MiB | 3.48 MiB/s, Fertig.
Löse Unterschiede auf: 100% (12306/12306), Fertig.
Prüfe Konnektivität... Fertig.
mv icingaweb2-module-director/ /usr/share/icingaweb2/modules/director/


Style

nano /usr/share/icingaweb2/public/css/icinga/base.less
//@icinga-blue: #0095BF;
//@icinga-blue-dark: #AA95BF;
@icinga-blue: #333;
@icinga-blue-dark: #222;

Einzeiler, da es in letzter Zeit sehr viele Updates gibt:
sed -i 's/@icinga-blue: #0095BF;/@icinga-blue: #333;/g' /usr/share/icingaweb2/public/css/icinga/base.less