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

Java Gateway not generates valid lld macro names during bean discovery

XMLWordPrintable

      The same problem is in this (CLOSED) issue https://support.zabbix.com/browse/ZBX-12705. But we need name of datasource for better readable in item. We found another problems with this “-“ pattern in other JMX path, this little change solved everything. If your team need some help I'm ready.
       
      Symptoms:
       
      V3.4.0-V3.4.4 Java Gateway
      [ root @ tst-monit-001 ~ ] # ./zabbix_get_jmx.sh 'jmx.discovery[beans,"jboss.as:subsystem=datasources,data-source=*,statistics=pool"]' | jq '.data[0].value | fromjson | .data'
      [
        {
          "{#JMXDOMAIN}": "jboss.as",
          "{#JMXDATA-SOURCE}": "NAV_DS",
          "{#JMXSUBSYSTEM}": "datasources",
          "{#JMXSTATISTICS}": "pool",
          "{#JMXOBJ}": "jboss.as:subsystem=datasources,data-source=NAV_DS,statistics=pool"
        },
       
      This is exactly the same problem like in the issue.
       
      V3.4.5+ Java Gateway
      [ root @ tst-monit-001 ~ ] # ./zabbix_get_jmx.sh 'jmx.discovery[beans,"jboss.as:subsystem=datasources,data-source=*,statistics=pool"]' | jq '.data[0].value | fromjson | .data'
      [
        {
          "{#JMXDOMAIN}": “jboss.as",
          "{#JMXSUBSYSTEM}": "datasources",
          "{#JMXSTATISTICS}": "pool",
          "{#JMXOBJ}": "jboss.as:subsystem=datasources,data-source=NAV_DS,statistics=pool"
        },
       
      As you can see there is no possibility to read name of Datasource. I can only use {#JMXOBJ} to name it.
       
      My version is (recompiled 3.4.9)
      Here is RPM https://tomashermanek.cz/download/zabbix-java-gateway-3.4.9-1.el7.x86_64.rpm 
      What I change in this file is: /root/rpmbuild/SOURCES/zabbix-3.4.9/src/zabbix_java/src/com/zabbix/gateway/JMXItemChecker.java
       
      We started change on the line 274:
      274                                 // This is changed for replace special characters
      275                                 //String key = property.getKey().toUpperCase();
      276                                 String key = property.getKey().toUpperCase().replace('-', '_’);
       
      Result:
      [ root @ tst-monit-001 ~ ] # ./zabbix_get_jmx.sh 'jmx.discovery[beans,"jboss.as:subsystem=datasources,data-source=*,statistics=pool"]' | jq '.data[0].value | fromjson | .data'
      [
        {
          "{#JMXDOMAIN}": "jboss.as",
          "{#JMXDATA_SOURCE}": "NAV_DS",
          "{#JMXSUBSYSTEM}": "datasources",
          "{#JMXSTATISTICS}": "pool",
          "{#JMXOBJ}": "jboss.as:subsystem=datasources,data-source=NAV_DS,statistics=pool"
        },
       
      I attached screenshoots from zabbix. There is a difference between name of datasource as you can see .
       
      Tom

        1. JMXItemChecker.java
          10 kB
          Tomas Hermanek
        2. zabbix-java-gateway-3.4.9-1.el7.x86_64.rpm
          734 kB
          Tomas Hermanek

            Unassigned Unassigned
            tomas.hermanek Tomáš Heřmánek
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: