Zabbix 7.0 a navýšení systémových limitů

Co znamená hlášení „…the user limit of 1024 file descriptors is insufficient. The maximum number of concurrent checks per worker has been reduced…“?

Toto hlášení indikuje, že aktuální limit souborových deskriptorů pro uživatele (v tomto případě uživatele, pod kterým běží Zabbix server nebo proxy) je nastaven na 1024. Tento limit je nedostatečný pro množství operací, které Zabbix provádí, což vede k automatickému snížení maximálního počtu současně probíhajících kontrol na worker. V praxi to znamená, že systém nemůže otevřít dostatek souborů nebo síťových připojení současně, což omezuje efektivitu a výkon Zabbixu při zpracování dat.

Co jsou souborové deskriptory?

Souborové deskriptory jsou identifikátory používané operačním systémem k přístupu k souborům a síťovým zdrojům. Každý proces v systému má svůj limit souborových deskriptorů, což omezuje počet současně otevřených souborů nebo socketů.

Proč zvyšovat limit souborových deskriptorů?

S rostoucím počtem zařízení a dat, které Zabbix monitoruje, může být zapotřebí více souborových deskriptorů. Pokud Zabbix instance potřebuje více deskriptorů, než je aktuální limit, může dojít k chybám nebo omezení výkonu, což může vést ke snížení počtu současných kontrol na worker a zpomalit zpracování dat.

Postup navýšení limitu souborových deskriptorů

Zjištění aktuálního limitu

Nejprve zjistěte aktuální limit souborových deskriptorů pro běžící proces zabbix_server jedním příkazem:

cat /proc/$(pgrep -o zabbix_server)/limits | grep "Max open files"

Tento příkaz vrátí aktuální měkký a tvrdý limit souborových deskriptorů pro proces zabbix_server. Například:

Max open files   1024   524288   files
  • První hodnota je měkký limit (soft limit).
  • Druhá hodnota je tvrdý limit (hard limit).

Právě soft limit potřebujeme navýšit z 1024 na 10000. Hodnota se musí nastavit podle vašich konkrétních potřeb a může být i vyšší než tento příklad. Zabbix vás případně upozorní v logu, pokud nastavení není dostatečné.

Vytvoření adresáře pro override konfiguraci

Vytvořte adresář pro uložení nové konfigurace systému:

mkdir /etc/systemd/system/zabbix-server.service.d

Nastavení oprávnění

Nastavte správná oprávnění pro tento adresář:

chmod 755 /etc/systemd/system/zabbix-server.service.d

Vytvoření override konfigurace

Vytvořte soubor s override konfigurací pro zvýšení limitu souborových deskriptorů. V tomto příkladu nastavujeme limit na 10000:

echo -e "[Service]\nLimitAS=infinity\nLimitRSS=infinity\nLimitNOFILE=10000\nLimitNOPROC=1024" \
| sudo tee /etc/systemd/system/zabbix-server.service.d/override.conf

Nastavení oprávnění pro override konfiguraci

Nastavte správná oprávnění pro tento soubor:

chmod 644 /etc/systemd/system/zabbix-server.service.d/override.conf

Ověření obsahu override konfigurace

Ověřte, že obsah souboru byl správně uložen:

cat /etc/systemd/system/zabbix-server.service.d/override.conf

Aktivace změn

Načtěte nové nastavení systemd:

systemctl daemon-reload

Ověření stavu služby

Zkontrolujte stav služby Zabbix serveru:

systemctl status zabbix-server.service

Na obrázku je vidět, že Zabbix server služba využívá dodatečnou konfiguraci, která je uložena v adresáři /etc/systemd/system/zabbix-server.service.d/ jako soubor override.conf. Tato dodatečná konfigurace obsahuje změny potřebné pro zvýšení limitu souborových deskriptorů.

Restart aplikace

Pro aplikaci nových limitů restartujte službu Zabbix serveru:

systemctl restart zabbix-server.service

Ověření konfigurace po restartu Zabbix serveru

Znovu zkontrolujte aktuální limit souborových deskriptorů pro běžící proces zabbix_server:

cat /proc/$(pgrep -o zabbix_server)/limits | grep "Max open files"

Měli byste vidět, že proces aktuálně běží s novým limitem:

Max open files   10000   10000   files

Závěr

Zvýšení limitu souborových deskriptorů pro konkrétního uživatele může pomoci zabránit problémům spojeným s výkonem a stabilitou Zabbix serveru nebo proxy od verze 7.0. Dodržováním výše uvedených kroků můžete zvýšit limity souborových deskriptorů pro specifického uživatele a zajistit, že vaše Zabbix instance bude moci efektivně zpracovávat více současných požadavků.