我想實現一個nagios插件,並且這樣做需要我知道具體要監視的對象和屬性。問題是,我一直無法在標準系統jmx對象和屬性的任何地方找到列表。任何人都可以將我指向正確的方向嗎?我需要監視內存池,堆大小等內容。JMX對象和屬性列表?
11
A
回答
17
您可以隨時使用mBeanServer.queryNames(null, null);用於獲取在某一MBeanServer中註冊的所有MBean(其中mBeanServer
是你獲得的本地或遠程的MBeanServerConnection
)。
但是,在實施您自己的Nagios插件之前,爲什麼不使用已經存在的插件呢?例如。 jmx4perl的check_jmx4perl
附帶了用於瀏覽JMX名稱空間的工具(如jmx4perl <url> list
列出所有JMX MBean及其屬性和操作,或j4psh
具有基於readline的JMX外殼且具有上下文相關的命令行完成)。
0
0
0
從系統管理員的角度來看,我完全理解這個問題的基礎。標準的JMX文檔或試圖瀏覽JMX對象樹時可能遇到的對象可能會令人難以置信和令人困惑。
我發現這個Op5 KB article在爲JBoss感興趣的JMX對象提供一個體面的概述方面非常有用。
顯然,需要調整以適應他們實際使用的監控系統,但示例中足夠使用基於nagios的監控系統。
17
您可以使用
Set mbeans = mBeanServer.queryNames(null, null);
for (Object mbean : mbeans)
{
WriteAttributes(mBeanServer, (ObjectName)mbean);
}
private void WriteAttributes(final MBeanServer mBeanServer, final ObjectName http)
throws InstanceNotFoundException, IntrospectionException, ReflectionException
{
MBeanInfo info = mBeanServer.getMBeanInfo(http);
MBeanAttributeInfo[] attrInfo = info.getAttributes();
System.out.println("Attributes for object: " + http +":\n");
for (MBeanAttributeInfo attr : attrInfo)
{
System.out.println(" " + attr.getName() + "\n");
}
}
這將寫入所有對象名稱及其屬性...
+0
謝謝!這非常有用! – Neoryder
相關問題
- 1. 總和對象的屬性列表
- 2. 列表框和對象屬性
- 3. 從python中的對象列表獲取對象屬性列表
- 4. 如何使用對象屬性列表排序對象列表
- 5. python對象列表,根據對象屬性降序排列
- 6. AnsibleUndefinedVariable: '列表對象' 有沒有屬性
- 7. 比較列表中對象的屬性
- 8. gson列表對象屬性爲空
- 9. 初始化對象的列表屬性
- 10. 屬性列表ID類型的對象
- 11. 「列表」對象沒有屬性「方法」
- 12. 列表對象屬性的枚舉器
- 13. T對象列表的屬性
- 14. 列表對象沒有屬性拆分
- 15. ActiveDirectory對象的允許屬性列表
- 16. 比較列表中對象的屬性
- 17. 從對象列表中獲取屬性
- 18. WPF綁定屬性到對象列表
- 19. 對象的屬性列表排序
- 20. 從mongodb對象獲取屬性列表
- 21. WPF對象列表獲取屬性
- 22. JSON對象的屬性值列表
- 23. 列出對象的方法和屬性
- 24. excel中的power-point圖表和對象的列表屬性
- 25. 針對的對象比較屬性的列表內列表
- 26. 嘗試插入非屬性列表對象 - NSUserDefaults - 類屬性
- 27. C#獲取來自列表特定屬性的屬性對象
- 28. python - 從屬性存在的對象列表中收集屬性
- 29. 對象屬性和對象原型
- 30. c#LINQ按屬性的子屬性對列表進行排序,屬性是對象列表
好吧,我們一直在看check_jmx,這是一個已經創建的。我會研究jmx4perl。謝謝! – Matthew