Nagios監控平臺之四:監控Windows服務器

1、Nagios監控配置的常規說明:html

1.1.監控步驟:linux

被監控端安裝代理(linuxnrpewindowsNSClientà配置被監控端監控腳本à主機定義(服務器端)à定義命令(服務器端,普通監控默認已定義好,可跳過此步)à定義服務(服務器端)à其餘定義(此步可省略,包含:聯繫人、主機組、服務器組、服務組等)ios

1.2.Nagios監控的四種狀態:shell

Nagios的狀態有四種,根據返回值區分:windows

返回 0 ,正常服務器

返回 1 ,警告ide

返回 2 ,緊急spa

返回 3 ,未知插件

所以,無論是linux仍是windows,在自定義腳本是,只要設置好exit後跟的返回值便可實現Nagios的通知提醒。代理

2、Windows代理NSClient++的安裝

下載最新的NSClient++ 0.40安裝,填入Nagios服務器IP,密保保存爲空,並勾選支持的前三項插件,以下圖:

151556234.png

3、利用默認配置實現監控硬盤空間、CPU負載、內存等信息:

1

2

3

3.1被監控端(Windows服務器)配置自帶防火牆例外或者關閉自帶防火牆,開放TCP 5666TCP 12489端口。

3.2Nagios服務器端:

1.

2.

3.

3.1.

3.2.

3.2.1.配置/usr/local/nagios/etc/nagios.cfg,將以下一行前面的註釋取消:

cfg_file=/usr/local/nagios/etc/objects/windows.cfg

3.2.2.定義主機,編輯/usr/local/nagios/etc/objects/windows.cfg,添加主機定義:
define host{

       use            windows-server   ;使用主機模板
       host_name      主機名            ;主機名
       alias主機別名         ;主機別名
       address        192.168.0.8             ;IP地址
}

3.2.3.定義服務,編輯/usr/local/nagios/etc/objects/windows.cfg,添加服務定義:

A.定義監控CPU負責的服務:

define service{

       use                 generic-service ;服務模板

       host_name           主機名  ;上面定義的主機名

       check_interval        18

       service_description    CPU 負載;服務名稱

       check_command      check_nt!CPULOAD!-l 5,80,90

       }

說明:檢查5分鐘平均值,報警值80%,警告值90%

B.定義監控內存的服務:

define service{

       use                     generic-service,srv-pnp

       host_name               主機名

       check_interval          18

       service_description     Memory 含虛擬內存

       check_command           check_nt!MEMUSE!-w 78 -c 82

       }

說明:內存報警值78%,警告值82%(該數據包含虛擬內存)

C.定義監控磁盤空間的服務:

define service{

       use                   generic-service,srv-pnp

       host_name             主機名

       check_interval          30

       service_description      Drive Space D

       check_command   check_nt!USEDDISKSPACE!-l d -w 80 -c 90

       }

說明:-l後接盤符,報警值80%,警告值90%

D.定義監控windows服務運行狀態:

define service{

   use               generic-service

   host_name         主機名

   service_description  服務名

   check_command  check_nt!SERVICESTATE!-d SHOWALL -l 服務名

   }

說明:-l後接要檢查的服務名稱;contacts爲定義的通知聯繫人。

E.其餘更多的用法能夠根據windows.cfg文件的預約義服務進行觸類旁通。

3.2.4.使用命令:service nagios restart重啓查看狀態,正常的話以下圖:

151715398.png

4、自定義腳本監控(NRPE)

1

2

3

4

4.1客戶端腳本編寫:

腳本的編寫可使用批處理、powershell腳本或vbs等,只要能返回狀態信息和返回值(見文章開頭第一段說明)。

例如如使用批處理,可使用echo命令返回狀態信息;使用exit跟數字0123返回狀態值。以下面的一段批處理腳本能夠實現對進程狀態進行監控:

@echo off

:: 監控進程是否運行

::%1表示使用中的第一個參數,即進程名稱

tasklist |find "%1" >NUL

IF ERRORLEVEL 1 GOTO err

IF ERRORLEVEL 0 GOTO ok

:err

echo CRITICAL!Process %1 is not exist!

exit  2

::返回值爲2,表示警告

:ok

echo OK!Process %1 is exist!

exit  0

::返回值爲0,表示正常

將上述命令做爲批處理保存在C:\Program Files\NSClient++\scripts路徑下如check_run.bat,注意,在返回的狀態信息中儘可能不要用中文。

4.2客戶端腳本命令配置:

編輯C:\Program Files\NSClient++\nsclient.ini,找到[/settings/external scripts/scripts]一行,在下面加入以下內容:

  Command_alias=scripts\check_run.bat Process_Name.exe

注意:等號前面的別名爲服務器端調用的命令,等號後面接具體的腳本,腳本後面跟參數進程名稱,該參數會被腳本使用%1變量進行調用。如我要監控【視頻監控主機】的視頻錄像程序是否啓動,可替換爲check_manager=scripts\check_run.bat  VideoManager.exe

4.3服務器端服務配置()

定義服務後:

define service{

       use                     generic-service

       host_name               Monitor

       service_description           管理平臺

       check_command          check_nrpe!check_manager

       }

4.4重啓Nagios服務:service nagios restart

151744845.png

經過上述默認支持的監控項目和自定義腳本,基本能實現Windows全部須要的監控(對部分服務的詳細監控須要很複雜的腳本才能實現)。

友情連接:旺旺知識庫

相關文章
相關標籤/搜索