運用自由軟體網管系統OpenNMS 透過 WMI 來監控 IIS

在另一篇的留言 ,有網友提到:

因爲是要監控IIS 的CurrentConnections,以及其他的一些流量監控,OpenNMS我還真的不知道怎麼去監控這部份。

我稍微查了一下,因爲 OpenNMS 已經有支援 WMI(Windows Management Instrumentation) 了,所以可以從這個方向着手喔!

我們會用到的 WMI Class 是 Win32_PerfFormattedData_W3SVC_WebService ,如果只是在 Powershell 裏面執行 WQL Query(想像成 SQL for WMI) 的話,會像是:

Select CurrentConnections From Win32_PerfFormattedData_W3SVC_WebService

如果是要運用 OpenNMS 透過 WMI 來監控 IIS ,取得效能(performance)數據,可以參考這三篇(原作者 Bryan Fullerton 當時的環境是 OpenNMS 1.7.6 on Ubuntu Linux 9.04,所以現在 OpenNMS 1.8.x 這些功能都有):

Powershell and WMI 講到如何用 Windows Powershell 的指令來把某個 WMI class 的內容倒出來(以 Win32_PerfFormattedData_ASPNET_ASPNETApplications 爲例,這應該是跟 ASP.NET 有關)
OpenNMS and WMI - Part 1, getting started 講如何取得基本的效能(performance)數據,這篇提到要修改幾個設定檔:
collectd-configuration.xml 把 WMI service 從 off 改成 on
wmi-config.xml 設定權限(WMI 需要 domain administrator/local administrator/user
有 remote registry 跟 DCOM component 的權限。被監控的Windows機器 Remote
Registry
服務一定要啓動。
capsd-configuration.xml 加入一段 xml
然後重新啓動 OpenNMS ,確保重新載入新的設定,這樣下一次 service scan 的時候 WMI service 就會被髮掘(discover),然後預設好的資料(CPU, physical disk, logical disk, memory, system objects, network
interfaces, Terminal Service, server sessions)就會被收集。

OpenNMS and WMI - Part 2, adding more monitors 提到取得 IIS 跟 ASP.NET 的效能數據
第一,確定你要監控的對象,原作者選的是 Win32_PerfFormattedData_W3SVC_WebService 這個 WMI class ,拿GetRequests, HeadRequests, PostRequests, PutRequests 來畫圖(原po有圖有真相喔!)
第二,可能需要修改 datacollection-config.xml
第三,在 wmi-datacollection-config.xml 加入妳要量測的項目:GetRequests, HeadRequests, PostRequests, PutRequests ,設定載入後,應該會產生 jrb 檔案在 rrd/snmp/[nodeID]/wmiW3/[sitename]/[individual counter jrb files] 。有問題可以檢查 daemon/collectd.log
第四,在 snmp-graph.properties 加入妳的圖表設定
最後,就是檢查圖表是否正確產生囉,有問題可以檢查 webapp/jetty.log

PowerOp:基本上這篇是標準的 隔空抓藥 ,我自己還沒試過,如果對資料亂翻譯、亂解釋,請大家不吝指正!
如果有環境想要讓我練功,請參考 [自由軟體導入評估] 讓PowerOp到府爲您服務(免費喔!)

延伸閱讀:
OpenNMS 官方 Wiki 的 WMI Configuration
msdn 的 Win32_PerfFormattedData_W3SVC_WebService Class

發佈了53 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章