【发布时间】:2014-10-29 18:12:08
【问题描述】:
我正在尝试配置 zabbix 以从 tomcat 获取有关来自数据源的活动 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]
【问题讨论】:
-
如果您使用 JConsole 或 VisualVM 来访问这些 JMX 对象,您能否发布他们的屏幕截图?同时,您可能会发现serverfault.com/questions/582597/zabbix-jmx-jboss-monitoring 很有用。
-
添加了屏幕截图。 :)
-
在您列出的键中,最后一个看起来是正确的。您能否在查询此项目时显示一些来自 Java 网关的跟踪日志?通过将“root”元素的“level”属性设置为“trace”,可以在lib/logback.xml文件中将日志级别设置为trace。
-
这是我得到的日志。
-
最后的日志明确指出密钥的格式错误:
jmx[Catalina:class=javax.sql.DataSource,name="jdbc/someDB",type=DataSource,active]- 它有四个参数,而应该只有两个。它也不同于您列表中的第三个键(看起来正确),这是我在上面的一个 cmets 中建议的。请检查您的项目是否设置为jmx["Catalina:class=javax.sql.DataSource,name=\"jdbc/someDB\",type=DataSource",active]并发布该项目的日志消息?