MBean的SNMP监控(snmp-adaptor.sar中的attributes.xml)(JBoss)

时间:2010-10-14 19:03:27

标签: java jboss snmp mbeans oid

我想监视(通过SNMP)我系统上运行的几个JBoss MBean的一些属性:

我已将我的attributes.xml配置为低于snmp-adaptor.sar以包含:

<mbean name="jboss.ha:service=HASingletonDeployer">    
      <attribute name="MasterNode"    oid=".1.2.3.4.1.22"/>
      <attribute name="PartitionName" oid=".1.2.3.4.1.23"/>
      <attribute name="TargetStopMethodArgument" oid=".1.2.3.4.1.24"/>
      <attribute name="TargetName" oid=".1.2.3.4.1.25"/>
      <attribute name="State" oid=".1.2.3.4.1.26"/>
      <attribute name="StateString" oid=".1.2.3.4.1.27"/>
      <attribute name="ClusterPartition" oid=".1.2.3.4.1.28"/>
</mbean>

但是使用我的MIB浏览器,我只能在get()String属性上成功Int。布尔或对象将返回SNMP错误。因此,适配器甚至不会“发布”这些情况的OID。

对于上面的列表,MasterNodeTargetNameClusterPartition在SNMP get()上失败,其余的都成功。

对此有何解决方法?

更多信息:来自org.jboss.ha.singleton.HASingletonController的JMX控制台:

(姓名/类型)

  • TargetName javax.management.ObjectName
  • StateString java.lang.String
  • MasterNode boolean
  • ClusterPartition org.jboss.ha.framework.server.ClusterPartitionMBean
  • TargetStartMethod java.lang.String
  • TargetStartMethodArgument java.lang.String
  • State int
  • TargetStopMethodArgument java.lang.String
  • PartitionName java.lang.String

(其中包括)

1 个答案:

答案 0 :(得分:1)

JBoss SNMP适配器具有非常原始的逻辑,用于将Java类型映射到SNMP类型。它可以处理String,Integer,Long,这就是它。这部分是因为SNMP具有非常窄的可用类型范围(例如,它没有布尔值),部分原因是SNMP适配器还没有很好地开发。

向RedHat提交了一个issue,但与此同时,您可以选择重写SNMP适配器(毕竟是开放源代码),或者编写重新公开所需的MBean信息为String / Long / Integer(例如将布尔值暴露为1或0)。