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

Possibility to use subagents in zabbix-agent

    Details

    • Type: New Feature Request
    • Status: Closed
    • Priority: Major
    • Resolution: Won't fix
    • Affects Version/s: 1.8.4
    • Fix Version/s: None
    • Component/s: Agent (G)
    • Labels:
      None

      Description

      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

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: