Icinga Web 2 mit Icinga 2 verwenden

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche

Icinga Web 2 ist ein neu entwickeltes Web-Interface für Icinga Backends. Die Kommunikation mit Icinga 2 erfolgt wie bei Icinga 1.x über die Idoutils-Schnittstelle. Dieser Artikel zeigt anhand von Screenshots die Konfiguration von Icinga Web 2 unter Ubuntu 16.04 LTS. Zusätzlich wird erklärt wie man das neue Interface an eine bestehende Icinga 2 Installation anbindet. Screenshots der Benutzeroberfläche finden Sie im Artikel Icinga Web 2.

Icinga2, MySQL-Server und PHP Installation

Vorab wird Icinga2, MySQL-Server und PHP installiert (eine detaillierte Anleitung finden Sie auch im Artikel Installation von Icinga 2 unter Ubuntu 16.04 LTS):

  1. Icinga 2 Repository hinzufügen:
    # wget -O - http://packages.icinga.org/icinga.key | apt-key add -
    
    # echo 'deb http://packages.icinga.org/ubuntu icinga-xenial main' > /etc/apt/sources.list.d/icinga-main-xenial.list
    
  2. Paket-Quellen neu laden:
    sudo apt update
    
  3. Icinga 2 installieren:
    sudo apt install icinga2
    
  4. MySQL Server und IDO Schnittstelle installieren:
    sudo apt install mysql-server mysql-client icinga2-ido-mysql
    
    Hinweis: Konfigurieren Sie bei der Installation von icinga2-ido-mysql die Datenbank mittels des Konfigurationsassistenten. Man kann die Datenbank aber auch anschließend manuell konfigurieren und das Datenbankschema einspielen.

IDO MySQL Schnittstelle aktivieren

Icinga 2 bietet eine IDO Schnittstelle an. Diese Datenbank dient als Kommunikationspunkt zwischen Icinga 2 und Icinga Web 2.

$ sudo icinga2 feature enable ido-mysql
$ sudo icinga2 feature enable command

Aktivierte Features anzeigen

$ sudo icinga2 feature list
Disabled features: api compatlog debuglog gelf graphite icingastatus livestatus opentsdb perfdata statusdata syslog
Enabled features: checker command ido-mysql mainlog notification

User anlegen

tk@icinga2:~$ sudo addgroup --system icingacmd
tk@icinga2:~$ sudo usermod -a -G icingacmd www-data
tk@icinga2:~$ id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data),119(icingacmd)

Icinga Web 2 Installation

Die Installation erfolgt bequem über die Paketquellen:

tk@icinga2:~$ sudo apt-get install icingaweb2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils fontconfig-config
  fonts-dejavu fonts-dejavu-core fonts-dejavu-extra ghostscript gsfonts
  icingacli icingaweb2-common icingaweb2-module-doc
  icingaweb2-module-monitoring imagemagick-common libapr1 libaprutil1
  libaprutil1-dbd-sqlite3 libaprutil1-ldap libavahi-client3
  libavahi-common-data libavahi-common3 libcups2 libcupsfilters1 libcupsimage2
  libfftw3-double3 libfontconfig1 libgd3 libgomp1 libgs9 libgs9-common
  libijs-0.35 libjbig0 libjbig2dec0 libjpeg-turbo8 libjpeg8 liblcms2-2
  liblqr-1-0 libltdl7 liblua5.1-0 libmagickcore-6.q16-2 libmagickwand-6.q16-2
  libpaper-utils libpaper1 libtiff5 libvpx3 libxpm4 libxslt1.1 php php-common
  php-dompdf php-font-lib php-gd php-htmlpurifier php-icinga php-imagick
  php-intl php-ldap php-mysql php-xml php7.0 php7.0-cli php7.0-common
  php7.0-fpm php7.0-gd php7.0-intl php7.0-json php7.0-ldap php7.0-mysql
  php7.0-opcache php7.0-readline php7.0-xml poppler-data sdop ssl-cert
  ttf-dejavu-core
Suggested packages:
  www-browser apache2-doc apache2-suexec-pristine | apache2-suexec-custom
  ghostscript-x hpijs cups-common libfftw3-bin libfftw3-dev libgd-tools
  fonts-droid texlive-lang-cjk liblcms2-utils libmagickcore-6.q16-2-extra
  php-tcpdf php-apcu | php-xcache php-pear poppler-utils fonts-japanese-mincho
  | fonts-ipafont-mincho fonts-japanese-gothic | fonts-ipafont-gothic
  fonts-arphic-ukai fonts-arphic-uming fonts-nanum openssl-blacklist
The following NEW packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils fontconfig-config
  fonts-dejavu fonts-dejavu-core fonts-dejavu-extra ghostscript gsfonts
  icingacli icingaweb2 icingaweb2-common icingaweb2-module-doc
  icingaweb2-module-monitoring imagemagick-common libapr1 libaprutil1
  libaprutil1-dbd-sqlite3 libaprutil1-ldap libavahi-client3
  libavahi-common-data libavahi-common3 libcups2 libcupsfilters1 libcupsimage2
  libfftw3-double3 libfontconfig1 libgd3 libgomp1 libgs9 libgs9-common
  libijs-0.35 libjbig0 libjbig2dec0 libjpeg-turbo8 libjpeg8 liblcms2-2
  liblqr-1-0 libltdl7 liblua5.1-0 libmagickcore-6.q16-2 libmagickwand-6.q16-2
  libpaper-utils libpaper1 libtiff5 libvpx3 libxpm4 libxslt1.1 php php-common
  php-dompdf php-font-lib php-gd php-htmlpurifier php-icinga php-imagick
  php-intl php-ldap php-mysql php-xml php7.0 php7.0-cli php7.0-common
  php7.0-fpm php7.0-gd php7.0-intl php7.0-json php7.0-ldap php7.0-mysql
  php7.0-opcache php7.0-readline php7.0-xml poppler-data sdop ssl-cert
  ttf-dejavu-core
0 upgraded, 77 newly installed, 0 to remove and 0 not upgraded.
Need to get 27.2 MB of archives.
After this operation, 116 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
[...]
Setting up php-xml (1:7.0+35ubuntu6) ...
Setting up ssl-cert (1.0.37) ...
Setting up ttf-dejavu-core (2.35-1) ...
Setting up php-icinga (2.4.1-1~ppa1604+1) ...
Setting up icingacli (2.4.1-1~ppa1604+1) ...
Setting up icingaweb2-common (2.4.1-1~ppa1604+1) ...
Adding system-group for icingaweb2
Adding user `www-data' to group `icingaweb2' ...
Adding user www-data to group icingaweb2
Done.
Setting up icingaweb2 (2.4.1-1~ppa1604+1) ...
apache2_invoke: Enable module rewrite
apache2_invoke: Enable configuration icingaweb2
Setting up icingaweb2-module-doc (2.4.1-1~ppa1604+1) ...
Setting up icingaweb2-module-monitoring (2.4.1-1~ppa1604+1) ...
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Processing triggers for systemd (229-4ubuntu19) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for ufw (0.35-0ubuntu2) ...
Processing triggers for php7.0-fpm (7.0.22-0ubuntu0.16.04.1) ...

Nun muss noch das PHP7-Modul für den Apache2 nachinstalliert werden:

tk@icinga2:~$ apt-get -y install libapache2-mod-php7.0

Icinga Web 2 Konfiguration

Nach der Installation werden letzte Vorbereitungen getroffen und anschließend Icinga Web 2 über das Webinterface konfiguriert.

MySQL-Datenbank konfigurieren

Die icinga2 Datenbank wurde bei der Installation des Paketes icinga2-ido-mysql durch den Konfigurationsassistenten bereits angelegt.

  1. Dem Icingaweb-User Rechte auf diese Datenbank verleihen:
    mysql> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga2.* TO 'icingaweb'@'localhost' IDENTIFIED BY '<PASSWORD>';
    Query OK, 0 rows affected (0.00 sec)
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    mysql> quit
  2. Dienste neu starten
    tk@ubuntuserver:~$ sudo service mysql restart && sudo service icinga2 restart

Alias der Installation

Die Konfiguration erfolgt über das Webinterface http://IP-Adresse/ALIAS/setup. Der Alias der Icinga Web 2 Installation ist in der icingaweb2.conf-Konfigurationsdatei festgelegt. Bei diesem Konfigurationsbeispiel lautet der Alias icingaweb2. Welcher Alias in dieser Konfigurationsdatei hinterlegt ist sehen Sie mit folgendem Kommando:

root@icinga2:~# cat /etc/apache2/conf-available/icingaweb2.conf | grep Alias
Alias /icingaweb2 "/usr/share/icingaweb2/public"

Gruppenzugehörigkeit des Webserver Users

Die Gruppe icingaweb2 wird bei der Installation angelegt und der Apache User www-data wird anschließend zur icingaweb2 Gruppe automatisch hinzugefügt.

tk@icinga2:~$ id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data),119(icingacmd),121(icingaweb2)

Token erstellen

Mithilfe der folgenden Kommandos erstellen Sie einen Token, um die Icinga Web 2 Konfiguration starten zu können:

  • $ sudo icingacli setup config directory --group icingaweb2;
  • $ sudo icingacli setup token create;

Webinterface

Die weitere Konfiguration erfolgt über einen Browser am Webinterface von Icinga Web 2.

Zeitzone in der php.ini nicht gesetzt

Falls bei der Prüfung der benötigten Komponenten der Fehler auftritt, dass die Zeitzone nicht gesetzt ist, editieren Sie die PHP Konfigurationsdatei:

Korrekter Pfad der Konfigurationsdatei

Mit folgendem Kommando können Sie die korrekte PHP Konfigurationsdatei an Ihrem System aufspüren:

$ sudo php -i |grep 'Configuration File'
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

Anpassen der Konfigurationsdatei

Bei Ubuntu 16.04 wird die Konfigurationsdatei einer PHP7-Installation angepasst, führen Sie dazu die folgenden Schritte durch:

  1. Öffnen Sie mit sudo-Rechten die Datei php.ini
    $ sudo vi /etc/php/7.0/apache2/php.ini
  2. Die Variable date.timezone auskommentieren und eine passende Zeitzone definieren, z.B. date.timezone = "Europe/Berlin"
  3. Speichern Sie die Datei ab und schließen Sie diese anschließend.
  4. Anschließend Apache neuladen und in der Icinga Web 2 Oberfläche auf Refresh klicken.


Foto Thomas Niedermeier.jpg

Autor: Thomas Niedermeier

Thomas Niedermeier, Abteilung Communications / Knowledge Transfer bei Thomas-Krenn, absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich hier vor allem um das TKwiki. Er ist ein begeisterungsfähiger, technisch interessierter Linux und Mac Nutzer, fährt im Winter gerne Ski und geht im Sommer gern ins Schwimmbad.


Foto Georg Schönberger.jpg

Autor: Georg Schönberger

Georg Schönberger, Abteilung DevOps bei der XORTEX eBusiness GmbH, absolvierte an der FH OÖ am Campus Hagenberg sein Studium zum Bachelor Computer- und Mediensicherheit, Studium Master Sichere Informationssysteme. Seit 2015 ist Georg bei XORTEX beschäftigt und arbeitet sehr lösungsorientiert und hat keine Angst vor schwierigen Aufgaben. Zu seinen Hobbys zählt neben Linux auch Tennis, Klettern und Reisen.


Das könnte Sie auch interessieren

Call-Home-Service mit Icinga oder Nagios nutzen
Dashing-Icinga Dashboard
In NSClient++ eigene Plugins integrieren