Monitoring Server creëren met Icinga2

Estimated reading time: 5 min

Introductie

Icinga2 is een opensourcepakket waarmee je kunt bewaken over jouw netwerk, hosts en andere diensten. Icinga kan eenvoudig een groot aantal hosts over meerdere locaties monitoren. Daarnaast worden problemen op de hosts en services bij uitval met unified view getoond. Incinga Web 2 is een webapplicatie die samen met Icinga 2 wordt gebruikt om recourses via een webbrowser interactief te monitoren. 

In deze tutorial gaan we Icinga 2 installeren met IDO MySQL. We zullen ook Icinga 2 API inschakelen die door Icinga Web 2 wordt gebruikt om met Icinga 2 te communiceren. Daarnaast zullen we Icinga Web 2 beveiligen met Let’s Encrypt SSL.

Vereisten

  • Cloud VPS of Dedicated Server met minimaal 1 GB RAM en Ubuntu 18.04.
  • Je moet ingelogd zijn via SSH als sudo of root gebruiker. In deze tutorial gaan we ervan uit dat je bent aangemeld als sudo-gebruiker.
  • Een domeinnaam die verwijst naar jouw VPS of Dedicated server om een Let’s Encrypt SSL te creëren.

Stap 1: Systeem updaten

Begin eerst met het updaten van jouw systeem. Installeer de laatste pakketten en beveiligingspatches door de onderstaande commando’s uit te voeren.

sudo apt update
sudo apt upgrade -y

Herstart het systeem na de upgrade door het volgende commando uit te voeren sudo reboot.

Stap 2: Installeer Icinga2

Installeer de vereiste pakketten om de installatiepakketten via HTTPS te kunnen transporteren. 

sudo apt-get -y install apt-transport-https wget gnupg

Geef aan dat je de GPG-sleutel van de Icinga repository vertrouwt door het volgende commando uit te voeren:

wget -O - https://packages.icinga.com/icinga.key | sudo apt-key add -

Maak het repository bestand in het systeem aan zodat je de pakketten uit de Icinga repository kunt installeren.

echo "deb https://packages.icinga.com/ubuntu icinga-bionic main" | sudo tee /etc/apt/sources.list.d/icinga.list
echo "deb-src https://packages.icinga.com/ubuntu icinga-bionic main" | sudo tee -a /etc/apt/sources.list.d/icinga.list

Je kunt nu de repository cache updaten.

sudo apt-get update

Installeer Icinga2 samen met Monitoring Plugins. Monitoring Plugins is een uitgebreide plugin set die je samen met Icinga kunt gebruiken om externe services te controleren. Het bestaat uit meer dan 50 opdrachtregelprogramma’s voor specifieke checks zoals systeemmonitoring, netwerkmonitoring, enz

sudo apt -y install icinga2 monitoring-plugins

Start en activeer Icinga door het onderstaande commando uit te voeren.

sudo systemctl enable icinga2
sudo systemctl start icinga2

Stap 3: Icinga2 MySQL instellen

Installeer de MySQL database server door het volgende commando uit te voeren.

sudo apt -y install mysql-server mysql-client
sudo mysql_secure_installation

Installeer de MySQL IDO(Icinga Data Output) feature op Icinga2 door het onderstaande commando uit te voeren. Je wordt gevraagd of je icinga2-ido-mysql met dbconfig-common wilt installeren. Kies ja een geef een sterke wachtwoord op voor  icinga2-ido-mysql wanneer dit wordt gevraagd.

sudo apt -y install icinga2-ido-mysql
sudo icinga2 feature enable ido-mysql

Herstat icinga2 zodat alle wijzigingen van kracht worden.

sudo systemctl restart icinga2

Je kunt de databaseconfiguratie bekijken door naar dit bestand te kijken: /etc/icinga2/features-available/ido-mysql.conf.

sudo cat /etc/icinga2/features-available/ido-mysql.conf

Noteer de inloggegevens omdat je deze in de volgende stappen nodig zult hebben.

Stap 4: Icinga2 API instellen

Voer het onderstaande Icinga commando uit om de API feature in te schakelen. 

sudo icinga2 api setup

Het bovenstaande commando zal dit bestand aanmaken api-users.conf met root als standaard gebruiker, alle rechten voor Icinga2 API wordt toegekend aan deze gebruiker. Laten we een nieuwe API-gebruiker maken met minimale rechten die vereist zijn voor Icinga Web.

Bewerk dit bestand api-users.conf en voeg een API user object toe.

sudo vi /etc/icinga2/conf.d/api-users.conf

Voeg aan het einde deze regels toe. Zorg ervoor dat je PassWord vervangt met een sterke wachtwoord.

object ApiUser "icingaweb2" {
  password = "PassWord"
  permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]
}

Noteeer de logingegevens omdat je deze in de volgende stappen nodig zult hebben. Icinga2 API is nu ingeschakeld voor Icinga Web. API server luistert standaard naar po0rt 5665.

Herstart icinga2 zodat alle veranderingen van kracht worden.

sudo systemctl restart icinga2

Stap 5: Installeer Icinga Web 2 met Let’s Encrypt SSL

Om Icinga Web werkend te krijgen moeten we een webserver installeren. Icinga beveelt Apache of Nginx aan. In deze tutorial gaan we Apache 2 installeren voor Icinga2 web.

Installeer Apache webserver door het onderstaande commando uit te voeren.

sudo apt -y install apache2

Aangezien we al de Icinga2-repository hebben opgezet, kunnen we Icinga Web 2 direct installeren door het onderstaande commando uit te voeren. Met dit commando worden ook PHP 7.2 samen andere modules en PHP GD geinstalleerd. Dit is nodigom PDF-rapporten te exporteren.

sudo apt -y install icingaweb2 icingacli libapache2-mod-php php-gd

Door de Icinga Web 2 pakketten te installeren worden ook de Apache virtual hosts geconfigureerd, we hoeven dus geen handmatige configuraties uit te voeren. 

We zullen Icinga web beveiligen met behulp van Let’s Encrypt SSL. Voor het genereren van de Let’s Encrypt-certificaten zullen we gebruikmaken van Certbot, dit is een officiële clienttoepassing waarmee je certificaten kunt genereren.

Schakel SSL en de Rewrite module van Apache in, voer het volgende commando uit.

sudo a2enmod ssl rewrite

Voeg het Certbot repository toe aan het systeem door het onderstaande commando uit te voeren,

sudo add-apt-repository ppa:certbot/certbot

Installeer Certbot voor Apache.

sudo apt -y install python-certbot-apache
sudo certbot --apache -d example.com

Je wordt na het uitvoeren van dit commando om een emailadres gevraagd waar renewal notificaties naar gestuurd kunnen worden. Tijdens de installatie van het certificaat wordt er gevraagd of je alle HTTP-aanvragen naar HTTPS wilt doorsturen. Kies optie 2 om alle HTTP-aanvragen automatisch door te sturen naar HTTPS.

Bewerk het PHP-configuratiebestand om de standaardtijdzone in te stellen.

sudo vi /etc/php/7.2/apache2/php.ini

Zoek naar de onderstaande regel.

;date.timezone =

Verwijder de regel tussen de puntkomma en stel jouw standaard PHP tijdzone in.

date.timezone = "Europe/Amsterdam"

Herstart Apache2 webserver zodat de wijzigingen van kracht worden.

sudo systemctl restart apache2

Stap 6: Rond de Icinga Web 2 installatie af

Voordat je Icinga Web vanuit een browser kunt installeren, moeten we een nieuwe MySQL-database maken. Log opnieuw in op de MySQL-prompt als root-gebruiker.

sudo mysql -u root -p

Voer de volgende query’s uit om een database en gebruiker voor Icinga Web aan te maken, vervangPassWord met een sterke wachtwoord.

CREATE DATABASE icingaweb2;
GRANT ALL ON icingaweb2.* TO [email protected] IDENTIFIED BY 'PassWord';
exit

Maak een setup token aan, omdat de browser hierom zal vragen.

sudo icingacli setup token create;

Open nu jouw favoriete browser en navigeer naar https://example.com/icingaweb2. Je wordt gevraagd om een setup token in te voeren, voer de token in die je met het commando hebt aangemaakt.

In de Module tab, selecteer je Monitoring omdat we voor nu geen andere modules nodig hebben.

Als je de tutorial correct hebt gevolgd, zie op het tabblad Requirements alles op groen staan behalve IDO PostgreSQL. Dit is geen probleem omdat we PostgreSQL niet gebruiken om de database op te slaan.

Kies Database authentication in de Authentication tab.

Geef de databasegegevens op in de Database Resource tab.

In de Backend Authentication kies je icingaweb2 en creëer je een neiuwe administrative gebruiker als Icinga Web admin in de Administration tab. Ten slotte laat je de standaard geselecteerde opties in de Application Configuration gewoon staan zoals het is. 

We hebben nu alle Icinga-webconfiguraties doorgelopen, het installatieprogramma zal je nu een overzicht geven van de configuratie. Controleer grondig of alles klopt.

Als alles klopt kun je klikken op Next.

De web installer zal je nu vragen om de Monitoring module van Icinga2 te configureren. Klik op Next om te beginnen.

Laat de standaardoptie voor  icinga2 and IDO zo staan in de Monitoring Backend tab en ga verder.

Vul de databasegegevens die je in stap 3 heb aangemaakt in bij de Monitoring IDO Resource tab.

Bij Command Transport, vul je de gegevens van de API gebruiker in die je in stap 4 hebt gemaakt, gebruik localhost en poort 5665

Laat de standaardconfiguratie zoals het is bij Monitoring Security, je ziet nu een samenvatting van de configuratie. Klik op volgende om de configuratie die je hebt gemaakt toe te passen.

Na de istallatie kun je klikken op Login to Icinga Web 2 of je kunt deze website bezoeken https://example.com/icingaweb2 om in te loggen met de administatorgegevens die je hebt aangemaakt tijdens de installatie. Als het goed is zie je het Icinga Web 2 dashboard.

Conclusie

In deze tutorial hebben we met succes Icinga2 samen met Icinga Web 2 geïnstalleerd We hebben ook Icinga Web 2 beveiligd met Let’s Encrypt SSL. Icinga2 master node kan standaard zichzelf monitor. Je kunt meer hosts toevoegen op jouw Icinga2 instance. Je kunt deze documentatie om meer te leren over Icinga2.

Was this article helpful?
Dislike 0
Views: 18

Lees Interacties

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *