【问题标题】:Zabbix getting info about active DB connections from tomcat datasourceZabbix 从 tomcat 数据源获取有关活动数据库连接的信息
【发布时间】: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] 并发布该项目的日志消息?

标签: tomcat7 jmx zabbix


【解决方案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,应该有助于在未来获得正确的语法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 2017-11-26
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    相关资源
    最近更新 更多