Kako namestiti Icinga2 na RHEL, Rocky in AlmaLinux


Icinga2 je s funkcijami bogata odprtokodna aplikacija za spremljanje in opozarjanje omrežja, ki je del orodja za spremljanje Nagios.

Zgrajen je bil za odpravo pomanjkljivosti Nagiosa in uvedbo novih funkcij, kot so izboljšan in sodoben uporabniški vmesnik, REST API za integracijo novih razširitev brez potrebe po spremembah jedra Icinga in dodatni priključki za bazo podatkov.

Icinga2 spremlja razpoložljivost gostiteljev in storitev. Nekatere od teh storitev vključujejo SNMP, HTTP, HTTPS in SSH. Prav tako spremlja omrežne naprave, kot so usmerjevalniki in stikala.

Icinga prav tako zbira meritve in ustvarja dnevnike, da vam da popolno sliko vaše omrežne infrastrukture. Dnevniki in meritve se nato vizualizirajo na nadzornih ploščah, da se vse postavi v boljši kontekst.

V tem članku prikazujemo, kako namestiti nadzorno aplikacijo Icinga2 na RHEL, Rocky Linux in AlmaLinux.

Kot zahteva za namestitev Icinga2 morate imeti nameščen sklad LAMP. Malo previdnosti – Icinga2 za namestitev zahteva PHP 7.3 in novejše različice.

Že imamo vadnico, kako namestiti LAMP na RHEL 8 – ta članek uporabite za namestitev spletnega strežnika Apache in strežnika baz podatkov MariaDB samo, saj se navodila osredotočajo na namestitev PHP 7.2, ki ga Icinga2 ne podpira.

V prvem koraku tega priročnika vas bomo vodili skozi postopek namestitve PHP 7.4 in potrebnih modulov.

1. korak: Namestite PHP in PHP module

Ko sta nameščena Apache in MariaDB, pojdimo naprej in namestimo PHP 7.4. Če imate nameščen PHP 7.2 in novejše različice, ga odstranite tako, da zaženete:

$ sudo dnf remove php

Nato ponastavite trenutni PHP modul v sistemu.

$ sudo dnf module reset php

Po tem navedite razpoložljive različice PHP, kot je prikazano.

$ sudo dnf module list php

Nato omogočite PHP 7.4.

$ sudo dnf module enable php:7.4

Ko je modul PHP 7.4 omogočen, namestite PHP in zahtevane razširitve PHP.

$ sudo dnf install php-gd php-mbstring php-mysqlnd php-curl php-devel php-pear php-xml php-cli php-soap php-intl php-json php-ldap php-xmlrpc php-zip php-json php-common php-opcache php-gmp php-pgsql make -y

Icinga2 zahteva tudi razširitev php-imagick. Vendar tega ni mogoče namestiti konvencionalno, kot smo to storili z drugimi moduli PHP.

Če želite namestiti razširitev, zaženite naslednje ukaze:

$ dnf install -y ImageMagick ImageMagick-devel
$ sudo pecl install imagick

Nato preklopite na korenskega uporabnika in pripnite razširitve v datoteko PHP.INI.

$ su -
$ echo "extension=imagick.so" > /etc/php.d/20-imagick.ini

Če želite uporabiti spremembe, znova zaženite spletni strežnik Apache.

$ sudo systemctl restart httpd

2. korak: Namestite Icinga2 v RHEL 8

Za namestitev Icinga2 moramo dodati skladišče Icinga, ker Icinga2 ne gostuje v repozitorijih AppStream.

Če želite to narediti, najprej omogočite repozitorij EPEL.

$ sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Nato omogočite podpisni ključ GPG.

$ sudo rpm --import https://packages.icinga.com/icinga.key

Nato ustvarite datoteko repozitorija v imeniku /etc/yum.repos.d.

$ sudo vim  /etc/yum.repos.d/icinga2.repo

Prilepite naslednji blok kode

 
[icinga2]
name=Icinga 2 Repository for EPEL 8
baseurl=https://packages.icinga.com/epel/8/release
enabled=1

Shranite in zapustite datoteko repozitorija. Nato posodobite pakete predpomnilnika,

$ sudo dnf makecache

Z dodanim repozitorijom namestite paket Icinga2 in druge povezane pakete Icinga2.

$ sudo dnf install icinga2 icinga2-ido-mysql icinga2-selinux  vim-icinga2 -y

Nato namestite vtičnike Nagios, ki bodo uporabljeni za spremljanje fizičnih in virtualnih gostiteljev.

$ sudo dnf install nagios-plugins-all -y

Nato omogočite modul Icinga2 ido-mysql in druge funkcije.

$ sudo icinga2 feature enable ido-mysql syslog command

Nato znova zaženite Icinga, da bodo spremembe uporabljene.

$ sudo systemctl restart icinga2

3. korak: Ustvarite bazo podatkov za Icinga-IDO MySQL modul

Funkcija icinga2-IDO (Icinga Data Output) mysql je funkcija zaledja, ki zbira in izvozi vse informacije o konfiguraciji in stanju v bazo podatkov. Iz tega razloga moramo ustvariti bazo podatkov za funkcijo Icinga2-ido-mysql.

Torej, prijavite se v strežnik baze podatkov MySQL:

$ sudo mysql -u root -p

Ustvarite bazo podatkov in uporabnika baze podatkov za Icinga2. Nato dodelite vse privilegije uporabnika baze podatkov bazi podatkov Icinga2.

> CREATE DATABASE icinga2;
> GRANT ALL PRIVILEGES ON icinga2.* TO 'icinga2_user'@'localhost' IDENTIFIED BY '[email ';

Uporabite spremembe in zapustite strežnik baz podatkov.

> FLUSH PRIVILEGES;
> EXIT;

Nato uvozite shemo baze podatkov, kot sledi. Pozvani boste za geslo, na podlagi katerega bi morali vnesti geslo za bazo podatkov.

$ sudo mysql -u root -p icinga2 < /usr/share/icinga2-ido-mysql/schema/mysql.sql

Nadaljujte, uredite konfiguracijsko datoteko ido-mysql.

$ sudo vim /etc/icinga2/features-available/ido-mysql.conf

Odkomentirajte blok baze podatkov in določite podrobnosti baze podatkov.

Shrani in zapusti.

Nato zaženite in omogočite Icinga2.

$ sudo systemctl start icinga2
$ sudo systemctl enable icinga2

Nato preverite stanje Icinga2, kot je prikazano.

$ sudo systemctl status icinga2

Iz spodnjega rezultata je jasno, da Icinga deluje po pričakovanjih.

4. korak: Namestite IcingaWeb2 na RHEL 8

IcingaWeb2 je odprtokodno spletno orodje za spremljanje, ki vključuje tudi vmesnik ukazne vrstice. Podpira vse zaledne funkcije Icinga, kot so Icinga-ido-mysql, jedro Icinga, Icinga2 in drugi moduli.

Če želite namestiti IcingaWeb2, namestite PowerTools z naslednjim ukazom.

$ sudo dnf install 'dnf-command(config-manager)'
$ sudo dnf config-manager --set-enabled powertools

Ko je namestitev končana, namestite IcingaWeb2 in CLI, kot je prikazano.

$ sudo dnf install icingaweb2 icingacli

5. korak: Ustvarite bazo podatkov za IcingaWeb2

Tako kot smo ustvarili shemo baze podatkov za funkcijo Icinga2-IDO-mysql, moramo ustvariti tudi drugo shemo za Icinga Web2.

Zato se še enkrat prijavite v strežnik baze podatkov.

$ sudo mysql -u root -p

Ustvarite bazo podatkov in uporabnika baze podatkov za IcingaWeb2, nato dodelite vsa dovoljenja uporabniku baze podatkov v bazi podatkov Icinga Web2.

> CREATE DATABASE icingaweb2;
> GRANT ALL ON icingaweb2.* TO [email  IDENTIFIED BY '[email ';

Shranite spremembe in zapustite.

> FLUSH PRIVILEGES;
> QUIT

Ko je bil Icinga2 nameščen, je bila ustvarjena nova konfiguracijska datoteka za Icinga2. Ogledate si ga lahko, kot je prikazano.

$ cat /etc/httpd/conf.d/icingaweb2.conf

Za začetek sprememb morate znova zagnati spletni strežnik Apache.

$ sudo systemctl restart httpd

Poleg tega morate način SELinux nastaviti na dopusten, kot sledi.

$ sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

6. korak: Dokončajte namestitev Icinga2 iz brskalnika

Korak pri namestitvi Icinga2 je izdelava nastavitvenega žetona, ki je edinstvena koda, ki bo uporabljena za preverjanje pristnosti v prvem koraku pri nastavitvi Icinga2 v brskalniku.

Če želite ustvariti skrivni žeton, zaženite ukaz:

$ sudo icingacli setup token create

Kopirajte in varno shranite nastavitveni žeton. Če v primeru izgube žetona, ga lahko pridobite z ukazom:

$ sudo icingacli setup token show

Na tej točki tega priročnika so vse konfiguracije preverjene. Ostaja le dokončati namestitev iz spletnega brskalnika. Če želite to narediti, prebrskajte prikazani URL

http://server-ip/icingaweb2/setup

Na pozdravno stran prilepite žeton za nastavitev, ki ste ga ustvarili prej.

Ko prilepite žeton, kliknite »Naprej«, da nadaljujete. To vas pripelje na stran »Moduli«. To zagotavlja pregled vseh modulov, ki jih lahko omogočite. Modul nadzor je privzeto omogočen.

Omogočite želene module in se pomaknite navzdol ter kliknite »Naprej«, da nadaljujete.

V tem razdelku zagotovite, da so izpolnjeni vsi predpogoji PHP, kar vključuje module PHP, knjižnice in imenike. Če je vse videti dobro, se pomaknite navzdol in kliknite »Naprej«.

Na strani »Preverjanje pristnosti« pustite vse tako, kot je, in kliknite »Naprej«.

V razdelku »Vir zbirke podatkov« izpolnite podrobnosti baze podatkov za IcingaWeb2, kot je navedeno v 5. koraku.

Če želite potrditi, da so podrobnosti baze podatkov pravilne, se pomaknite do konca navzdol in kliknite »Preveri konfiguracijo«.

Če gre vse v redu, bi morali prejeti obvestilo, da je bila konfiguracija uspešno potrjena.

Če želite preiti na naslednji korak, se pomaknite navzdol in kliknite »Naprej«. Za Authentication Backend preprosto kliknite Naprej, da sprejmete privzete nastavitve.

V naslednjem koraku ustvarite skrbniškega uporabnika, ki bo uporabljen za dostop in prijavo v spletni vmesnik Icinga2.

Za razdelek »Nadzor aplikacij« sprejmite privzete nastavitve in kliknite »Naprej«.

Preglejte vse spremembe, ki ste jih do sedaj naredili na tej poti. Če je vse videti dobro, kliknite »Naprej« in če želite narediti kakršne koli spremembe, kliknite »nazaj« in naredite potrebne spremembe.

Naslednji razdelek je konfiguracija nadzornega modula za IcingaWeb2. To je osnovni modul za Icinga Web 2, ki ponuja poglede statusa in poročanja z robustnimi zmožnostmi filtra za sledenje ključnih dogodkov.

Za nadaljevanje kliknite »Naprej«.

V naslednjem koraku izpolnite obrazec s podrobnostmi baze podatkov za funkcijo Icinga2-ido-mysql, kot je navedeno v 3. koraku.

Če želite potrditi konfiguracijo, se pomaknite navzdol in kliknite »Potrdi konfiguracijo«.

Prejeli boste obvestilo, da je bila konfiguracija uspešno potrjena.

Če želite nadaljevati na naslednji korak, se pomaknite navzdol in kliknite »Naprej«. Za 'Command Transport' uporabite 'Local Command File' kot vrsto transporta in kliknite 'Next'.

V razdelku »Spremljanje varnosti« kliknite »Naprej«.

Še enkrat preglejte vse konfiguracije za nadzorni modul Icinga2. Če je vse videti dobro, kliknite »Dokončaj«, sicer se vrnite nazaj in naredite potrebne spremembe.

Če je bilo z nastavitvijo Icinga Web 2 vse v redu, bi morali prejeti obvestilo, da je bil Icinga Web 2 uspešno nastavljen. Za prijavo v spletni vmesnik kliknite povezavo »Prijava v Icinga Web 2«.

S tem se odpre vmesnik Icinga Web 2. Vnesite podatke o skrbniškem računu in kliknite »prijava«.

To vas pripelje do nadzorne plošče Icinga2, kot je prikazano.

In to je to. Od tam lahko spremljate različne gostitelje in storitve znotraj vaše omrežne infrastrukture. V tem priročniku smo vas popeljali skozi namestitev Icinga Web 2 na RHEL 8, Rocky Linux in AlmaLinux.