摘要:1、NSCient原理
2、NSClient++與NRPE NSClient++區別
3、Nagios對window主機的監控
1 簡介
Nagios對Windows主機的監控主要有三種方法 第一種是NSclient++ 第二種是NRPE 第三種是SNMP(不是很常用)。
1.1 NSClient的工作原理
NSClient++是用來監控Windows主機時安裝在Windows主機上的組件。被監控機上安裝NSClient,,當監控主機將監控請求發給NSClient後,NSClient直接完成監控,所有的監控是由NSClient完成的.不需要額外的插件。
NSClient++官網:http://www.nsclient.org/
1.2NRPE的工作原理
1.3 NSclient++與nrpe最大的區別
NSclient++的一個很大的問題,不靈活,沒有可擴展性.它只能完成自己本身包含的監控操作,不能由一些插件來擴展.好在NSclient++已經做的不錯了,基本上可以完全滿足我們的監控需要。
2 NSClient++ 安裝
2.1 軟件版本:NSCP-0.5.2.35-x64.msi
下載地址: http://www.nsclient.org/download/
2.2 安裝插件
2.3查看NSClient++配置文件
默認是安裝在C:\Program Files\NSClient++ 目錄下,NSC.ini即爲NSClient服務的配置文件,一般我們無需修改,但是當我們監控端的IP地址改變時,或者密碼忘記,即可以在這裏修改了。
2.4檢查監聽端口
3 配置nagios服務器
3.1 插件語法介紹
NSClient++ 是通過check_nt插件對window你主機進行監控,我們先了解check_nt語法
語法: 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 = 監控某個或某幾個進程是否在運行。命令格式類似於SERVICESTAT
-l 格式爲:-l "\<performance object>\counter","<描述>“ 描述參數是可選的僅用於要求輸出浮點數的計數器
[root@nagios ~]# cd /usr/local/nagios/libexec/
[root@nagios libexec]# ./check_nt -H 192.168.4.56 -p 12489 -v UPTIME
System Uptime - 0 day(s) 0 hour(s) 0 minute(s) |uptime=0
過去5分鐘的平均值,80%的警告 90%緊急
[root@nagios libexec]# ./check_nt -H 192.168.4.56 -p 12489 -v CPULOAD -w 80 -c 90 -l 5,80,90
CPU Load 0% (5 min average) | '5 min avg Load'=0%;80;90;0;100
3.2 定義命令、主機、服務
(1) 定義命令
'check_nt' command definition
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
}
註釋: $..$ 表示系統內置的宏,也就是所謂的變量
$USER1$ 表示插件所在的目錄 -
H 指定主機地址
$HOSTADDRESS$ 應用到哪個主機,就用哪個主機的地址
$ARG1$ 傳遞的參數,形參 -s 指定密碼 默認爲空
(2) 定義主機和服務
[root@nagios etc]# cd /usr/local/nagios/etc/objects/
[root@nagios objects]# cp windows.cfg win10.cfg
[root@nagios objects]# sed -i 's/winserver/window10/g' win10.cfg
[root@nagios objects]# sed -i 's/192.168.1.2/192.168.4.56/g' win10.cfg
3.3 nagios主配置文件中添加主機信息
[root@nagios etc]# vim /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/win10.cfg
3.4 檢查配置文件語法
[root@nagios objects]# service nagios configtest
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight check
Object precache file created:
/usr/local/nagios/var/objects.precache
3.4 重啓nagios服務
[root@nagios objects]# service nagios restart
Running configuration check...
Stopping nagios: done.
Starting nagios: done.
4 瀏覽器查看監控結果
4.1點擊左面的Current Status -> Hosts
4.2點擊Current Status -> Services 查看服務監控情況