Systeemvereisten
Vereisten
Zabbix heeft specifieke hardware- en softwarevereisten waaraan voldaan moet worden, en deze vereisten kunnen na verloop van tijd veranderen. Ze zijn ook afhankelijk van de grootte van je installatie en de softwarestack die je kiest. Voordat je hardware aanschaft of een databaseversie installeert, is het essentieel om de Zabbix documentatie te raadplegen voor de meest recente vereisten voor de versie die je van plan bent te installeren. Je kunt de meest recente vereisten vinden https://www.zabbix.com/documentation/current/en/manual/installation/requirements. Zorg ervoor dat je de juiste Zabbix-versie uit de lijst selecteert.
Voor kleinere of testopstellingen kan Zabbix gemakkelijk draaien op een systeem met 2 CPU's en 8 GB RAM. Echter, de grootte van je setup, het aantal items dat je monitort, de triggers die je aanmaakt en hoe lang je van plan bent gegevens te bewaren, zullen invloed hebben op de benodigde bronnen. In de gevirtualiseerde omgevingen van vandaag is mijn advies om klein te beginnen en zo nodig op te schalen.
Je kunt alle componenten (Zabbix server, database, webserver) op één machine installeren of verdelen over meerdere servers. Noteer voor de eenvoud de servergegevens:
| Component | IP-adres |
|---|---|
| Zabbix server | |
| Databaseserver | |
| Webserver |
Tip
Zabbix package names often use dashes (-) in their names, such as zabbix-get
or zabbix-sender, but the binaries themselves may use underscores (_),
like zabbix_sender or zabbix_server. This naming discrepancy can sometimes
be confusing, particularly if you are using packages from non-official Zabbix
repositories.
Always check if a binary uses a dash or an underscore when troubleshooting.
Warning
Starting from Zabbix 7.2, only MySQL (including its forks) and PostgreSQL are supported as back-end databases. Earlier versions of Zabbix also included support for Oracle Database; however, this support was discontinued with Zabbix 7.0 LTS, making it the last LTS version to officially support Oracle DB.
Basis OS-configuratie
Besturingssystemen, zoveel keuzes, elk met zijn eigen voordelen en trouwe gebruikers. Hoewel Zabbix op een groot aantal platformen geïnstalleerd kan worden, zou het onpraktisch zijn om het proces voor elk beschikbaar besturingssysteem te documenteren. Om dit boek doelgericht en efficiënt te houden, hebben we ervoor gekozen om alleen de meest gebruikte opties te behandelen: Ubuntu en Red Hat gebaseerde distributies.
Omdat niet iedereen toegang heeft tot een Red Hat Enterprise Linux (RHEL) of een SUSE Linux Enterprise Server (SLES) abonnement, ook al biedt een ontwikkelaarsaccount beperkte toegang, hebben we gekozen voor Rocky Linux respectievelijk openSUSE Leap als een gemakkelijk beschikbaar alternatief. Voor dit boek gebruiken we Rocky Linux 9.x, openSUSE Leap 16 en Ubuntu LTS 24.04.x.
Note
OS installation steps are outside the scope of this book, but a default or even a minimal installation of your preferred OS should be sufficient. Please refrain from installing graphical user interfaces (GUIs) or desktop environments, as they are unnecessary for server setups and consume valuable resources.
Zodra je het OS van je voorkeur hebt geïnstalleerd, zijn er een paar essentiële configuraties die je moet uitvoeren voordat je verder gaat met de installatie van Zabbix. Voer de volgende stappen uit op alle de servers die Zabbix componenten zullen hosten (d.w.z., Zabbix server, database server en webserver).
Het systeem bijwerken
Voordat je de Zabbix componenten of andere nieuwe software installeert, is het verstandig om ervoor te zorgen dat je besturingssysteem up-to-date is met de laatste patches en beveiligingsfixes. Dit zal helpen om de stabiliteit van het systeem en de compatibiliteit met de software die je gaat installeren te behouden. Zelfs als je OS-installatie recent is, is het nog steeds aan te raden om een update uit te voeren om er zeker van te zijn dat je de nieuwste pakketten hebt.
Om je systeem bij te werken, voer je de volgende opdracht uit op basis van je OS:
Info "Werk uw systeem bij
Red Hat
```bash
dnf update
```
SUSE
```bash
zypper refresh
zypper update
```
Ubuntu
```bash
sudo apt update
sudo apt upgrade
```
Wat is apt, dnf of zypper?
- DNF (Dandified YUM) is a package manager used in recent Red Hat-based systems (invoked as
dnf). - ZYpp (Zen / YaST Packages Patches Patterns Products) is the package manager
used on SUSE-based systems (invoked as
zypper) and - APT (Advanced Package Tool) is the package manager used on Debian/Ubuntu-based systems (invoked as
apt).
If you're using another distribution, replace dnf/zypper/apt with your appropriate
package manager, such as yum, pacman, emerge, apk or ... .
Do note that package names may also vary from distribution to distribution.
Tip
Regularly updating your system is crucial for security and performance. Consider setting up automatic updates or scheduling regular maintenance windows to keep your systems current.
Sudo
Standaard draaien de Zabbix processen zoals de Zabbix server en agent onder hun
eigen ongeprivilegieerde gebruikersaccounts (bijvoorbeeld zabbix). Er zijn
echter scenario's waarbij verhoogde rechten nodig zijn, zoals het uitvoeren van
aangepaste scripts of commando's waarvoor root-toegang nodig is. Ook zullen we
door dit boek heen bepaalde administratieve taken uitvoeren waarvoor sudo op
het systeem nodig is.
Meestal is sudo al aanwezig op de meeste systemen, maar wanneer je een
minimale installatie van je OS hebt uitgevoerd, kan het ontbreken. Daarom moeten
we ervoor zorgen dat het geïnstalleerd is.
Dit zal de Zabbix gebruiker ook toelaten om specifieke geconfigureerde commando's uit te voeren met verhoogde rechten zonder volledig te moeten overschakelen naar de root gebruiker.
Wat is sudo
sudo (short for "superuser do") is a command-line utility that allows
permitted users to execute commands with the security privileges of another
user, typically the superuser (root). It is commonly used in Unix-like
operating systems to perform administrative tasks without needing to log in
as the root user.
Om sudo te installeren, voer het volgende commando uit op basis van je OS:
sudo installeren
Red Hat
SUSE
Ubuntu
On Ubuntu, sudo is normally installed by default. Root access is managed
through sudo for the initial user created during installation.
Als sudo al geïnstalleerd is, zullen deze commando's je informeren dat de
laatste versie al aanwezig is en dat er geen verdere actie nodig is. Zo niet,
dan zal de pakketbeheerder doorgaan met de installatie.
Firewall
Vervolgens moeten we ervoor zorgen dat de firewall geïnstalleerd en geconfigureerd is. Een firewall is een cruciaal beveiligingsonderdeel dat helpt om je server te beschermen tegen ongeautoriseerde toegang en potentiële bedreigingen door inkomend en uitgaand netwerkverkeer te controleren op basis van vooraf bepaalde beveiligingsregels.
Voer het volgende commando uit om de firewall te installeren en in te schakelen:
Installeer en schakel de firewall in
Red Hat
SUSEUbuntu
Wat is firewalld / ufw?
Firewalld is the replacement for iptables in RHEL- and SUSE-based systems and allows changes to take effect immediately without needing to restart the service. If your distribution does not use Firewalld, refer to your OS documentation for the appropriate firewall configuration steps. Ubuntu makes use of UFW which is merely a frontend for iptables.
Tijdens de Zabbix installatie in de volgende hoofdstukken moeten we specifieke poorten openen in de firewall om communicatie tussen Zabbix componenten mogelijk te maken.
In plaats van alleen poorten te openen, zoals we in de volgende hoofdstukken zullen doen, kun je er ook voor kiezen om speciale firewall zones te definiëren voor specifieke gebruikssituaties. Deze aanpak verbetert de beveiliging door diensten te isoleren en toegang te beperken op basis van vertrouwensniveaus. Bijvoorbeeld...
Je kunt het aanmaken van de zone bevestigen door het volgende commando uit te voeren:
Het aanmaken van de zone verifiëren
Het gebruik van zones in firewalld om firewallregels te configureren biedt verschillende voordelen op het gebied van veiligheid, flexibiliteit en beheergemak. Hier wordt uitgelegd waarom zones nuttig zijn:
- Granulaire toegangscontrole :
:firewalld zones staan verschillende vertrouwensniveaus toe voor verschillende netwerkinterfaces en IP bereiken. Je kunt definiëren welke systemen verbinding mogen maken met PostgreSQL op basis van hun vertrouwensniveau.
- Vereenvoudigd regelbeheer:
:In plaats van het handmatig definiëren van complexe iptable regels, bieden zones een georganiseerde manier om firewall regels te groeperen en te beheren op basis van gebruiksscenario's.
- Verbeterde beveiliging:
- Door de toegang tot applicaties te beperken tot een specifieke zone, voorkom je ongeoorloofde verbindingen vanaf andere interfaces of netwerken.
- Dynamische configuratie:
- Firewalld ondersteunt runtime en permanente regelconfiguraties, waardoor veranderingen mogelijk zijn zonder bestaande verbindingen te verstoren.
- Ondersteuning voor meerdere interfaces:
- Als de server meerdere netwerkinterfaces heeft, staan zones een verschillend beveiligingsbeleid toe voor elke interface.
Om alles samen te voegen en een zone toe te voegen voor, in dit voorbeeld, PostgreSQL zou het er als volgt uitzien:
Firewalld met zoneconfiguratie voor PostgreSQL databasetoegang
Waarbij het bron IP het enige adres is dat een verbinding met de database tot
stand mag brengen.
Als je zones wilt gebruiken wanneer je firewalld gebruikt, zorg er dan voor dat je de instructies in de volgende hoofdstukken dienovereenkomstig aanpast.
Tijdserver
Een andere cruciale stap is het configureren van de tijdserver en het synchroniseren van de Zabbix server met behulp van een NTP client. Nauwkeurige tijdsynchronisatie is van vitaal belang voor Zabbix, zowel voor de server als voor de apparaten die het bewaakt. Als een van de hosts een onjuiste tijdzone heeft, kan dat tot verwarring leiden, zoals het onderzoeken van een probleem in Zabbix dat uren eerder lijkt te zijn gebeurd dan in werkelijkheid het geval was.
Gebruik het volgende commando om chrony, onze NTP-cliënt, te installeren en in te schakelen:
NTP-cliënt installeren
Red Hat
SUSE
Ubuntu
Controleer na de installatie of Chrony is ingeschakeld en draait door de status te controleren met het volgende commando:
Wat is Chrony
Chrony is a modern replacement for ntpd, offering faster and
more accurate time synchronization. If your OS does not support
Chrony, consider using
ntpd instead.
Zodra Chrony geïnstalleerd is, is de volgende stap ervoor te zorgen dat de
juiste tijdzone ingesteld is. U kan uw huidige tijdsconfiguratie bekijken met
het commando timedatectl:
Controleer de tijdconfiguratie
Zorg ervoor dat de Chrony service actief is (raadpleeg indien nodig de vorige stappen). Om de juiste tijdzone in te stellen, kunt u eerst alle beschikbare tijdzones oplijsten met het volgende commando:
Deze opdracht toont een lijst met beschikbare tijdzones, zodat je de tijdzone kunt selecteren die het dichtst bij je locatie ligt. Bijvoorbeeld:
Lijst van alle beschikbare tijdzones
Zodra je de tijdzone hebt geïdentificeerd, kun je deze configureren met het volgende commando:
Gebruik het commando timedatectl opnieuw om te controleren of de tijdzone
juist is ingesteld:
Controleer de tijd en zone
Note
Some administrators prefer installing all servers in the UTC time zone to ensure that server logs across global deployments are synchronized. Zabbix supports user-based time zone settings, which allows the server to remain in UTC while individual users can adjust the time zone via the interface if needed.
Chrony-synchronisatie controleren
Om ervoor te zorgen dat Chrony met de juiste tijdservers synchroniseert, kunt u het volgende commando uitvoeren:
De uitvoer moet lijken op:
Controleer uw chrony-uitvoer
localhost:~ # chronyc
chrony version 4.2
Copyright (C) 1997-2003, 2007, 2009-2021 Richard P. Curnow and others
chrony comes with ABSOLUTELY NO WARRANTY. This is free software, and
you are welcome to redistribute it under certain conditions. See the
GNU General Public License version 2 for details.
chronyc>
Typ op de Chrony prompt de opdracht sources om de gebruikte tijdbronnen te
controleren:
Voorbeelduitvoer:
Controleer uw tijdserver bronnen
chronyc> sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- 51-15-20-83.rev.poneytel> 2 9 377 354 +429us[ +429us] +/- 342ms
^- 5.255.99.180 2 10 377 620 +7424us[+7424us] +/- 37ms
^- hachi.paina.net 2 10 377 412 +445us[ +445us] +/- 39ms
^* leontp1.office.panq.nl 1 10 377 904 +6806ns[ +171us] +/- 2336us
In dit voorbeeld bevinden de gebruikte NTP-servers zich buiten je lokale regio. Het wordt aanbevolen om over te schakelen naar tijdservers in je eigen land of, indien beschikbaar, naar een speciale bedrijfstijdserver. U kunt lokale NTP-servers hier vinden: www.ntppool.org.
Tijdservers bijwerken
Wijzig het Chrony configuratiebestand om de tijdservers bij te werken:
Bewerk chrony config bestand
Red Hat
SUSE
On SUSE, the pool configuration is located in a separate file. You can edit that file directly or add a new configuration file in the same directory. In the latter case, ensure to disable or remove the existing pool configuration to avoid conflicts.Ubuntu
Replace the existing NTP server pool with one closer to your location.
Voorbeeld van de huidige configuratie:
Voorbeeld ntp pool configuratie
Wijzig de gewenste pools naar een lokale tijdserver:
ntp-poolconfiguratie wijzigen
Herstart de Chrony service na deze wijziging om de nieuwe configuratie toe te passen:
Bijgewerkte tijdservers controleren
Controleer de tijdbronnen opnieuw om er zeker van te zijn dat de nieuwe lokale servers in gebruik zijn:
Voorbeeld van verwachte uitvoer met lokale servers:
Voorbeeld uitvoer
chronyc> sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- ntp1.unix-solutions.be 2 6 17 43 -375us[ -676us] +/- 28ms
^* ntp.devrandom.be 2 6 17 43 -579us[ -880us] +/- 2877us
^+ time.cloudflare.com 3 6 17 43 +328us[ +27us] +/- 2620us
^+ time.cloudflare.com 3 6 17 43
Dit bevestigt dat het systeem nu lokale tijdservers gebruikt.
Conclusie
Zoals we gezien hebben, moet er, voordat er over de Zabbix pakketten wordt nagedacht, aandacht worden besteed aan de omgeving waarin het zich zal bevinden. Een goed geconfigureerd besturingssysteem, een open pad door de firewall en nauwkeurige tijdregistratie zijn niet slechts suggesties, maar essentiële bouwstenen. Nu we deze basis gelegd hebben, kunnen we met vertrouwen verder gaan met de installatie van Zabbix, wetende dat het onderliggende systeem voorbereid is op de taak.
Vragen
- Waarom denk je dat nauwkeurige tijdsynchronisatie zo cruciaal is voor een monitoringsysteem als Zabbix?
- Nu de basis is gelegd, wat is volgens jullie de eerste stap in het daadwerkelijke Zabbix installatieproces?
- Als we Zabbix gaan installeren, laten we dan eens nadenken over netwerkcommunicatie. Welke belangrijke poorten moet je door de firewall toestaan zodat de Zabbix server en agents effectief met elkaar kunnen communiceren?