Introductie
Zabbix is een open-source monitoring applicatie waarmee je realtime een groot aantal systemen kunt monitoren. Zabbix verzamelt statistieken van andere methodes zoals Zabbix agent, SNMP, IPMI etc. Het biedt een eenvoudige dashboard voor de monitoring van jouw IT-omgeving op één interface.
Je kunt waarschuwingen van templates gebruiken en aangepaste meldingen definiëren bovenop de verzamelde statistieken. Als er een waarschuwing afgaat, kan Zabbix je op de hoogte stellen via veel kanalen zoals e-mail, Slack, Pagerduty enz. Zabbix biedt ook een uitgebreide API-interface die je in jouw app kunt integreren.
In deze tutorial gaan we de laatste versie, Zabbix 4.2 op een Ubuntu 18.04 server installeren. We beveiligen het Zabbix dashboard met behulp van Let’s Encrypt SSL-certificaten. Daarnaast leren we ook hoe je Zabbix agent op een externe server kunt installeren om de gegevens van een externe server te verzamelen.
Vereisten
- 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: Zabbix Repository toevoegen
Download de Zabbix repository installer Debian pakket door het onderstaande commando uit te voeren:
wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1+bionic_all.deb
Installeer de Zabbix repository in het systeem door het pakket dat je het gedownload te installeren.
sudo dpkg -i zabbix-release_4.2-1+bionic_all.deb
Je kunt nu de Ubuntu repository cache updaten.
sudo apt update
Stap 3: Installeer Zabbix
Aangezien we de Zabbix repository al hebben geïnstalleerd, kunnen we nu Zabbix installeren door het onderstaande commando uit te voeren.
sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-agent
Met het commando hierboven worden de Zabbix server en -agent samen met de front-endcomponent geïnstalleerd. Dit commando installeert ook alle andere vereiste afhankelijkheden zoals Apache Web Server, MariaDB Server en PHP 7.2 met de vereiste PHP-modules.
Stap 4: Creëer MySQL Database
MariaDB, is een open-source fork van MySQL die al op de server draait. Beveilig de database-instance door het volgende commando uit te voeren.
sudo mysql_secure_installation
Zorg ervoor dat je een sterke wachtwoord gebruikt voor MySQL root gebruiker.
Nadat je alle stappen hebt doorgenomen, kun je als root gebruiker inloggen op de MySQL shell door het onderstaande commando uit te voeren.
sudo mysql -u root -p
Voer de volgende query’s uit om een nieuwe database en een database gebruiker voor Zabbix applicatie te genereren.
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'Password'; QUIT;
Vervang Password
met een sterke wachtwoord en neemt dit op in jouw notities.
Stap 5: Database importeren
Importeer de Zabbix initial database door het onderstaande commando uit te voeren.
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Je wordt nu gevraagd om de zabbix database gebruiker gegevens in te vullen die je in de vorige stappen hebt gecreëerd.
Open het Zabbix server configuratiebestand.
sudo vi /etc/zabbix/zabbix_server.conf
Scroll naar beneden om de volgende regels te vinden en voer het wachtwoord in van de MySQL zabbix gebruiker.
### Option: DBPassword # Database password. # Comment this line if no password is used. # # Mandatory: no # Default: # DBPassword= DBPassword=Password
Stap 6: Configureer Apache
Schakel de Apache SSL and rewrite module in door het onderstaande commando uit te voeren.
sudo a2enmod ssl rewrite
Open het Zabbix Apache Vhost configuratiebestand.
sudo vi /etc/apache2/conf-enabled/zabbix.conf
Scroll naar beneden om de PHP configuratie te vinden. Maak de regel php_value date.timezone
en stel de PHP-tijdzone in op basis van jouw geografische locatie.
<IfModule mod_php7.c> php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value max_input_vars 10000 php_value always_populate_raw_post_data -1 php_value date.timezone Europe/Amsterdam </IfModule>
Stap 7: Configureer Let’s Encrypt SSL
Installeer de Certbot repository door het onderstaande commando uit te voeren.
sudo apt -y install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt update
Installeer de Certbot voor Apache door het onderstaande commando uit te voeren.
sudo apt-get install certbot python-certbot-apache
Genereer het certificaat en installeer het op de standaard virtuele host door het volgende commando uit te voeren.
sudo certbot --apache -d example.com
Je wordt na het uitvoeren van dit commando om een e-mailadres 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.
Het Certbot-pakket wordt geleverd met een cron-taak die de certificaten voor de vervaldatum automatisch zal verlengen.
Herstart tot slot de Zabbix server, agent en Apache webserver.
sudo systemctl restart zabbix-server zabbix-agent apache2
Zorg er ook voor dat de Zabbix server, agent en Apache webserver automatisch opstarten tijdens het booten.
sudo systemctl enable zabbix-server zabbix-agent apache2
Stap 8: Rond de installatie af via de Browser
Open nu jouw favoriete browser en navigeer naar https://example.com/zabbix
je ziet nu de volgende interface.
Als je de tutorial correct hebt gevolgd, zie je dat alle vereisten zijn geconfigureerd en geïnstalleerd.
In de volgende interface, moet je de databasegegevens invullen die je in stap 4 hebt gecreëerd.
In de interface, Zabbix server details, laat je de standaardopties staan en ga verder naar de volgende interface. In de laatste stap toont het installatieprogramma een overzicht van de wijzigingen. Ga verder om de software te installeren.
Na de installatie wordt je geleid naar het inlogscherm. Gebruik de standaard login Admin en zabbix om om in te loggen. Zorg ervoor dat je het wachtwoord direct na je aanmelding wijzigt.
Zabbix is standaard geconfigureerd om de server te monitoren. Als het goed is zie je dat de server en de bijhorende problemen van de server draaien.
Stap 9: Installeer Remote Zabbix Agent
In deze tutorial leer je hoe je Zabbix agent op een externe server kunt toevoegen met behulp van PSK-codering (Pre-Shared Keys). We gebruiken hiervoor Ubuntu 18.04. Meld je aan op de externe server met ssh en stel de Zabbix repository in door het volgende commando uit te voeren.
wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1+bionic_all.deb sudo dpkg -i zabbix-release_4.2-1+bionic_all.deb sudo apt update
Installeer Zabbix agent door het volgende commando uit te voeren.
sudo apt -y install zabbix-agent
Genereer een 32-bit sleutel door gebruik te maken van OpenSSL en bewaar dit bestand.
openssl rand -hex 32 | sudo tee /etc/zabbix/zabbix_agentd.psk
Het bovenstaande commando zal ook de sleutel op de terminal afdrukken. Zorg ervoor dat je dit noteert, omdat dit later nodig hebt.
Open nu het Zabbix client configuratiebestand door het volgende commando uit te voeren:
sudo vi /etc/zabbix/zabbix_agentd.conf
Scroll naar beneden om de volgende regels te vinden.
Server=127.0.0.1
Vervang het met de daadwerkelijke IP-adres van jouw Zabbix server.
Server=10.0.25.26
Geef ook de daadwerkelijke IP-adres van de Zabbix server in dit bestand op ServerActive
ServerActive=10.0.25.26
Scroll naar beneden op de volgende regels te vinden.
####### TLS-RELATED PARAMETERS ####### ### Option: TLSConnect # How the agent should connect to server or proxy. Used for active checks. # Only one value can be specified: # unencrypted - connect without encryption # psk - connect using TLS and a pre-shared key # cert - connect using TLS and a certificate # # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection) # Default: # TLSConnect=unencrypted
Haal dit commentaar weg TLSConnect
en stel deze in op psk
.
TLSConnect=psk
Haal dit commentaar weg # TLSAccept=unencrypted
en verander het naar:
TLSAccept=psk
Haal dit commentaar weg # TLSPSKIdentity=
en verander het naar:
TLSPSKIdentity=Node01
Haal dit commentaar weg # TLSPSKFile=
en verander het naar:
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
Sla het bestand op en verlaat de editor. Herstart de Zabbix agent en schakel deze automatisch in bij het opstarten door het onderstaande commando uit te voeren.
sudo systemctl restart zabbix-agent sudo systemctl enable zabbix-agent
Stap 10: Remote Zabbix Agent toevoegen
Log in op jouw Zabbix server dashboard en navigeer naar Configuration >> Hosts. Klik op Create Host om een nieuwe host toe te voegen.
Je kunt op de create hosts interface, een naam geven voor je node. Selecteer Linux Servers in Groups en geef het IP-adres van de agent-machine op.
In de Template tab zoek je naar Template OS Linux en klik je vervolgens op de add knop.
Navigeer naar de Encryption tab and selecteer PSK in Connections to host en Connections from host. Geef dezelfde PSK-identiteitsnaam op die je hebt ingevuld in de agent-configuratie. Geef ook de 32-bit PSK op die je hebt gegenereerd in de agent-machine.
Nadat je op de knop Toevoegen hebt geklikt, wordt de externe host aan de server toegevoegd. Als je groene kleur op ZBX ziet, dan betekent dit dat de server met de externe Zabbix agent kan praten.
Je ziet de problemen met betrekking tot de nieuwe node op de dashboard-pagina.
Conclusie
In deze tutorial hebben we geleerd hoe je Zabbix server 4.2 op Ubuntu 18.04 kunt installeren. We hebben ook het Zabbix dashboard beveiligd met een Let’s Encrypt SSL certificaat. We hebben de Zabbix agent met succes toegevoegd op een externe server en onze Zabbix server. Je kunt nu meer hosts toevoegen aan jouw Zabbix instance.
Geef een reactie