Ik heb versie 4.4 overgeslagen, aangezien deze geen Long Term Support (LTS) heeft. Concreet gaat deze post dus over het upgraden van versie 4.0.20 naar 5.0.0
Niettegenstaande ik ondertussen volle bak docker containers draai is de zabbix server nog steeds een installatie op een Virtuele machine, namelijk een CentOS 7.
De database, MariaDB heeft versie 5.5.65.
Procedure voor de upgrade
We gaan de Zabbix Server stoppen. En indien je Zabbix Proxies hebt dan stop je die best ook, want deze nog data laten ophalen heeft geen zin, aangezien deze toch zullen weggegooid worden, wegens niet compatibel met de nieuwe versie.
systemctl stop zabbix-server
systemctl stop zabbix-agent
Maak een backup van je Database, procedure hier niet uitgelegd, want we veronderstellen eigenlijk dat je iedere dag een backup maakt.
Zet ook even de vorige versie aan de kant mocht het helemaal mis gaan.
mkdir /opt/zabbix-backup/
cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
cp /etc/httpd/conf.d/zabbix.conf /opt/zabbix-backup/
cp -R /usr/share/zabbix/ /opt/zabbix-backup/
cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/
De repo vervangen
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
Installeer de zabbix server (van het type mysql) en de agent
yum clean all
yum upgrade zabbix-server-mysql zabbix-agent
We gaan de server starten, en willen de upgrade volgen. Ik open hiervoor een tweede SSH console om de log te volgen.
tail -f /var/log/zabbix/zabbix_server.log
Start de zabbix server, en daarna de agent
systemctl start zabbix-server
systemctl start zabbix-agent
Web gedeelte
Minimaal versie PHP 7.2
Sinds deze versie zit dit in een aparte repo, wat trouwens al jaren is aangekondigd. En persoonlijk hoop ik dat deze nog veel veranderd, want als webdesigner vind ik het betreurend hoe zwak dit gedeelte is gebouwd.
Zabbix stelt voor om PHP 7.2 van RedHat te installeren, maar dit ga ik niet doen, aangezien ik PHP-FPM 7.3 reeds heb. Meer hierover is te lezen op de post over meerdere PHP versies
Maar je kan ook PHP 7.3 als default installeren om je PHP 5.4 te vervangen
sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install epel-release yum-utils
sudo yum-config-manager --disable remi-php54
sudo yum-config-manager --enable remi-php73
sudo yum -y install php php-common php-fpm php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd php-zip php-mbstring php-curl php-xml php-pear php-bcmath php-json
php -v
sudo systemctl restart httpd
php-fpm: Om dit te gebruiken op een Apache 2.4 kan dit de config zijn van je virtual host
DocumentRoot /usr/share/zabbix ServerName zabbix.reynaert.be Include conf.d/ssl.def SSLCertificateFile /etc/letsencrypt/live/zabbix.reynaert.be/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/zabbix.reynaert.be/privkey.pem SSLCACertificateFile /etc/letsencrypt/live/zabbix.reynaert.be/fullchain.pem Include conf.d/ExpiresByType.def # PHP 73 as user apache -> /etc/php-fpm.d/www.conf SetHandler "proxy:fcgi://127.0.0.1:9000" <Directory "/"> Require all granted
Install web
Eerst gaan we de vorige versie verwijderen, daarna voegen we de repo toe en zetten we die handmatig op ‘enabled’ om daarna de nieuwe te installeren.
yum remove zabbix-web-*
yum install centos-release-scl
vi /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
enabled=1
yum install zabbix-web
yum update zabbix-*
Opkuis
Wanneer alles goed is verlopen kan je de backup van de scripting verwijderen; rm -rf /opt/zabbix-backup/
Zabbix Proxy Container
Toch nog snel even mee geven wat ik gebruik om een docker container te builden.
docker run \ --cpus 1 \ -m 134217728 \ -p 10051:10051 \ --restart always \ -v /share/Container/data/zabbix-proxy/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \ -v /share/Container/data/zabbix-proxy/var/lib/zabbix/enc:/var/lib/zabbix/enc \ -v /share/Container/data/zabbix-proxy/var/lib/zabbix/modules:/var/lib/zabbix/modules \ -v /share/Container/data/zabbix-proxy/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys \ -v /share/Container/data/zabbix-proxy/var/lib/zabbix/ssl/certs:/var/lib/zabbix/ssl/certs \ -v /share/Container/data/zabbix-proxy/var/lib/zabbix/ssl/keys:/var/lib/zabbix/ssl/keys \ -v /share/Container/data/zabbix-proxy/var/lib/zabbix/ssl/ssl_ca:/var/lib/zabbix/ssl/ssl_ca \ -v /share/Container/data/zabbix-proxy/var/lib/zabbix/snmptraps:/var/lib/zabbix/snmptraps \ -v /share/Container/data/zabbix-proxy/etc/zabbix:/etc/zabbix \ -v /share/Container/data/zabbix-proxy/usr/local/etc/zabbix_proxy.conf.d:/usr/local/etc/zabbix_proxy.conf.d \ -e PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \ -e TERM=xterm \ -e ZBX_HOSTNAME=ZProxyIntranet \ -e ZBX_DB_TYPE=mysql \ -e ZBX_SERVER_HOST=IP-ZABBIX-SERVER \ -e ZBX_TYPE=proxy \ -e DB_SERVER_HOST=IP-DATABASE-SERVER \ -e MYSQL_DATABASE=zabbix \ -e MYSQL_USER=zabbix \ -e MYSQL_PASSWORD=een-paswoord \ -e MIBDIRS=/usr/share/snmp/mibs:/var/lib/zabbix/mibs \ -e MIBS=+ALL \ --name ZabbixProxy \ --hostname ZabbixProxy \ zabbix/zabbix-proxy-mysql:centos-5.0.0