Uploaded image for project: 'ZABBIX FEATURE REQUESTS'
  1. ZABBIX FEATURE REQUESTS
  2. ZBXNEXT-701

Possibility to use subagents in zabbix-agent

XMLWordPrintable

    • Icon: New Feature Request New Feature Request
    • Resolution: Won't fix
    • Icon: Major Major
    • None
    • 1.8.4
    • Agent (G)
    • None

      Hi,

      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
      http://www.zabbix.com/documentation/1.8/manual/cookbook/specific?s[]=jmx#jmx)
      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,
      http://en.wikipedia.org/wiki/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
        that applications)
      • 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
      efficient way.

      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

      AGENT>list
      SUBAGENT>foo
      SUBAGENT>foobar
      SUBAGENT>barfoo

      Gain a measure

      AGENT>get foobar
      SUBAGENT>10111.5

      AGENT>get barfoo
      SUBAGENT>OK

      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?

      Regards
      Marc

            Unassigned Unassigned
            scoopex Marc Schoechlin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: