Icinga 2 z interfejsem Icinga Web 2
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):
- 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
- Ponowne załadowanie źródeł pakietów:
sudo apt update
- Instalacja pakietu Icinga 2:
sudo apt install icinga2
- 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.
- 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
- 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:
- Edycja pliku "php.ini" z uprawnieniami sudo.
$ sudo vi /etc/php/7.0/apache2/php.ini
- zmienną date.timezone należy wykomentować i zdefiniować odpowiednią strefę czasową, np. date.timezone = "Europe/Berlin"
- Teraz należy zapisać plik i zamknąć go.
- 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