V tomto článku vám ukážeme, jak snadno nainstalovat a nakonfigurovat Zabbix Java Gateway, včetně doplňkového příkladu monitoringu Tomcatu.
Výběr operačního systému
Návod obsahuje postup pro RHEL platformy na verzi 9, kde stačí případně jen poupravit repozitáře. Návod pro Debian je připraven pro verzi 12, která je aktuálně poslední podporovanou verzí.
Co je Zabbix Java Gateway?
- Samostatná komponenta Zabbixu pro monitoring Java aplikací pomocí JMX (Java Management Extensions).
- Umožňuje Zabbixu sbírat metriky přímo z Java aplikací.
- Musí být připojena k Zabbix serveru nebo Zabbix proxy.
- Je napsaná v Javě (vyžaduje Java Runtime Environment).
Doporučení pro nasazení
Pouze jedna Java Gateway na jeden Zabbix Server nebo Proxy.
(Pro více Java Gateway nasaďte další Zabbix Proxy (active/passive).)
Komunikace mezi komponentami Zabbixu a Java Gateway nemůže být šifrovaná.
Od verze 7.4 je to poslední zbývající interní komunikační kanál Zabbixu bez šifrování.
Komunikaci z Java Gateway na monitorované Java aplikace lze zabezpečit (šifrováním a/nebo autentizací).
Sjednocení verzí je kritické – Zabbix Java Gateway musí odpovídat verzi Zabbix serveru/proxy.
Nezapomeňte v konfiguraci Java Gateway (zabbix_java_gateway.conf) explicitně definovat povolené IP adresy.
Osvědčené postupy instalace
Java Runtime Environment (JRE) se automaticky nainstaluje spolu se Zabbix Java Gateway (je postavená na Javě).
Zabbix neposkytuje dedikovanou šablonu přímo pro Java Gateway – použijte obecnou Java šablonu.
Pro konkrétní Java server mohou být potřeba vlastní knihovny (JAR soubory), typicky umístěné v bin adresáři aplikace.
Správné nastavení Java pollerů je zásadní – konfigurace musí být sladěná na obou stranách:
- Zabbix Server/Proxy (počet Java pollerů)
- Zabbix Java Gateway (start pollers)
Doporučená praxe: nasadit Zabbix Java Gateway na stejný server jako Zabbix Server nebo Proxy kvůli vyšší bezpečnosti.
Instalace a self-monitoring
Now, when we are aware of basic description of what Zabbix Java Gateway is, and we have learned it’s terminology, we can proceed with the installation.
Nejprve vyloučíme všechny instalační balíčky související se Zabbixem z repozitáře EPEL (za předpokladu, že je EPEL nainstalovaný).
Uděláme to tak, že na konec souboru /etc/yum.repos.d/epel.repo přidáme následující řádek:
[epel]
...
excludepkgs=zabbix*
Přidáme repozitáře Zabbixu a vyčistíme instalační cache. Nahraďte verzi 7.0 vaší verzí (např. 8.0, 6.0, 7.2, …).
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest.el9.noarch.rpm
dnf clean all
A teď už můžeme pokračovat instalací Zabbix Java Gateway
dnf install zabbix-java-gateway
Přidáme repozitáře Zabbixu a vyčistíme instalační cache. Nahraďte verzi 7.0 vaší verzí (např. 8.0, 6.0, 7.2, …).
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.0+debian12_all.deb
dpkg -i zabbix-release_latest_7.0+debian12_all.deb
apt update
A teď už můžeme pokračovat instalací Zabbix Java Gateway
apt install zabbix-java-gateway
Umístění konfiguračních souborů
- Zabbix Java Gateway
/etc/zabbix/zabbix_java_gateway.conf - hlavní konfigurační soubor
/etc/zabbix/zabbix_java_gateway_logback.xml - konfigurace logování
- Zabbix Server
/etc/zabbix/zabbix_server.conf
- Zabbix Proxy
/etc/zabbix/zabbix_proxy.conf
Povolení Zabbix Java Gateway
Po instalaci povolte Java monitoring na serveru nebo proxy úpravou konfiguračního souboru
nano /etc/zabbix/zabbix_server.conf
A upravte následující parametry, kde:
- JavaGateway: IP nebo DNS adresa Zabbix Java Gateway
- JavaGatewayPort: komunikační port
- StartJavaPollers: počet Java pollerů spouštěných na Zabbix serveru/proxy
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5

StartJavaPollers je důležitý parametr, na který je potřeba vždy myslet
- Výchozí hodnota je vypnuto (0), tedy Java monitoring je neaktivní
- Doporučená startovní hodnota: 5 pollerů
- Pokud hodnotu změníte, sladěte toto číslo také v konfiguraci Java Gateway
- Pokud používáte více Zabbix serverů/proxy s jednou gateway, sečtěte jejich počty pollerů
Po finální konfiguraci nezapomeňte restartovat komponentu Zabbix serveru
systemctl restart zabbix-server
Povolení self-monitoringu Java Gateway
Upravte konfigurační soubor Zabbix Java Gateway
nano /etc/zabbix/zabbix_java_gateway.conf
Speciální monitorovací sekce (self-monitoring):
Odkomentujte následující řádek pro povolení vestavěného JMX monitoringu samotné gateway (JAVA_OPTIONS):
JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -
Dcom.sun.management.jmxremote.registry.ssl=false"

Důležité: Ujistěte se, že každá Java volba (-Dcom…) začíná hned za mezerou a že uvnitř nejsou žádné další mezery navíc!
Aplikujte nové nastavení, spusťte Zabbix Java Gateway a povolte její automatické spuštění po restartu serveru.
systemctl enable zabbix-java-gateway.service --now
Ověření a nastavení monitoringu
Vytvořte hosta pro samotnou Zabbix Java Gateway (nebo použijte existujícího hosta)
- Přidejte nové rozhraní typu JMX
- Aplikujte vestavěnou šablonu: Generic Java JMX

Po krátké chvíli se ikona JMX zbarví zeleně. Java Gateway je nyní připravená a monitorovaná.

Monitoring Tomcatu – instalace a nastavení
Pro tento ukázkový monitoring setup nainstalujeme také Tomcat a další potřebné balíčky.
Upozorňujeme, že následující příklad je proveden na Rocky Linux 9. Ve vašem prostředí bude Tomcat nejspíš už nainstalovaný (nebo součástí vašeho stávajícího aplikačního setupu).
dnf install tomcat tomcat-webapps tomcat-admin-webapps tomcat-docs-webapp
Po instalaci Tomcatu je potřeba povolit JMX monitoring s autentizací, abychom zajistili bezpečnost.
Upravte /etc/tomcat/tomcat.conf.
nano /etc/tomcat/tomcat.conf
Přidejte následující (nezapomeňte nahradit IP adresu — musí to být monitorovaný host, ne Zabbix server ani Java Gateway!)
V našem případě byl parametr -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory už předdefinovaný, takže další parametry umístíme hned za něj. Dbejte na správné uvozovky a zalamování/odsazení pomocí \.
# Set default javax.sql.DataSource factory to apache commons one. See rhbz#1214381
JAVA_OPTS="-Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.rmi.port=9010 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.password.file=/etc/tomcat/jmxremote.password \
-Dcom.sun.management.jmxremote.access.file=/etc/tomcat/jmxremote.access \
-Djava.rmi.server.hostname=185.74.63.152 \
-Djava.net.preferIPv4Stack=true"

Pro vytvoření JMX přístupových rolí a hesel je potřeba vytvořit nebo upravit následující soubory
Upravte (nebo vytvořte) /etc/tomcat/jmxremote.access:
nano /etc/tomcat/jmxremote.access
V tomto souboru definujeme uživatelskou roli s požadovanými oprávněními.
monitorRole readonly
controlRole readwrite
Upravte (nebo vytvořte) /etc/tomcat/jmxremote.password:
nano /etc/tomcat/jmxremote.password
V tomto souboru definujeme hesla pro uživatele nakonfigurované pro JMX přístup
monitorRole Password1
controlRole Password2
Nastavte správná oprávnění z bezpečnostních důvodů (uživatel ve vašem systému může být jiný — my používáme stejného uživatele, pod kterým běží služba Tomcat)
chmod 600 /etc/tomcat/jmxremote.*
chown tomcat:tomcat /etc/tomcat/jmxremote.*
Po úpravě všech konfiguračních souborů dle doporučení nezapomeňte restartovat službu Tomcat
systemctl restart tomcat.service
A pokud je to potřeba, otevřete port ve firewallu (9010/tcp).
firewall-cmd --permanent --add-port=9010/tcp
firewall-cmd --reload
Vytvořte ve webovém rozhraní Zabbixu hosta pro monitoring Tomcatu
- Připojte šablonu Apache Tomcat by JMX.
- Nastavte správnou IP nebo DNS adresu Tomcatu a port (ujistěte se, že firewall umožňuje přístup ze Zabbix Java Gateway). V našem případě běží Tomcat, Zabbix Server i Zabbix Java Gateway na stejném hostu, proto používáme localhost. V praxi je takové nasazení spíše nepravděpodobné.
- Nastavte správné makro (viz další screenshot).

Šablony v Zabbixu používají uživatelská makra pro uživatelské jméno a heslo. Klikněte na Macros a poté vyberte Inherited and host macros.
{$TOMCAT.PASSWORD}— v našem případě je toPassword1(best practice: označte tuto hodnotu jako Secret text){$TOMCAT.USER}— náš uživatel jemonitorRole

V tuto chvíli by měly vaše monitoring položky na hostu Tomcat začít přijímat data.
Šablona také obsahuje Low-Level Discovery (LLD).

Závěrečné tipy a monitoring databáze
- Pro rychlé ladění doporučujeme použít jconsole (součást balíčku JDK), který můžete spustit na svém desktopu
- Pokud nevidíte metriky, které vás zajímají (například statistiky DB connection poolu), může být potřeba je povolit na úrovni driveru/poolu. Například lze přidat parametr jmxEnabled=“true“ – ten bývá často definovaný v context.xml

- Také se podívejte na naše webinářové PDF materiály pro více informací
Dejte nám Like, sdílejte nás nebo nás sledujte 😍
Ať vám nic neunikne: