MBean的java SNMP监控(snmpadaptor.sar中的attributes.xml)(JBoss)
我希望(通过SNMP)监视在我的系统上运行的几个JBoss MBean的某些属性:
我已经配置了我的属性。xml下的snmp适配器。特区包括:
<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浏览器,我只能成功地对String
或Int
属性执行get()
。布尔或对象将返回SNMP错误。因此,适配器甚至没有为这些情况“发布”OID
对于我上面的列表,MasterNode
、TargetName
和ClusterPartition
在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 楼答案
JBoss SNMP适配器具有非常原始的逻辑,用于将java类型映射到SNMP类型。它可以处理字符串、整数、长字符,基本上就是这样。这部分是因为SNMP的可用类型范围很窄(例如,它没有布尔值),部分是因为SNMP适配器还没有得到很好的开发
RedHat对此有一个issue文件,但在此期间,您可以选择重写SNMP适配器(毕竟它是开源的),或者编写MBean,将所需信息重新公开为String/Long/Integer(例如,将布尔值公开为1或0)