High Available Zabbix cluster
Jul 09 2023
Vertrekpunt
Vermoedelijk heb je al een Zabbix server draaiende. Op die server draait mogelijk zowel de Zabbix server software, als de database en ook de webserver. Een eenvoudige uitbreiding hierop kan zijn om een Zabbix server HA cluster op te zetten. Dit is ondersteund in Zabbix vanaf versie 6.
De Zabbix nodes
Best maak je hiervoor twee extra servers aan. (Je kan er ook meerdere aanmaken maar twee nodes zijn veelal voldoende voor zo'n HA opstelling). Om het simpel te houden noem ik die ZN1 (Zabbix Node 1) en ZN2 (Zabbix Node 2).
Installeer zoals gewoonlijk de Zabbix server en pas de configuratie aan.
sudo dnf install zabbix-server-mysql zabbix-selinux-policy zabbix-agent
sudo vim /etc/zabbix/zabbix_server.conf
Vooral de DBHost
, DBName
, DBUser
, DBPassword
en DBPort
zullen ervoor zorgen dat je naar je originele database kan verbinden en dus vrij simpel verder kan. Daarnaast ga je per server HANodeName
en NodeAddress
instellen om de cluster High available te maken.
HANodeName=zn1.winderickx.me
NodeAddress=192.168.124.186
Herstart beide servers en controleer de log op eventuele fouten in je configuratie. Het systemctl status zabbix-server
commando gaat je niet genoeg info tonen!
sudo tail -f /var/log/zabbix/zabbix_server.log
De clients
Deze moeten uiteraard ook op de hoogte gebracht worden van de cluster. Hiervoor kunnen we simpelweg beide servers toevoegen aan de configuratie. werk je met proces? Dan moet de client uiteraard met de Proxy verbinden en moet de Proxy beide servers kennen.
...
ServerName=zn1.winderickx.me,zn2.winderickx.me
ServerActive=zn1.winderickx.me,zn2.winderickx.me
...
Niet vergeten!
Omdat we naar een andere server verbinden moeten we de firewall en SELinux aanpassen om verbindingen toe te staan:
Als je niet goed weet hoe ik op de SELinux policy ben gekomen, zet SELinux dan op Permissive met
sudo setenforce 0
en neem een kijkje in de audit log:sudo tail -100 /var/log/audit/audit.log | audit2why | less
# Firewall regels voor Zabbix
sudo firewall-cmd --add-port=10050/tcp --permanent
sudo firewall-cmd --add-port=10051/tcp --permanent
sudo firewall-cmd --reload
# SELinux policy voor Zabbix
sudo setsebool -P zabbix_can_network 1