nagios對windows和linux的監控

  本文參考網址: http://nagios-cn.sourceforge.net/nagios-cn/

4.7. 監控Windows主機

4.7.1. 介紹

本文用來說明如何監控Windows主機的本地服務和特性,包括:

  • 內存佔用率

  • CPU負載

  • Disk利用率

  • 服務狀態

  • 運行進程

  • 等等

Windows主機上的公衆化服務(HTTPFTPPOP3)可以查閱監控公衆化服務這篇文檔。

注意

如下的內容是假定你已經按照快速安裝指南安裝好了Nagios系統之後做的,下面所使用的樣例配置文件(commands.cfgtemplates.cfg)已經在安裝過程中安裝到位。

4.7.2. 概覽

Windows機器的監控私有服務需要在機器上安裝代理程序。代理將會在檢測插件與Nagios服務之間起網關代理作用。如果沒有在機器上安裝代理的話,Nagios將無法對Windows私有服務或屬性等進行監控。

在下面例子中,將在Windows機器上安裝NSClient++外部構件並使用check_nt插件檢測和與NSClient++構件進行通訊。如果你按照指南來安裝的話,check_nt插件已經安裝到了Nagios服務器上。

如果願意,可以用其他的Windows代理(NC_Net)替代NSClient++構件所起的作用-只是要稍稍改一下對應的命令和服務定義等。下面將只是討論安裝了NSClient++外部構件的情況。

4.7.3. 步驟

爲完成對Windows機器的檢測,有幾個步驟要做,它們是:

  • 確認一下首要條件;

  • Windows機器上安裝代理(在本例中是安裝NSClient++構件)

  • Windows機器創建新的主機和服務對象定義;

  • 重啓動Nagios守護進程。

4.7.4. 已經做了什麼?

爲使過程簡單,已經完成了少量配置文件的工作:

  • 已經把check_nt命令加入到了commands.cfg文件中,就可以直接使用check_nt插件來監控Windows服務;

  • 一個Windows機器的主機對象模板(命名爲windows-server)已經在templates.cfg文件裏創建好了,可以更容易地加入一個新的Windows主機對象定義。

常用的配置文件可以在/usr/local/nagios/etc/objects/目錄裏找到。如果願意可以對裏面的對象進行修改以適應你的要求。但是,如果你沒有熟悉配置Nagios之前勸你不要這麼做。開始時可以只是按照下面的指令操作來快速完成監控Windows機器。

4.7.5. 首要條件

首次監控一臺Winodws機器時需要對Nagios做點額外的工作,記住,僅僅是監控第一臺Windows機器時需要做這些工作。

編輯Nagios的主配置文件

vi /usr/local/nagios/etc/nagios.cfg

把下面這行最前面的#號去掉:

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

保存配置文件並退出。

剛纔做的是什麼呢?是讓Nagios起用/usr/local/nagios/etc/objects/windows.cfg這個配置文件裏的對象定義。在這個配置文件裏可以加些Windows的主機與服務對象定義。該配置文件裏已經包含有幾個樣例主機、主機組及服務對象定義。對於第一臺Windows機器,可以只是簡單地修改裏面已經有的主機與服務對象定義而不要新創建一個。

4.7.6. 安裝Windows代理程序

在用Nagios監控Windows機器的私有服務之前,需要先在機器上安裝代理程序。推薦使用NSClient++外部構件,它可以在http://sourceforge.net/projects/nscplus找到。如下指令可以安裝一個基本的NSClient++外部構件,同時也配置好Nagios來監控這臺Windows機器。

1.http://sourceforge.net/projects/nscplus站點下載最新穩定版的NSClient++軟件包;

2.展開軟件包到一個目錄下,如C:\NSClient++

3.打開一個命令行窗口並切換到C:\NSClient++目錄下;

4.用下面命令將NSClient++系統服務註冊到系統裏:

      nsclient++ /install

5.用下面命令安裝NSClient++系統托盤程序('SysTray'是大小寫敏感的)

      nsclient++ SysTray

6.打開服務管理器並確認NSClientpp服務可以在桌面交互(看一下服務管理器裏的'Log On'選項頁),如果沒有允許桌面交互,點一下里面的選擇項打開它。

 

7.編輯NSC.INI文件(位於C:\NSClient++目錄)並做如下修改:

  • 去掉在[modules]段裏的列出模塊程序的註釋,除了CheckWMI.dllRemoteConfiguration.dll

  • 最好是修改一下在[Settings]段裏的'password'選項;

  • 去掉在[Settings]段裏的'allowed_hosts'選項註釋,把Nagios服務所在主機的IP加到這一行裏,或是置爲空,讓全部主機都可以聯入;

  • 確認一下在[NSClient]段裏的'port'選項裏已經去掉註釋並設置成'12489'(默認端口)

8.用下面命令啓動NSClient++服務:

      nsclient++ /start

9.如果安裝正確,一個新的圖標會出現在系統托盤裏,是個黃圈裏面有個黑色的'M'

10.完成了。這臺Windows機器可以加到Nagios監控配置裏了...

4.7.7. 配置Nagios

爲監控Windows機器下面要在Nagios配置文件里加幾個對象定義

編輯方式打開windows.cfg文件。

vi /usr/local/nagios/etc/objects/windows.cfg

Windows機器加一個新的主機對象定義以便監控。如果是被監控的第一臺Windows機器,可以只是修改windows.cfg文件裏的對象定義。修改host_namealiasaddress域以符合那臺Windows機器。

define host{

   use         windows-server    ; Inherit default values from a Windows server template (make sure you keep this line!)

   host_name         winserver

   alias       My Windows Server

   address           192.168.1.2

   }

好了。下面可以加幾個服務定義(在同一個配置文件裏)以使Nagios監控Windows機器上的不同屬性內容。如果是第一臺Windows機器,可以只是修改windows.cfg裏的服務對象定義。

注意

用你剛剛加好的主機對象定義裏的host_name來替換例子裏的"winserver"

加入下面的服務定義以監控運行於Windows機器上的NSClient++外部構件的版本。當到時間要升級Windows機器上的外部構件時這信息會很用有,因爲它可以告知這臺Windows機器上的NSClient++需要升級到最新版本。

define service{

   use               generic-service

   host_name               winserver

   service_description     NSClient++ Version

   check_command           check_nt!CLIENTVERSION

   }

加入下面的服務定義以監控Windows機器的啓動後運行時間。

define service{

   use               generic-service

   host_name               winserver

   service_description     Uptime

   check_command           check_nt!UPTIME

   }

加入下面的服務定義可監控Windows機器的CPU利用率,並在5分鐘CPU負荷高於90%時給出一個緊急警報或是高於80%時給出一個告警警報。

define service{

   use               generic-service

   host_name               winserver

   service_description     CPU Load

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

   }

加入下面的服務定義可監控Windows機器的內存佔用率,並在5分鐘內存佔用率高於90%時給出一個緊急警報或是高於80%時給出一個告警警報。

define service{

   use               generic-service

   host_name               winserver

   service_description     Memory Usage

   check_command           check_nt!MEMUSE!-w 80 -c 90

   }

加入下面的服務定義可監控Windows機器的C:盤的磁盤利用率,並在磁盤利用率高於90%時給出一個緊急警報或是高於80%時給出一個告警警報。

define service{

   use               generic-service

   host_name               winserver

   service_description     C:\ Drive Space

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

   }

加入下面的服務定義可監控Windows機器上的W3SVC服務狀態,並在W3SVC服務停止時給出一個緊急警報。

define service{

   use               generic-service

   host_name               winserver

   service_description     W3SVC

   check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC

   }

加入下面的服務定義可監控Windows機器上的Explorer.exe進程,並在進程沒有運行時給出一個緊急警報。

define service{

   use               generic-service

   host_name               winserver

   service_description     Explorer

   check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe

   }

都好了,已經加好了基礎服務定義,可以監控Windows機器了,保存一下配置文件。

4.7.8. 口令保護

如果想指定保存在Windows機器上NSClient++配置文件裏的口令,可以修改check_nt命令定義,讓它帶着口令。編輯方式打開commands.cfg文件。

vi /usr/local/nagios/etc/commands.cfg

修改check_nt命令的定義,帶上"-s <PASSWORD>"命令參數(這裏的PASSWORD 要換成你Windows機器的真正口令),象這樣:

define command{

   command_name check_nt

   command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$

   }

保存文件退出。

4.7.9. 重啓動Nagios

如果修改好Nagios配置文件,需要驗證你的配置文件重啓動Nagios

如果驗證配置文件過程中有什麼錯誤信息,在做下一步前一定要修正好配置文件。一定要保證驗證過程中不再有出錯信息後再啓動或重啓動Nagios

 ————————————————————————————

監控linux 系統

參考博客:http://chenxy.blog.51cto.com/729966/175893/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章