Hvordan installere Icinga2 på RHEL, Rocky og AlmaLinux


Icinga2 er en funksjonsrik åpen kildekode-nettverksovervåkings- og varslingsapplikasjon som er en del av Nagios overvåkingsverktøy.

Den ble bygget for å adressere manglene til Nagios og introdusere nye funksjoner som et forbedret og moderne brukergrensesnitt, en REST API for å integrere nye utvidelser uten behov for å gjøre endringer i Icinga-kjernen, og flere databasekoblinger.

Icinga2 overvåker tilgjengeligheten til verter så vel som tjenester. Noen av disse tjenestene inkluderer SNMP, HTTP, HTTPS og SSH. Den overvåker også nettverksenheter som rutere og svitsjer.

Icinga samler også inn beregninger og genererer logger for å gi deg et komplett bilde av nettverksinfrastrukturen din. Loggene og beregningene blir deretter visualisert på dashboards for å sette alt inn i en bedre kontekst.

I denne artikkelen viser vi hvordan du installerer Icinga2-overvåkingsapplikasjonen på RHEL, Rocky Linux og AlmaLinux.

Som et krav for å installere Icinga2, må du ha LAMP-stabelen installert. En liten forsiktighet her – Icinga2 krever PHP 7.3 og nyere versjoner for installasjon.

Vi har allerede en veiledning om hvordan du installerer LAMP på RHEL 8 – Bruk denne artikkelen til å installere Apache-nettserveren og MariaDB-databaseserveren bare siden instruksjonene fokuserer på å installere PHP 7.2 som ikke støttes av Icinga2.

I det første trinnet i denne veiledningen vil vi lede deg gjennom prosessen med å installere PHP 7.4 og de nødvendige modulene.

Trinn 1: Installer PHP- og PHP-moduler

Med Apache og MariaDB installert, la oss gå videre og installere PHP 7.4. Hvis du har installert PHP 7.2 og nyere versjoner, fjern det ved å kjøre:

$ sudo dnf remove php

Deretter tilbakestiller du gjeldende PHP-modul på systemet.

$ sudo dnf module reset php

Etter det, liste de tilgjengelige PHP-versjonene som vist.

$ sudo dnf module list php

Aktiver deretter PHP 7.4.

$ sudo dnf module enable php:7.4

Når PHP 7.4-modulen er aktivert, installer PHP og de nødvendige PHP-utvidelsene.

$ 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 krever også php-image-utvidelsen. Dette kan imidlertid ikke installeres konvensjonelt slik vi gjorde med de andre PHP-modulene.

For å installere utvidelsen, kjør følgende kommandoer:

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

Bytt deretter til root-brukeren og legg til utvidelsene til PHP.INI-filen.

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

For å bruke endringene, start Apache-nettserveren på nytt.

$ sudo systemctl restart httpd

Trinn 2: Installer Icinga2 i RHEL 8

For å installere Icinga2, må vi legge til Icinga-depotet siden Icinga2 ikke er vert på AppStream-repositoriene.

For å gjøre det må du først aktivere EPEL-depotet.

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

Deretter aktiverer du GPG-signeringsnøkkelen.

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

Deretter oppretter du en depotfil i katalogen /etc/yum.repos.d.

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

Lim inn følgende kodeblokk

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

Lagre og avslutt depotfilen. Oppdater deretter cache-pakkene,

$ sudo dnf makecache

Med depotet lagt til, installer Icinga2-pakken og andre tilknyttede Icinga2-pakker.

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

Installer deretter Nagios-plugins som skal brukes til å overvåke både fysiske og virtuelle verter.

$ sudo dnf install nagios-plugins-all -y

Deretter aktiverer du Icinga2 ido-mysql-modulen og andre funksjoner.

$ sudo icinga2 feature enable ido-mysql syslog command

Start deretter Icinga på nytt for endringene som skal brukes.

$ sudo systemctl restart icinga2

Trinn 3: Opprett en database for Icinga-IDO MySQL-modul

icinga2-IDO (Icinga Data Output) mysql-funksjonen er en backend-funksjon som samler og eksporterer all konfigurasjons- og statusinformasjon til en database. Av denne grunn må vi lage en database for Icinga2-ido-mysql-funksjonen.

Så logg inn på MySQL-databaseserveren:

$ sudo mysql -u root -p

Opprett en database så vel som en databasebruker for Icinga2. Gi deretter alle rettigheter på databasebrukeren til Icinga2-databasen.

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

Bruk endringene og gå ut av databaseserveren.

> FLUSH PRIVILEGES;
> EXIT;

Deretter importerer du databaseskjemaet som følger. Du vil bli bedt om et passord som du bør angi databasepassordet på.

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

Gå videre, rediger ido-mysql-konfigurasjonsfilen.

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

Fjern kommentarene til databaseblokken og spesifiser databasedetaljene.

Lagre og lukk.

Deretter starter og aktiverer du Icinga2.

$ sudo systemctl start icinga2
$ sudo systemctl enable icinga2

Bekreft deretter statusen til Icinga2 som vist.

$ sudo systemctl status icinga2

Fra utdataene nedenfor er det tydelig at Icinga er oppe og går som forventet.

Trinn 4: Installer IcingaWeb2 på RHEL 8

IcingaWeb2 er et åpen kildekode nettbasert overvåkingsverktøy som også inneholder et kommandolinjegrensesnitt. Den støtter alle backend-Icinga-funksjonene som Icinga-ido-mysql, Icinga core, Icinga2 og andre moduler.

For å installere IcingaWeb2, installer PowerTools ved å bruke følgende kommando.

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

Når installasjonen er fullført, installer IcingaWeb2 og CLI som vist.

$ sudo dnf install icingaweb2 icingacli

Trinn 5: Opprett en database for IcingaWeb2

Akkurat som vi opprettet et databaseskjema for Icinga2-IDO-mysql-funksjonen, må vi også lage et andre skjema for Icinga Web2.

Så igjen, logg inn på databaseserveren.

$ sudo mysql -u root -p

Opprett en database og databasebruker for IcingaWeb2 og gi deretter alle tillatelsene til databasebrukeren på Icinga Web2-databasen.

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

Lagre endringene og avslutt.

> FLUSH PRIVILEGES;
> QUIT

Da Icinga2 ble installert, ble det opprettet en ny konfigurasjonsfil for Icinga2. Du kan se den som vist.

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

Du må starte Apache-nettserveren på nytt for at endringene skal starte.

$ sudo systemctl restart httpd

I tillegg må du også sette SELinux-modus til tillatlig som følger.

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

Trinn 6: Fullfør Icinga2-oppsettet fra nettleseren

Steget i installasjonen av Icinga2 er opprettelsen av et setup token, som er en unik kode som vil bli brukt for autentisering på det første trinnet når du setter opp Icinga2 i en nettleser.

For å generere et hemmelig token, kjør kommandoen:

$ sudo icingacli setup token create

Kopier og oppbevar konfigurasjonstokenet trygt. Hvis du mister tokenet, kan du hente det ved å kjøre kommandoen:

$ sudo icingacli setup token show

På dette tidspunktet i denne veiledningen er alle konfigurasjonene i sjakk. Det som gjenstår er å fullføre installasjonen fra en nettleser. For å gjøre dette, bla gjennom URL-en som vises

http://server-ip/icingaweb2/setup

På velkomstsiden limer du inn oppsetttokenet du genererte tidligere.

Når du har limt inn tokenet, klikk Neste for å fortsette. Dette tar deg til 'Moduler'-siden. Dette gir en oversikt over alle modulene du kan aktivere. Som standard er overvåking-modulen aktivert.

Aktiver dine foretrukne moduler og bla ned og klikk på Neste for å fortsette.

I denne delen, sørg for at alle PHP-forutsetningene er oppfylt, som inkluderer PHP-moduler, biblioteker og kataloger. Hvis alt ser bra ut, bla ned og klikk på Neste.

På 'Autentisering'-siden lar du alt være som det er og klikker på 'Neste'.

I 'Databaseressurs'-delen fyller du inn databasedetaljene for IcingaWeb2 som spesifisert i trinn 5.

For å bekrefte at databasedetaljene er korrekte, bla helt ned og klikk på Valider konfigurasjon.

Hvis alt går bra, bør du få et varsel om at konfigurasjonen ble validert.

For å gå over til neste trinn, bla ned og klikk på Neste. For 'Authentication Backend' klikker du bare på 'Next' for å godta standardinnstillingene.

I neste trinn oppretter du en Admin-bruker som skal brukes til å få tilgang til og logge på Icinga2-nettgrensesnittet.

For delen Aplikasjonsovervåking, godta standardinnstillingene og klikk Neste.

Se gjennom alle endringene du har gjort så langt underveis. Hvis alt ser bra ut, klikk Neste og hvis du føler for å gjøre endringer, klikk tilbake og foreta de nødvendige endringene.

Den neste delen er konfigurasjonen av overvåkingsmodulen for IcingaWeb2. Dette er kjernemodulen for Icinga Web 2 som tilbyr status- og rapporteringsvisninger med robuste filterfunksjoner for sporing av viktige hendelser.

Klikk Neste for å fortsette.

I neste trinn fyller du ut skjemaet med databasedetaljene for Icinga2-ido-mysql-funksjonen som spesifisert i trinn 3.

For å validere konfigurasjonen, bla ned og klikk Valider konfigurasjon.

Du vil få varselet om at konfigurasjonen ble validert.

For å gå videre til neste trinn, bla ned og klikk Neste. For Kommandotransport, bruk Lokal kommandofil som transporttype og klikk Neste.

I delen Overvåking av sikkerhet klikker du på Neste.

Igjen, se gjennom alle konfigurasjonene for Icinga2-overvåkingsmodulen. Hvis alt ser bra ut, klikker du på Fullfør, ellers går du tilbake og gjør de nødvendige endringene.

Hvis alt gikk bra med Icinga Web 2-oppsettet, bør du få et varsel om at Icinga Web 2 har blitt satt opp. For å logge på nettgrensesnittet, klikk på koblingen Logg på Icinga Web 2.

Dette åpner Icinga Web 2-grensesnittet. Oppgi administratorkontodetaljer og klikk på logg inn.

Dette fører deg til Icinga2-overvåkingsdashbordet som vist.

Og det er det. Derfra kan du overvåke ulike verter og tjenester innenfor nettverksinfrastrukturen din. I denne guiden har vi ledet deg gjennom installasjonen av Icinga Web 2 på RHEL 8, Rocky Linux og AlmaLinux.