很不幸的是,除非是很特殊的環境,否則多種作業系統的混搭風 (專業的說法是異質環境) 絕對是不可避免的宿命。今天我要跟各位分享的就是如何透過 NRPE 監測 Windows 的作業系統。Windows 下的 NRPE 有幾個不同的套件,像是 NRPE-NT、NSClient++,以及今天我要示範的 winrpe。winrpe 運作於 cygwin,並透過 xinet 提供服務。廢話不多說,就讓我們看一下今天的測試環境並一步步完成目標吧。
測試環境
第一部分:設定被監測主機 (192.168.1.2)- 下載 winrpe。
前往這裡下載 winrpe,我下載的是版本 4.0.0 。 - 安裝 winpre。
安裝 winrpe 再簡單不過了,一直按下一步就對了。 - 設定 xinetd 服務。
前面提到 winrpe 是透過 xinetd 提供服務,因此我們需要進行相關的設定: - 設定哪些主機 (IP) 可以透過 NRPE 可以對此進行進行 NRPE 的監測。
有兩種方法可以限制有哪些主機 (IP) 可以對此系統進行 NRPE 的監控,一種方式是使用 Windows 內建的防火牆功能,另外一種方式則是透過 xinetd 的設定檔。這兩種方式並不會互相排斥,甚至我的建議是兩種方式都加以設定,以達到較為嚴格的管控。 - 開啟 "服務器管理員" => "設定" => "具有進階安全性的 Windows 防火牆" => "輸入規則"。找到名為 Nrpe 的規則,點選滑鼠右鍵"內容"。
- 開啟 "領域" => "遠端 IP 位址",點選 "這些 IP 位址" 並加上監測主機的 IP 位址 (如192.168.1.1)。設定完畢後按下"確定"。
- 修改 xinetd 的設定檔。
在我的系統下,此設定檔的位置是 C:\Program Files (x86)\ICW\etc\xinetd.d\nrpe,請根據你的環境找出檔案的所在位置。
將
改為# only_from = <ipaddress1> <ipaddress2>
# only_from = 192.168.1.1
- 在監測主機 (192.168.1.1) 使用下列指令測試 NRPE 的設定。
如果設定無誤的話,可以看到類似下列訊息/usr/lib64/nagios/plugins/check_nrpe –H 192.168.1.2 –c ‘pdm_disk_c’ –t 30
DISK OK – usage C: 31037.0 MB (1.82% of total 1706686.0 MB)|’disk in use’=31037.0MB; ‘disk usage’=1.82%;90;95; ‘disk total’=1706686.0MB
但是如果看到下列的訊息,就表示監測主機 (192.168.1.1) 無法與被監測主機 (192.168.1.2) 進行溝通。
CHECK_NRPE: Error – Could not complete SSL handshake. - 修改被監測主機 (192.168.1.2) 上的 nrpe 設定
在我的系統下此檔案的位置是 C:\Program Files (x86)\ICW\nrpe.cfg,請根據你的環境找出檔案的所在位置。當你需要修改監測的參數或者是加上監測指令時,就必須修改這個檔案。這個檔案修改後,必須重新啟動 XinetServer 這個服務才會生效。
第二部分:設定監測主機 (192.168.1.1)
- 修改監測主機上的 localhost.cfg
在 localhost.cfg (/etc/icinga/objects/localhost.cfg) 加入下列設定- 設定主機資訊
define host { use windows-server host_name win2008 alias win2008 address 192.168.1.2 }
- 設定主機群組
define hostgroup { hostgroup_name windows-servers; alias Windows Servers; members win2008; }
- 設定服務
除了 pdm_disk_c 之外,也可以加上其他的監測項目,像是內建的 pdm_disk_d、pdm_cpuload、pdm_memload、event_all_errors 等。define service { use local-service hostgroup_name windows-servers; service description Disk – C: check_command nrpe!pdm_disk_c }
- 設定主機資訊
- 重新啟動監測主機上的 icinga 服務,指令為
service icinga restart
嚴格來說,使用 winrpe 與使用 npre 並沒有多大的不同,設定檔 nrpe.cfg 的架構可說是完全一致。不過在使用 winrpe 時,仍有下列幾點須特別注意:
- winrpe 並不支援 dont_blame_nrpe 這個設定值,所以無法透過監測指令指定相關的參數。也就是說,任何監測參數的指定,都必須透過修改被監測主機 (192.168.1.2) 上的 nrpe.cfg 檔案來達成。
- winrpe 並不支援 allowed_hosts 這個設定值,取而代之是 xinetd 的存取控制 (請參考前面的步驟)。除此之外,也可以進一步使用 Windows 內建的防火牆限制存取權限。
- 修改設定檔時 (nrpe.cfg 與 nrpe) 請使用可以辨識 Linux 換行字元的編輯器。如果使用會自動轉換換行字元的編輯器 (如 WordPad ),可能導致格式的錯誤而無法正常地啟動服務。
3.設定服務
回覆刪除中的
service description Disk – C:
有底線
service_description Disk – C:
我的是
icinga-1.9.3
nagios-plugins-1.4.16
winrpe 4.1.1