Tentokrát si ukážeme, jak zaktualizovat Zabbix na nejnovější verzi 8.0. Budeme vycházet při aktualizaci z verze Zabbixu 7.0 a PostgreSQL 16 s jeho extenzí TimescaleDB.
Návod, jak aktualizovat PostgreSQL, naleznete v našem wiki článku. Dále zde najdete i návod na aktualizaci TimescaleDB.
Výběr operačního systému
Návod obsahuje postup pro RHEL platformy ve verzi 9 a Debian 13. Vyberte systém, na kterém již provozujete Zabbix 7.0.
Vyberte také webový server, který používáte ve stávající instalaci:
Přípravné kroky
- Přečtěte si „poznámky k vydané verzi“ (release notes) [ Official release notes for Zabbix 8.0 ]
- Přečtěte si důkladně dokument „poznámky k aktualizaci“ (upgrade notes) [ Official upgrade notes for Zabbix 8.0 ] Poznámky k přeskočeným verzím: 7.2, 7.4.
- Zkontrolujte a případně optimalizujte výkon současné databáze dle doporučení vendora a s ohledem na požadavky Zabbix instance
- Zkontrolujte matici kompatibility: PHP 8.2–8.5, PostgreSQL 15–18 a při použití TimescaleDB verzi 2.20–2.29.x.
- Zazálohujte konfigurační soubory Zabbix serveru a Zabbix proxy
- Zázálohujte databáze Zabbix serveru, případně Zabbix proxy. Ve virtuálním prostředí můžete využít také konzistentní snapshot celé VM včetně databáze.
- Zazálohujte veškeré možné úpravy „na míru“, které byly na úrovni Zabbix ručně provedeny
- Tento postup je určen pro samostatný server. Pro HA použijte postup aktualizace HA clusteru.
Doporučujeme PHP 8.5 a PostgreSQL 18 v poslední opravné verzi. Obě řady Zabbix 8.0 podporuje.
Kontrola verzí
První příkaz zobrazí aktuální verzi PHP, druhý verzi databázového serveru PostgreSQL. PHP zkontrolujeme ještě před případným přepnutím na jinou verzi.
Příkazy spouštíme jako root. Název databáze a připojení upravte podle své instalace.
php-fpm -v
sudo -u postgres psql -d zabbix -c 'SHOW server_version;'
Záloha konfiguračních souborů Zabbix
Než se pustíme do dalších kroků, zazálohujeme veškeré konfigurační soubory Zabbix serveru a Zabbix Proxy. V příkazech nahraďte <backup directory> cestou ke své existující složce se zálohami.
cp -R /etc/zabbix/ /<backup directory>/
cp -R /usr/lib/zabbix/alertscripts/ /<backup directory>/
cp -R /usr/lib/zabbix/externalscripts/ /<backup directory>/
cp -R /usr/share/zabbix/ /<backup directory>/
cp /etc/httpd/conf/httpd.conf /<backup directory>/
cp /etc/httpd/conf.d/zabbix.conf /<backup directory>/
cp -R /etc/zabbix/ /<backup directory>/
cp -R /usr/lib/zabbix/alertscripts/ /<backup directory>/
cp -R /usr/lib/zabbix/externalscripts/ /<backup directory>/
cp -R /usr/share/zabbix/ /<backup directory>/
cp -R /etc/nginx/ /<backup directory>/
cp -R /etc/php-fpm.d/ /<backup directory>/
Zastavení služeb
Nejprve zastavíme Zabbix server a webserver, aby do databáze již nic nezapisovaly.
Aktualizace databáze (Volitelně)
Doporučený přechod na PostgreSQL 18 proveďte samostatně podle odkazovaného návodu. Pro samotnou aktualizaci Zabbixu lze ponechat podporovaný PostgreSQL 16 s TimescaleDB 2.29.2, ze kterého vychází tento postup.
Detailní návod na aktualizaci PostgreSQL naleznete na naší wiki.
Aktualizace Zabbix
Vše jsme úspěšně zazálohovali a zkontrolovali požadavky nové verze Zabbixu na návazné komponenty.
Nyní přejdeme k aktualizaci samotného Zabbixu a všech jeho součástí.
Zabbix 8.0 vyžaduje PHP alespoň 8.2. Je-li výše zjištěná verze starší, následující příkazy přepnou na PHP 8.3 dodávané operačním systémem a zobrazí jeho verzi. Máte-li již podporovanou verzi PHP, přepnutí přeskočte:
dnf module switch-to php:8.3
php-fpm -v
U PHP 8.3 končí bezpečnostní podpora projektu PHP 31. 12. 2027. Distribuční balíčky mají vlastní životní cyklus; Red Hat uvádí pro stream 8.3 podporu do května 2029. Přesto doporučujeme PHP 8.5; jeho instalace vyžaduje jiný zdroj balíčků a řeší se samostatně.
Nejprve si stáhneme instalační balíčky pro repozitáře nové verze Zabbixu a smažeme instalační cache:
rpm -Uvh https://repo.zabbix.com/zabbix/8.0/release/rocky/9/noarch/zabbix-release-latest.el9.noarch.rpm
dnf clean all
Po tomto úkonu máme dostupné repozitáře nové verze a můžeme zaktualizovat balíčky Zabbix serveru. Proxy aktualizujeme postupně až po ověření serveru:
dnf upgrade zabbix-server-pgsql zabbix-web-pgsql zabbix-apache-conf zabbix-sql-scripts zabbix-agent2
Při dotazu na upravenou konfiguraci zachovejte vlastní databázové připojení a další nastavení. Porovnejte také soubory .rpmnew nebo .dpkg-dist a aktualizujte další skutečně nainstalované komponenty, například web service, Java gateway nebo pluginy agenta.
Po úspěšném dokončení aktualizace balíčků Zabbix serveru a všech jeho součástí můžeme Zabbix znovu spustit, aby se dokončil upgrade databázové struktury.
systemctl start zabbix-server
Postupné činnosti i celý proces aktualizace, včetně případných zásahů do struktury databázového schématu, lze sledovat v log souboru Zabbix serveru:
tail -f /var/log/zabbix/zabbix_server.log
Počkejte na hlášení database upgrade fully completed. Probíhající aktualizaci nepřerušujte. Poté ukončete sledování logu pomocí Ctrl+C; Zabbix tím nezastavíte.

V instalaci s TimescaleDB se po dokončení migrace může objevit následující chyba: Table "history_json" is not a hypertable. Execute TimescaleDB configuration step as described in Zabbix documentation to upgrade schema. Automatická migrace již doběhla, ale novou tabulku history_json je ještě potřeba převést na hypertable. Opravíme to hned následujícím krokem.

Používáte-li TimescaleDB, proveďte ještě následující krok. U PostgreSQL bez TimescaleDB tento krok přeskočte:
systemctl stop zabbix-server
sudo -u zabbix psql -v ON_ERROR_STOP=1 -d zabbix -f /usr/share/zabbix/sql-scripts/postgresql/timescaledb/schema.sql
systemctl start zabbix-server
Skript má vypsat TimescaleDB is configured successfully. Zprávy already a hypertable, skipping u stávajících tabulek jsou v pořádku.
Po opětovném spuštění Zabbix serveru hned zkontrolujte log. Chyba history_json se při tomto novém startu již nemá opakovat. Až ověříte úspěšný start, ukončete sledování pomocí Ctrl+C a pokračujte frontendem:
tail -f /var/log/zabbix/zabbix_server.log
Frontend se přesunul do /usr/share/zabbix/ui. Proto před spuštěním webu upravíme původní cestu v jeho konfiguraci. Přístupové údaje v /etc/zabbix/web/zabbix.conf.php zachovejte; novou instalaci frontendu nespouštějte.
Pokud Apache stále používá původní cestu, může se zobrazit Manual intervention is required to complete upgrade!:

Následující příkaz opraví cestu v konfiguraci Apache, včetně vlastních virtuálních hostů. Již správnou cestu ponechá:
find -L /etc/httpd -type f -name '*.conf' -exec sed -i --follow-symlinks -E \
's#/usr/share/zabbix(/ui)?([/"[:space:]]|$)#/usr/share/zabbix/ui\2#g' {} +
Nyní zkontrolujeme konfiguraci Apache:
apachectl configtest
Kontrola musí vypsat Syntax OK. Pokud vidíte upozornění AH00558, Apache nemá nastavené jméno serveru; do /etc/httpd/conf/httpd.conf doplňte ServerName se skutečným DNS jménem serveru. Samotné toto upozornění spuštění neblokuje. Po úspěšné kontrole spustíme služby:
systemctl restart php-fpm httpd zabbix-agent2
systemctl is-active zabbix-server php-fpm httpd zabbix-agent2
Všechny kontrolované služby mají vypsat active. Poté otevřete frontend v prohlížeči na původní adrese.
Pokud Nginx stále používá původní cestu, může se zobrazit Manual intervention is required to complete upgrade!:

Následující příkaz opraví cestu v konfiguraci Nginx, včetně vlastních virtuálních hostů. Již správnou cestu ponechá:
find -L /etc/nginx -type f -name '*.conf' -exec sed -i --follow-symlinks -E \
's#/usr/share/zabbix(/ui)?([/"$;[:space:]]|$)#/usr/share/zabbix/ui\2#g' {} +
Nyní zkontrolujeme konfiguraci Nginx:
nginx -t
Kontrola musí vypsat syntax is ok a test is successful. Pokud hlásí chybu, nejprve ji opravte. Po úspěšné kontrole spustíme služby:
systemctl restart php-fpm nginx zabbix-agent2
systemctl is-active zabbix-server php-fpm nginx zabbix-agent2
Všechny kontrolované služby mají vypsat active. Poté otevřete frontend v prohlížeči na původní adrese.
Při restartu agenta se může v logu krátce objevit first network error. Po jeho spuštění má následovat connection restored. Pokud se chyby dál opakují, zkontrolujte dostupnost agenta a stav jeho služby uvedený výše.
Moduly a widgety initMAX aktualizujte přes RPM/DEB balíčky z našeho portálu. Balíčky se postarají i o nasazení do nové cesty; následující ruční kopírování pro ně nepoužívejte. Na portálu si nejprve ověřte, že používáte vydání podporující Zabbix 8.0. Pokud už máte náš repozitář nastavený, po upgradu Zabbixu aktualizujte nainstalované balíčky:
dnf upgrade 'zabbix-module-*'
Pokud jste naše moduly dosud nahrávali ručně, postupujte podle instalace přes balíčky uvedené u produktu na portálu.
Ostatní ručně instalované moduly: musí být kompatibilní se Zabbixem 8.0. Pokud zůstaly ve staré složce /usr/share/zabbix/modules, frontend vypíše například Cannot load module at: modules/upgrade_check.:

Kompatibilní modul zkopírujeme do složky, kterou již vytvořil balíček frontendu. V příkazu nahraďte upgrade_check názvem modulu z chybové hlášky. Novější verze, které jste do nové cesty již nainstalovali, starými soubory nepřepisujte. Příkaz zopakujte pro další ručně instalované moduly. Pokud je nepoužíváte, tento krok přeskočte:
cp -a /usr/share/zabbix/modules/upgrade_check /usr/share/zabbix/ui/modules/
Obnovte stránku v prohlížeči. Chyba má zmizet; v Administration → General → Modules ověřte stav a otevřete stránku modulu nebo jeho widget.


php -v
sudo -u postgres psql -d zabbix -c 'SHOW server_version;'
Cesty a název služby PHP-FPM níže odpovídají výchozímu PHP 8.4 z Debianu 13. Používáte-li jinou verzi PHP, upravte je podle své instalace.
Záloha konfigurace Zabbixu
Než se pustíme do dalších kroků, zazálohujeme veškeré konfigurační soubory Zabbix serveru a Zabbix Proxy. V příkazech nahraďte <backup directory> cestou ke své existující složce se zálohami.
cp -R /etc/zabbix/ /<backup directory>/
cp -R /usr/lib/zabbix/alertscripts/ /<backup directory>/
cp -R /usr/lib/zabbix/externalscripts/ /<backup directory>/
cp -R /usr/share/zabbix/ /<backup directory>/
cp -R /etc/apache2/ /<backup directory>/
cp -R /etc/zabbix/ /<backup directory>/
cp -R /usr/lib/zabbix/alertscripts/ /<backup directory>/
cp -R /usr/lib/zabbix/externalscripts/ /<backup directory>/
cp -R /usr/share/zabbix/ /<backup directory>/
cp -R /etc/nginx/ /<backup directory>/
cp -R /etc/php/8.4/fpm/ /<backup directory>/
Zastavení Zabbix služeb
Nejprve zastavíme Zabbix server a webserver, aby do databáze již nic nezapisovaly.
Aktualizace databázových komponent (volitelně)
Doporučený přechod na PostgreSQL 18 proveďte samostatně podle odkazovaného návodu. Pro samotnou aktualizaci Zabbixu lze ponechat podporovaný PostgreSQL 16 s TimescaleDB 2.29.2, ze kterého vychází tento postup.
Detailní návod na aktualizaci PostgreSQL naleznete na naší wiki.
Aktualizace Zabbixu
Vše jsme úspěšně zazálohovali a zkontrolovali požadavky nové verze Zabbixu na návazné komponenty.
Nyní přejdeme k aktualizaci samotného Zabbixu a všech jeho součástí.
Debian 13 dodává PHP 8.4, které požadavky Zabbixu splňuje. Pro aktualizaci Zabbixu jej není nutné měnit.
Nejprve si stáhneme instalační balíčky pro repozitáře nové verze Zabbixu a nainstalujeme je:
for file in /etc/apt/sources.list.d/zabbix.list /etc/apt/sources.list.d/zabbix.sources /etc/apt/sources.list.d/zabbix-unstable.list /etc/apt/sources.list.d/zabbix-unstable.sources; do
if [ -f "$file" ]; then mv "$file" "$file.bak"; fi
done
wget -O /tmp/zabbix-release-8.0.deb https://repo.zabbix.com/zabbix/8.0/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_8.0+debian13_all.deb
dpkg --force-confnew -i /tmp/zabbix-release-8.0.deb
apt update
Po tomto úkonu máme dostupné repozitáře nové verze a můžeme zaktualizovat balíčky Zabbix serveru. Proxy aktualizujeme postupně až po ověření serveru:
apt install --only-upgrade zabbix-server-pgsql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent2
apt install --only-upgrade zabbix-server-pgsql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2
Pokud se instalátor zeptá na nahrazení zabbix_server.conf nebo apache.conf, zvolte N pro zachování vlastní konfigurace. Cestu frontendu upravíme níže.
Pokud se instalátor zeptá na nahrazení zabbix_server.conf nebo nginx.conf, zvolte N pro zachování vlastní konfigurace. Cestu frontendu upravíme níže.
Při dotazu na upravenou konfiguraci zachovejte vlastní databázové připojení a další nastavení. Porovnejte také soubory .rpmnew nebo .dpkg-dist a aktualizujte další skutečně nainstalované komponenty, například web service, Java gateway nebo pluginy agenta.
Po úspěšném dokončení aktualizace balíčků Zabbix serveru a všech jeho součástí můžeme Zabbix znovu spustit, aby se dokončil upgrade databázové struktury.
systemctl start zabbix-server
Postupné činnosti i celý proces aktualizace, včetně případných zásahů do struktury databázového schématu, lze sledovat v log souboru Zabbix serveru:
tail -f /var/log/zabbix/zabbix_server.log
Počkejte na hlášení database upgrade fully completed. Probíhající aktualizaci nepřerušujte. Poté ukončete sledování logu pomocí Ctrl+C; Zabbix tím nezastavíte.

V instalaci s TimescaleDB se po dokončení migrace může objevit následující chyba: Table "history_json" is not a hypertable. Execute TimescaleDB configuration step as described in Zabbix documentation to upgrade schema. Automatická migrace již doběhla, ale novou tabulku history_json je ještě potřeba převést na hypertable. Opravíme to hned následujícím krokem.

Používáte-li TimescaleDB, proveďte ještě následující krok. U PostgreSQL bez TimescaleDB tento krok přeskočte:
systemctl stop zabbix-server
sudo -u zabbix psql -v ON_ERROR_STOP=1 -d zabbix -f /usr/share/zabbix/sql-scripts/postgresql/timescaledb/schema.sql
systemctl start zabbix-server
Skript má vypsat TimescaleDB is configured successfully. Zprávy already a hypertable, skipping u stávajících tabulek jsou v pořádku.
Po opětovném spuštění Zabbix serveru hned zkontrolujte log. Chyba history_json se při tomto novém startu již nemá opakovat. Až ověříte úspěšný start, ukončete sledování pomocí Ctrl+C a pokračujte frontendem:
tail -f /var/log/zabbix/zabbix_server.log
Frontend se přesunul do /usr/share/zabbix/ui. Proto před spuštěním webu upravíme původní cestu v jeho konfiguraci. Přístupové údaje v /etc/zabbix/web/zabbix.conf.php zachovejte; novou instalaci frontendu nespouštějte.
Pokud Apache stále používá původní cestu, může se zobrazit Manual intervention is required to complete upgrade!:

Následující příkaz opraví cestu v konfiguraci Apache, včetně vlastních virtuálních hostů. Již správnou cestu ponechá:
find -L /etc/apache2 -type f -name '*.conf' -exec sed -i --follow-symlinks -E \
's#/usr/share/zabbix(/ui)?([/"[:space:]]|$)#/usr/share/zabbix/ui\2#g' {} +
Nyní zkontrolujeme konfiguraci Apache:
apache2ctl configtest
Kontrola musí vypsat Syntax OK. Pokud vidíte upozornění AH00558, Apache nemá nastavené jméno serveru; do /etc/apache2/apache2.conf doplňte ServerName se skutečným DNS jménem serveru. Samotné toto upozornění spuštění neblokuje. Po úspěšné kontrole spustíme služby:
systemctl restart apache2 zabbix-agent2
systemctl is-active zabbix-server apache2 zabbix-agent2
Všechny kontrolované služby mají vypsat active. Poté otevřete frontend v prohlížeči na původní adrese.
Pokud Nginx stále používá původní cestu, může se zobrazit Manual intervention is required to complete upgrade!:

Následující příkaz opraví cestu v konfiguraci Nginx, včetně vlastních virtuálních hostů. Již správnou cestu ponechá:
find -L /etc/nginx -type f -name '*.conf' -exec sed -i --follow-symlinks -E \
's#/usr/share/zabbix(/ui)?([/"$;[:space:]]|$)#/usr/share/zabbix/ui\2#g' {} +
Nyní zkontrolujeme konfiguraci Nginx:
nginx -t
Kontrola musí vypsat syntax is ok a test is successful. Pokud hlásí chybu, nejprve ji opravte. Po úspěšné kontrole spustíme služby:
systemctl restart php8.4-fpm nginx zabbix-agent2
systemctl is-active zabbix-server php8.4-fpm nginx zabbix-agent2
Všechny kontrolované služby mají vypsat active. Poté otevřete frontend v prohlížeči na původní adrese.
Při restartu agenta se může v logu krátce objevit first network error. Po jeho spuštění má následovat connection restored. Pokud se chyby dál opakují, zkontrolujte dostupnost agenta a stav jeho služby uvedený výše.
Moduly a widgety initMAX aktualizujte přes RPM/DEB balíčky z našeho portálu. Balíčky se postarají i o nasazení do nové cesty; následující ruční kopírování pro ně nepoužívejte. Na portálu si nejprve ověřte, že používáte vydání podporující Zabbix 8.0. Pokud už máte náš repozitář nastavený, po upgradu Zabbixu aktualizujte nainstalované balíčky:
apt install --only-upgrade 'zabbix-module-*'
Pokud jste naše moduly dosud nahrávali ručně, postupujte podle instalace přes balíčky uvedené u produktu na portálu.
Ostatní ručně instalované moduly: musí být kompatibilní se Zabbixem 8.0. Pokud zůstaly ve staré složce /usr/share/zabbix/modules, frontend vypíše například Cannot load module at: modules/upgrade_check.:

Kompatibilní modul zkopírujeme do složky, kterou již vytvořil balíček frontendu. V příkazu nahraďte upgrade_check názvem modulu z chybové hlášky. Novější verze, které jste do nové cesty již nainstalovali, starými soubory nepřepisujte. Příkaz zopakujte pro další ručně instalované moduly. Pokud je nepoužíváte, tento krok přeskočte:
cp -a /usr/share/zabbix/modules/upgrade_check /usr/share/zabbix/ui/modules/
Obnovte stránku v prohlížeči. Chyba má zmizet; v Administration → General → Modules ověřte stav a otevřete stránku modulu nebo jeho widget.


Dokončovací práce
- Zkontrolujte, že správně běží Zabbix server, databázový server a mají správnou verzi
- Zkontrolujte také, zda při startu serveru nebo proxy v systému neuvidíte následující chybu: ‚…the user limit of 1024 file descriptors is insufficient. The maximum number of concurrent checks per worker has been reduced…‘ Návod na odstranění naleznete na naší wiki.
- Zkontrolujte, že běží všechny Zabbix proxy a mají správnou verzi. Je zajištěna zpětná kompatibilita (částečná) pro verzi 7.0. Nicméně i tak důrazně doporučujeme používat stejnou verzi, jakou má Zabbix server. Starší verze nejsou podporovány.
- Zkontrolujte stav Zabbix serveru a Zabbix proxy (log soubory, nepodporované položky, fronty, monitorovací skripty, atd.).
- Zkontrolujte, zda vaše servery mají přiděleny poslední verze oficiálních šablon od Zabbixu. [ Zabbix GIT ]
Po přihlášení zkontrolujte také dashboardy, Monitoring → Latest data, starší historii a příjem nových hodnot. Pokud používáte plánované reporty, ověřte vygenerování PDF. V případě potíží se vraťte k připravené záloze nebo snapshotu.
Co je nového v Zabbixu 8.0
Informace o novinkách v Zabbixu 8.0 naleznete v našem článku.
A to je vše! Nyní můžete začít využívat váš nově zaktualizovaný Zabbix ve verzi 8.0 se všemi jeho opravami i novinkami.
Dejte nám Like, sdílejte nás nebo nás sledujte 😍
Ať vám nic neunikne: