Type: New Feature Request
Resolution: Won't fix
Affects Version/s: 1.8.4
Fix Version/s: None
Component/s: Agent (G)
thanks for writing this great piece of software.
Many companies run java software in their productive environments - currently it´s a little
bit difficult/uncomfortable to monitor the behavior of java-services with zabbix.
(see: http://www.kjkoster.org/zapcat/Zapcat_JMX_Zabbix_Bridge.html and
A handy possibility to monitor java applications would be very welcome in many datacenters!
The java way to monitor applications is JMX (Java Management Extensions,
There are some specific solutions which use jmx-bridges deployed in application-servers - but existing possibilities
have some disadvantages:
- it´s necessary to deploy the jmx-bridge in the application to be monitored
(this is not not a good option - especially if you have support contracts for
- it´s necessary to add a UserParameter for every monitored value to every agent
- invoking a complete jvm for getting one single value consumes a lot of resources
(especially if you monitor i.e. 20 items every minute)
In my opinion it would be a good idea to enhance the agent to have the possibility
to invoke a subagent and to communicate via stdin/stdout descriptors.
This can be used to write powerful tools which collect information in a flexible and
The configuration syntax could look like this:
SubAgent=java-jmx-agent-activemq,/usr/sbin/java --jmx-url "service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi"
SubAgent=java-jmx-agent-generic,/usr/sbin/java --pidfile /var/run/jboss/jboss.pid
Agent and subagent may chat in the following way:
Gain list of measures
Gain a measure
Subagent child processes will be handeled like this:
- they are started with the first monitoring request to the subagent item
- they are stopped on agent shutdown with SIGTERM
- they are restarted if subagent´s pid is missing
What do you think about this?
Do you have suggestion for the implementation?
Can you recommend some source locations?