Zabbix 7.0 – návod na instalaci v 5 minutách

V tomto návodu si ukážeme, jak během pěti minut nainstalovat a nakonfigurovat nejnovější Zabbix verze 7.0 s databází PostgreSQL 16 na Rocky Linux 9!

Než začneme

Pro účely této ukázky si nejdříve přepneme SELinux do Permissive módu.

setenforce 0

Instalace PostgreSQL

V prvním kroku si naistalujeme repozitáře pro PostgreSQL a zakážeme výchozí, systémové PostgreSQL repozitáře.

dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf -qy module disable postgresql

Následně pak nainstalujeme PostgreSQL, v tomto případě to bude aktuálně podporovaná verze 16.

dnf install -y postgresql16-server

Inicializujeme databázi a nastavíme její automatické spouštění.

/usr/pgsql-16/bin/postgresql-16-setup initdb
systemctl enable postgresql-16 --now

Instalace Zabbix serveru a jeho součástí

Databáze je nyní nainstalovaná, a můžeme tedy přikročit k instalaci Zabbix serveru a všech jeho součástí.

Nejprve si z repozitáře EPEL vyloučíme jakékoliv instalační balíčky týkající se Zabbixu. Za předpokladu, že je nainstalován.

To provedeme tak, že na konec souboru /etc/yum.repos.d/epel.repo vložíme následující řádek:

[epel]
...
excludepkgs=zabbix*

Přidáme si repozitáře Zabbixu a vyčistíme instalační cache.

rpm -Uvh https://repo.zabbix.com/zabbix/6.5/centos/9/x86_64/zabbix-release-6.5-2.el9.noarch.rpm
dnf clean all

A nainstalujeme všechny potřebné součásti Zabbixu.

V tomto případě použijeme jako primárního monitorovacího agenta Zabbix Agent 2, který vám doporučujeme používat, jelikož přináší daleko více funkcionalit.

dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-apache-conf zabbix-sql-scripts zabbix-agent2 zabbix-web-service

Inicializace databáze

Nejprve vytvoříme databázového uživatele pro Zabbix, budeme vyzváni k zadání jeho přístupového hesla.

cd /tmp
sudo -u postgres createuser --pwprompt zabbix

V tuto chvíli jsme schopni naimportovat výchozí schéma a data. Opět budeme vyzváni k zadání hesla.
Zde použijeme heslo z předchozího kroku.

sudo -u postgres createdb -O zabbix zabbix
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

Nastavení firewallu

Nazávěr na firewallu povolíme porty, které jsou nezbytné pro běh Zabbix serveru.

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --reload

Instalace TimescaleDB

Nyní se pustíme do instalace TimescaleDB a začneme tím, že přidáme její oficiální repozitář.

tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/$(rpm -E %{rhel})/\$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
EOL

Nainstalujme TimescaleDB.

dnf install timescaledb-2-postgresql-16 timescaledb-2-loader-postgresql-16

Spustíme utilitu timescaledb-tune a jako parametr jí předáme vyšší hodnotu maximálního množství připojení (--max-conns), které pro tyto testovací účely nastavíme na 125.

Tato utilita slouží k přizpůsobení výchozího nastavení PostgreSQL vůčihledně výkonu a adekvátnímu nastavení parametrů PostgreSQL pro fungování s TimescaleDB.

Zároveň nám tato utilit pomocí instalačního průvodce pomůže vybrat aktuální a platný konfigurační soubor PostgreSQL a nastaví i automatické načítání knihoven TimescaleDB.

Prosím, odpovídejte „ano“ (y) na všechny otázky. Pozor, automatický tuner předpokládá, že PostgreSQL běží na samostatném serveru, a proto může být potřeba případně upravit parametry.

timescaledb-tune --pg-config /usr/pgsql-16/bin --max-conns=125

Následně restartujeme systémovou službu pro PostgreSQL:

systemctl restart postgresql-16.service

Zbývá již jen vytvořit a aktivovat samotnou TimescaleDB:

Pozor, během vývoje došlo ke změně cesty z původní /usr/share/zabbix-sql-scripts/postgresql/timescaledb.sql na novou /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql.

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix

Nastavení Zabbix serveru

Otevřeme konfigurační soubor Zabbix serveru v cestě:

nano /etc/zabbix/zabbix_server.conf

V tomto konfiguračním souboru upravíme následující parametry tak, jak vídíte na předloze níže:

...
DBPassword=password
StartReportWriters=1
WebServiceURL=http://localhost:10053/report
...

V dalším kroku doinstalujeme jazykové balíčky pro češtinu a slovenštinu:

dnf install glibc-langpack-cs.x86_64 glibc-langpack-sk.x86_64

A nakonec restartujeme všechny související služby a nastavíme je tak, aby se spouštěly automaticky po startu:

systemctl restart zabbix-server zabbix-web-service zabbix-agent2 httpd php-fpm
systemctl enable zabbix-server zabbix-web-service zabbix-agent2 httpd php-fpm

Pro ověření stavu, že nám Zabbix server nastartoval v pořádku můžeme kromě jiného zkontrolovat i jeho log soubor:

less /var/log/zabbix/zabbix_server.log

V případě, že uvidíte v log souboru zprávu o tom, že je verze TimescaleDB příliš nová, pak to ve chvíli psaní tohoto návodu není žádný problém. Zabbix zatím nezareagoval na nejnovější verzi TimescaleDB tak, aby ji ve svém kódu nastavil jako podporovanou, ovšem kompatibilita je Zabbixem zaručena a námi ověřena (v produkční verzi již toto bude napraveno).

Pokud se chceme vyhnout informačním zprávám o nekompatibilitě v log souboru Zabbixu, pak stačí otevřít konfigurační soubor Zabbix serveru v cestě /etc/zabbix/zabbix_server.conf a zde upravte následující konfigurační parametr:

AllowUnsupportedDBVersions=1

Soubor s tímto nastavením uložte a zrestartujte systémovou službu Zabbix serveru.

systemctl restart zabbix-server

Nastavení Zabbix frontendu

V prohlížeči si otevřeme cílové URL, na kterém Zabbix běží. Například tedy http://192.168.0.50/zabbix, kde nás uvítá průvodce prvotní instalací.

Po zvolení implicitního jazyka se tlačítkem Next step posuneme na stránku s kontrolou minimálních požadavků.

První krok instalace Zabbix 7.0 a nastavení jazyka

Pokud je kontrola v pořádku, pak se tedy můžeme kliknutím na Next step posunout na další stránku s nastavením připojení do databáze.

Druhý krok instalace Zabbix 7.0 a kontrola minimálních požadavků

Zde vyplňujeme pouze políčko Password pro přístup do databáze, nic dalšího není třeba měnit.

Po vyplnění opět klikneme na Next step.

Třetí krok instalace Zabbix 7.0 a připojení do databáze

Na následující stránce se základním nastavením vyplníme název serveru, časové pásmo, a kliknutím na Next step pokračujeme k souhrnu konfigurace.

Čtvrtým krokem průvodce instalace Zabbix 7.0 je nastavení serveru a výběr časové zóny.

V tomto souhrnu zkontrolumeme všechny zadané hodnoty a kliknutím na Next step dokončíme instalaci.

Pátý krok instalace Zabbix 7.0 a kontrola hodnot před instalací

Nyní již kliknutím na tlačítko Finish přejdeme na přihlašovací obrazovku.

Po úspěšné instalaci Zabbix 7.0 můžeme přejít k přihlášení kliknutím na tlačítko "Finish".

Po úspěšném přihlášení pomocí dříve zadaných údajů můžeme začít používat nejnovější Zabbix verze 7.0 (Admin/zabbix).

Pro přihlášení do nového Zabbix 7.0 v dialogovém okně uvedeme přihlašovací jméno a heslo.

A takto vypada úvodní dashboard nového Zabbixu 7.0:

Po přihlášení se zobrazí nová verze Zabbix 7.0

Nastavení Zabbix reportingu

Proto, aby byl plně funkční reporting se všemi jeho vylepšeními si nejprve musíme nainstalovat Google Chrome.

Následujícím příkazem stáhneme instalační balíček, a ten také nainstalujeme:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
dnf localinstall google-chrome-stable_current_x86_64.rpm

V dalším kroku upravíme v Zabbix frontendu parametr „Frontend URL“ na aktuálně platnou hodnotu, toto nastavení se nachází zde:

Administration -> General -> Other

Příklad této konfigurace pak můžete vidět na obrázku níže.

Konfigurace reportingu Zabbix 7.0