Hi users of Zabbix,
I started using Zabbix a while ago and I found that I want / need to concentrate all my monitoring in Zabbix. "All" includes dozen of Java applications.
My question is:
Is there a need in JVM agent which works (behaves) just as Zabbix agent from Zabbix server perspective? That JVM agent could provide access to JMX metrics of Java application for monitoring. I understand Zabbix has Java gateway (exactly for the same use case) but it looks more complex comparing to adding JVM agent into existing Java application and working with that JVM agent as with regular Zabbix agent.
Imagine you have:
I found just one project - http://zorka.io/ - which implements JVM agent which can communicate with Zabbix server directly (i.e. behaves just as a regular Zabbix agent). Unfortunately, Zorka doesn't support TLS (neither certificate based TLS nor TLS PSK).
Another useful project I found is Jolokia - https://jolokia.org/. Jolokia is widely used / mature HTTP(S)-JMX bridge. Unfortunately, Jolokia is not supported by Zabbix (Zabbix server of Zabbix Java gateway) directly. Patched Zabbix Java gateway - https://bitbucket.org/ryanrupp/zabbi...eway/wiki/Home - looks old (based on Zabbix 2.x).
One could recommend to use user parameters supported by Zabbix agent (it could be even used with Jolokia), but it looks like running some executable each time I need to grab some JMX metrics (1 sec in may case) will negatively impact (CPU, I/O) host where Zabbix agent runs. I understand that some caching / batching can be used (like in http://webcache.googleusercontent.co...&ct=clnk&gl=ru) but that makes infrastructure more complex comparing to JVM agent which acts as a regular Zabbix agent.
I appreciate if readers of this post could:
I started using Zabbix a while ago and I found that I want / need to concentrate all my monitoring in Zabbix. "All" includes dozen of Java applications.
My question is:
Is there a need in JVM agent which works (behaves) just as Zabbix agent from Zabbix server perspective? That JVM agent could provide access to JMX metrics of Java application for monitoring. I understand Zabbix has Java gateway (exactly for the same use case) but it looks more complex comparing to adding JVM agent into existing Java application and working with that JVM agent as with regular Zabbix agent.
Imagine you have:
- JavaSE application running as daemon / service
- Spring Boot Java application
- Java application running in JBoss AS 7.x / JBoss EAP 6.x
- Java application running in WildFly / JBoss EAP 7.x
I found just one project - http://zorka.io/ - which implements JVM agent which can communicate with Zabbix server directly (i.e. behaves just as a regular Zabbix agent). Unfortunately, Zorka doesn't support TLS (neither certificate based TLS nor TLS PSK).
Another useful project I found is Jolokia - https://jolokia.org/. Jolokia is widely used / mature HTTP(S)-JMX bridge. Unfortunately, Jolokia is not supported by Zabbix (Zabbix server of Zabbix Java gateway) directly. Patched Zabbix Java gateway - https://bitbucket.org/ryanrupp/zabbi...eway/wiki/Home - looks old (based on Zabbix 2.x).
One could recommend to use user parameters supported by Zabbix agent (it could be even used with Jolokia), but it looks like running some executable each time I need to grab some JMX metrics (1 sec in may case) will negatively impact (CPU, I/O) host where Zabbix agent runs. I understand that some caching / batching can be used (like in http://webcache.googleusercontent.co...&ct=clnk&gl=ru) but that makes infrastructure more complex comparing to JVM agent which acts as a regular Zabbix agent.
I appreciate if readers of this post could:
- Point me another (comparing to what I listed above) existing solution for monitoring of Java application in Zabbix.
- Vote for JVM agent which acts as Zabbix agent, i.e. supports Zabbix protocol (both passive and active checks, discovery, TLS). I'd like to know if this solution is wanted by Zabbix community / users. If it will be found useful then I plan to start working on it - it can be written in Java or (for better performance and less impact on monitored application) in C/C++ (Zabbix agent sources can be used / integrated in that case making new solution fits better in existing Zabbix universe).
)
Comment