Icinga 2 z interfejsem Icinga Web 2

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Icinga Web 2 jest nowo opracowanym interfejsem internetowym dla backendu Icinga. Podobnie jak w przypadku Icinga 1.x, komunikacja z Icinga 2 odbywa się poprzez interfejs Idoutils. W tym artykule jest przedstawiona, na zrzutach, konfiguracja interfejsu Icinga Web 2 w wersji 2.4.1-1 w systemie Ubuntu 16.04 LTS. Dodatkowo zostało opisane jak należy podłączyć nowy interfejs do istniejącej instalacji Icinga 2. Zrzuty ekranu z interfejsu użytkownika znajdują się w artykule Icinga Web 2. Obecna wersja Icinga Web 2 w Ubuntu 18.04 to 2.6.1-1, następujące instrukcje obowiązują również dla tej wersji.

Instalacja oprogramowania Icinga 2, serwera MySQL i PHP

Najpierw zainstalowane zostanie oprogramowanie Icinga 2, serwer MySQL oraz PHP (szczegółowe instrukcje znajdują się w artykule Instalacja oprogramowania Icinga 2 w systemie Ubuntu 16.04 LTS):

  1. Dodanie repozytorium Icinga 2:
    # 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. Ponowne załadowanie źródeł pakietów:
    sudo apt update
  3. Instalacja pakietu Icinga 2:
    sudo apt install icinga2
  4. Instalacja serwera MySQL i interfejsu IDO:
    sudo apt install mysql-server mysql-client icinga2-ido-mysql
    Uwaga: Podczas instalacji icinga2-ido-mysql należy skonfigurować bazę danych za pomocą kreatora konfiguracji. Możliwe jest również ręczne skonfigurowanie bazy danych oraz zaimportowanie schematu bazy danych.

Aktywacja interfejsu IDO MySQL

Icinga 2 oferuje interfejs IDO. Ta baza danych służy jako punkt komunikacyjny pomiędzy oprogramowaniem Icinga 2 i Icinga Web 2.

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

Wyświetlanie aktywnych funkcji

$ 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

Tworzenie użytkownika

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)

Instalacja interfejsu Icinga Web 2

Instalacja odbywa się w wygodny sposób dzięki wykorzystaniu źródeł pakietów:

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) ...

Teraz należy doinstalować moduł PHP7 dla Apache2:

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

Konfiguracja interfejsu Icinga Web 2

Po instalacji wykonywane są końcowe przygotowania i Icinga Web 2 jest następnie konfigurowana z interfejsu webowego.

Konfiguracja bazy danych MySQL

Bank danych icinga2 został już utworzony podczas instalacji pakietu icinga2-ido-mysql przez kreatora konfiguracji.

  1. Nadanie uprawnień użytkownika Icingaweb do tej bazy danych:
    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. Restart usług
    tk@ubuntuserver:~$ sudo service mysql restart && sudo service icinga2 restart

Alias instalacji

Konfiguracja odbywa się poprzez interfejs webowy http://IP-Adresse/ALIAS/setup. W pliku konfiguracyjnym icingaweb2.conf zdefiniowany jest alias instalacji Icinga Web 2. W tym przykładzie konfiguracji alias to "'icingaweb2. Za pomocą poniższego polecenia można sprawdzić, który alias jest zapisany w tym pliku konfiguracyjnym:

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

Przynależność do grupy użytkowników serwera webowego

Podczas instalacji tworzona jest grupa icingaweb2 i następnie jest do niej automatycznie dodawany użytkownik Apache www-data.

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

Tworzenie tokena

Za pomocą poniższych poleceń tworzony jest token, aby można było rozpocząć konfigurację Icinga Web 2:

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

Interfejs webowy

Dalsza konfiguracja odbywa się za pomocą przeglądarki internetowej w interfejsie Icinga Web 2.

Strefa czasowa nie jest ustalona w php.ini

Jeżeli podczas sprawdzania wymaganych komponentów wystąpi błąd, że strefa czasowa nie jest skonfigurowana, to należy edytować plik konfiguracyjny PHP:

Właściwa ścieżka pliku konfiguracyjnego

Za pomocą poniższego polecenia można znaleźć odpowiedni plik konfiguracyjny PHP w systemie:

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

Dostosowanie pliku konfiguracyjnego

W Ubuntu 16.04, plik konfiguracyjny instalacji PHP7 jest dopasowywany poprzez wykonanie następujących czynności:

  1. Edycja pliku "php.ini" z uprawnieniami sudo.
    $ sudo vi /etc/php/7.0/apache2/php.ini
  2. zmienną date.timezone należy wykomentować i zdefiniować odpowiednią strefę czasową, np. date.timezone = "Europe/Berlin"
  3. Teraz należy zapisać plik i zamknąć go.
  4. Następnie należy ponownie załadować Apache i kliknąć na "Refresh" w interfejsie Icinga Web 2.

Niezainstalowany php-xml

Jeżeli wystąpi błąd ... Fatal error: Uncaught Error: Class 'DOMDocument' not found ..., oznacza to, że nie został zainstalowany moduł php-xml.[1] Problem ten można rozwiązać instalując moduł PHP XML:

$ sudo apt install php-xml

Instalacja w Ubuntu 18.04

Podczas instalacji interfejsu Icinga Web 2 w wersji 2.5.3-1 w Ubuntu 18.04 może wystąpić błąd (Exception), błąd ten występuje po wprowadzeniu tokena podczas rozpoczęcia procesu konfiguracji w przeglądarce internetowej. Problem ten jest znany i został rozwiązany w wersji 2.6.0.[2]

Odnośniki

Autorzy: Thomas Niedermeier, Georg Schönberger

Powiązane artykuły

Aktualizacja oprogramowania Intel Data Center Manager
Definicja hosta w Nagios 3
Wizualizacja OPNsense z frontend-em Grafana