nagios用NsClient自定義windows監控


Nagios用NsClient自定義windows監控

NsClient++來監控windows主機有三種方式:check_nt,check_nrpe,nsca.

相對而言,check_nrpe已經可以滿足大部分的監控任務要求了。


這三種方式在nsclient的PDF中說的很詳細,但全是E文,根據我自己的部署過程,邊做邊寫下自己理解:


check_nt的使用方法:


這是NsClient++默認的使用方法,但是他可以監控的功能比較基礎,應該說是一種用於上手的監控手段吧。


語法: check_nt -H host -v variable [-p port] [-w warning] [-c critical] [-l params] [-d SHOWALL] [-u] [-t timeout] 選項: -h, --help 顯示幫助

-V, --version 顯示版本信息

-H, --hostname=HOST 被監控主機名稱或IP

-p, --port=INTEGER 監控端口(默認為1248,不過我的nagios安裝后端口為12489)

-s, --secret=<password> 要求的密碼

-w, --warning=INTEGER 引發報警狀態的閥值

-c, --critical=INTEGER引發嚴重錯誤狀態的閥值

-t, --timeout=INTEGER 連接嘗試超時秒數 (默認 -l, --params=<parameters> 參數傳遞給指定的監控項 (見下文) 

-d, --display={SHOWALL}顯示選項(目前僅支持SHOWALL) 

-u, --unknown-timeout多長時間后返回 UNKNOWN)

-v, --variable=STRING 監控參數 監控參數: CLIENTVERSION = Get the NSClient version 如果用 -l <version> 指定版本號,則版本不同時會報警

CPULOAD = 最后X分鍾CPU的平均負載。

-l 格式為:-l <minutes range>,<warning threshold>,<critical threshold>。 時間范圍不能超過 24*60分鍾

閥值是一個百分比,最多一次可以監控10個閥值,比如: ie: -l 60,90,95,120,90,95

UPTIME = 獲得主機開機時間。無指定參數,也沒有報警與錯誤閥值

USEDDISKSPACE = 指定磁盤的使用率。只要求 -l 指定磁盤的驅動器號。用-w 指定報警閥值 用-c指定錯誤閥值

MEMUSE = 內存使用率。用-w 指定報警閥值 用-c指定錯誤閥值

SERVICESTATE = 監控一個或多個服務的狀態。-l 格式為:-l <service1>,<service2>,<service3>,...。可以使用-d SHOWALL指定返回某個服務的狀態。

PROCSTATE = 監控某個或某幾個進程是否在運行。命令格式類似於SERVICESTATE

COUNTER = 監控Windows NT/2000的任何性能計數器。

-l 格式為:-l "\\<performance object>\\counter","<描述>“ 描述參數是可選的僅用於要求輸出浮點數的計數器。

如果<描述>內容中不包含"%%",那它就做為標 題顯示。例如:"Paging file usage is %%.2f %%%%""%%.f %%%% paging file used."

    對於計數器中包含“\","$"字符的最好都用上轉值符號”\",以保證計數器名稱正確。

INSTANCES = 監控Windows NT/2000的任何性能計數器對象。

格式: check_nt -H <hostname> -p <port> -v INSTANCES -l <counter object> <counter object>為一項性能計數器 (比如: Process),如果計數器名稱有兩個單詞,需要用括號括起來。返加的結果為用逗號分開的各計數器數據列表。

這樣做的目的在於不登錄進系統就可以在命令行下直接運行perfmon中的指定計數器。它也可以用做腳本自動創建Nagios服務配置文件。

例子:check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process

以下是nagios的windows.cfg中使用check_nt的監控例子:

#定義要被監控的windows主機名與主機的IP地址

define host{
use             windows-server  
host_name       ruanxi          
alias           My Windows Server
address         192.168.0.5     
}

#定義一個主機名組(可以不用管它)
define hostgroup{
hostgroup_name  windows-servers
alias           Windows Servers
}

#檢查windows主機是否已經安裝了NSClient++,及它的版本號
define service{
use                     generic-service
host_name               ruanxi
service_description     NSClient++ Version
check_command           check_nt!CLIENTVERSION
}

#監控 windows 主機的開機運作時間
define service{
use                     generic-service
host_name               ruanxi
service_description     Uptime
check_command           check_nt!UPTIME
}

#監控 windows 主機的 CPU 負載
define service{
use                     generic-service
host_name               ruanxi
service_description     CPU Load
check_command           check_nt!CPULOAD!-l 5,80,90    #CPU如果到達80%則報警,到達90%則警笛
}

#監控 windows 主機的內存使用狀況 
define service{
use                     generic-service
host_name               ruanxi
service_description     Memory Usage
check_command           check_nt!MEMUSE!-w 80 -c 90  #內存使用到達80%則warn,到達90%則Critical
}

#監控 windows 主機的 C:\ 的空間使用量 
define service{
use                     generic-service
host_name               ruanxi
service_description     C:\ Drive Space
check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}

#監控 windows主機的W3SVC設置的動作狀況
define service{
use                     generic-service
host_name               ruanxi
service_description     W3SVC
check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
}

#監控 windows 主機的 Explorer.exe 執行程序的運作狀況,如程序終止了,則會發 CRITICA
define service{
use                     generic-service
host_name               ruanxi
service_description     Explorer
check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}

#監控 windows 主機的 MSSQLSERVER 服務的運作狀況,如服務終止了,則會發 CRITICAL 
define service{
use                     generic-service
host_name               ruanxi
service_description     MSSQL
check_command           check_nt!SERVICESTATE!-d SHOWALL -l MSSQLSERVER 
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM