我正在尝试配置zabbix以从tomcat获取有关来自datasource的活动jdbc连接的信息我将以不同的方式添加此属性,如:
jmx["Catalina:class=javax.sql.DataSource,name='jdbc/someDB',type=DataSource",active]
并且喜欢:
jmx[Catalina:class=javax.sql.DataSource,name="jdbc/someDB",type=DataSource,active]
并且喜欢:
jmx["Catalina:class=javax.sql.DataSource,name=\"jdbc/someDB\",type=DataSource",active]
但是我在这个项目上得到“不支持”。 如果是的话,我哪里错了?
更新:使用jmxter添加属性的屏幕截图
更新:当我将密钥设置为
时jmx["Catalina:class=javax.sql.DataSource,name=jdbc/someDB,type=DataSource",active]
在zabbix项目中,我记录了这个:
2014-11-19 05:50:40.136 [pool-1-thread-3] DEBUG com.zabbix.gateway.ItemChecker - getting value for item 'jmx[Catalina:class=javax.sql.DataSource,name="jdbc/someDB",type=DataSource,active]
'
2014-11-19 05:50:40.136 [pool-1-thread-3] DEBUG com.zabbix.gateway.ItemChecker - caught exception for item 'jmx[Catalina:class=javax.sql.DataSource,name="jdbc/someDB",type=DataSource,acti
ve]'
com.zabbix.gateway.ZabbixException: required key format: jmx[<object name>,<attribute name>]
at com.zabbix.gateway.JMXItemChecker.getStringValue(JMXItemChecker.java:121) [zabbix-java-gateway-2.2.6.jar:na]
at com.zabbix.gateway.ItemChecker.getJSONValue(ItemChecker.java:88) ~[zabbix-java-gateway-2.2.6.jar:na]
at com.zabbix.gateway.JMXItemChecker.getValues(JMXItemChecker.java:96) [zabbix-java-gateway-2.2.6.jar:na]
at com.zabbix.gateway.SocketProcessor.run(SocketProcessor.java:63) [zabbix-java-gateway-2.2.6.jar:na]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_31]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_31]
at java.lang.Thread.run(Thread.java:662) [na:1.6.0_31]
答案 0 :(得分:1)
有一个question on ServerFault asked previously,这对于为Zabbix创建JMX项目的一般情况应该有所帮助。它显示了JConsole中的值如何与Zabbix中必须指定的参数匹配。
在您的特定情况下,根据您发布的屏幕截图,列表中的第三个键看起来是正确的:
jmx["Catalina:class=javax.sql.DataSource,name=\"jdbc/someDB\",type=DataSource",active]
Zabbix文档页面(详细信息item key syntax and escaping rules)应该有助于在将来正确使用语法。