nagios監控raid磁盤陣列(Fusion-MPT SAS系列raid卡 ioc0)

nagios監控raid磁盤陣列網上文檔很多,但大部分都是基於linux系統的,這裏寫的是基於windows2003系統的raid磁盤陣列監控,raid卡有LSI的低端raid卡,Fusion-MPT SAS系列ioc0和MegaRAID SAS系列。

     MegaRAID SAS系列raid卡可以用 MegaCli 的工具查看,MegaCli 的linux版本和windows版本網上都有,這裏給兩個鏈接,照着鏈接的文檔很快就能做出來

http://blog.chinaunix.net/uid-21505614-id-2847524.html 

http://blog.itpub.net/13379967/viewspace-675021/

    基於linux系統的megaRAID卡安裝megacli工具後再下個 check_megaraid_sas 插件就能結合nagios監控,但是windows2003系統,安裝megacli Windows版的工具後還需要自己寫插件結合nagios監控,因爲check_megaraid_sas沒有windows版的,這裏先寫一個megaRAID卡基於windows系統的監控。

   我的服務器是IBM x3650 m3  raid卡megaRAID,系統是windows2003_x64位  ,IP : 192.168.2.82

軟件:

              NSCP-0.4.1.73-x64.msi 

            (nagios客戶端,http://sourceforge.jp/projects/sfnet_nscplus/releases/  )

     8.00.40_Windows_MegaCLI.zip 

    (megacli工具window版,http://download.csdn.net/download/goding/4079095 )

     python-2.7.8.amd64.msi

    (插件用python寫的,需要python環境 https://www.python.org/downloads/  )

1、安裝megacli工具

     megacli直接解壓就可以用

wKioL1QP9g-TcPEKAAQxA3Rz914150.jpg

    直接在cmd界面運行 megacli64.exe  -PDList -aALL (查看硬盤信息)   

wKioL1QP-JKiyVgPAAREanorAso268.jpg

這樣,硬盤信息的基本信息就可以看見了。

2、安裝 python-2.7.8.amd64.msi (配置python環境)

                 python安裝後添加環境變量

wKioL1QP_2vwImm7AAPHgjtHfrg555.jpg

其實照理來說,NSCP-0.4.1.73-x64.msi安裝包裏有PythonScript.dll 這個模塊應該是不用安裝python環境就可以執行python腳本,但是一直沒研究出來怎麼配置,所以不得不安裝python環境,順便練練python

wKiom1QQKMWjz9djAAWAurKzSiw916.jpg

3、安裝  NSCP-0.4.1.73-x64.msi (nagios客戶端工具)

                  NSCP-0.4.1.73-x64.msi這款工具是直接安裝,網上文檔也很多,具體結合nagios怎麼配置就不多說了,下面 給個鏈接,可以自己照着配置 http://blog.sina.com.cn/s/blog_53d375970101dgrl.html 

這裏說下 NSCP-0.4.1.73-x64.msi  怎麼去自定義編寫插件。

                 NSCP-0.4.1.73-x64.msi 安裝後需要配置nsclient.ini文件

    [/modules]
   ;CheckWMI = 1  #註釋掉該行
   [/settings/default]
   allowed hosts = *
   ;password =
    port = 12489  #該行爲手工添

wKioL1QQBQaQlQk7AAGLcjyDyNQ983.jpg

上面的配置是軟件安裝後的正常配置,如果要 自定義編寫插件還要在文件末尾添加兩項配置

[/settings/external      scripts/scripts]     #設置擴展腳本,注意中間只留一個空格

check_raid5=python     scripts/python/check_raid5.py    

# check_raid5是腳本別名,python     scripts/python/check_raid5.py  就是使用python 命令執行 check_raid5.py 這個腳本

wKiom1QQAnbSgnzaAAH8c5bAwZ4092.jpg

      可以看到 check_raid5.py 存放的路徑 在C:\Program Files\NSClient++\scripts\python目錄下,nsclient.ini 文件自定義插件的詳細配置可以看官方文檔 http://docs.nsclient.org/howto/external_scripts.html 

nsclient.ini配置完成後重啓  nsclient++  服務。

4、測試

                    找一臺已經裝好nagios的機器, 進入cd   /usr/local/nagios/libexec/  目錄,使用 ./check_nrpe -H 192.168.2.82  進行測試。(192.168.2.82 是上面安裝了NSCP-0.4.1.73-x64.msi 的windows客戶端機器)

這裏使用./check_nrpe  而不是 ./check_nt 是根據官網說明來做的,當時看到官網使用./check_nrpe測試windows客戶端很奇怪,nrpe不是nagios的linux客戶端嗎?,結果在windows客戶端上使用netstat  -an 發現windows機器上也開啓了nrpe的5666端口,說明可以用./check_nrpe插件來連接windows客戶端,老外搞的玩意兒果然很草蛋。

wKioL1QQCRjAbbi2AARMnucjWsI780.jpg

 ./check_nrpe -H 192.168.2.82  測試返回   I (0,4,1,73 2012-12-17) seem to be doing fine... 結果說明通訊正常

wKiom1QQDMKzG-C8AACWXS-yKOQ258.jpg

   ./check_nt   -H   192.168.2.82   -p 12489   -v   USEDDISKSPACE -l   c   -w  80   -c   90   (使用check_nt 去測試192.168.2.82 windows客戶端的 C 盤容量)

wKiom1QQC4PxqXOJAADCtT3NYKA673.jpg

很草蛋吧, NSCP-0.4.1.73-x64.msi 安裝後的windows客戶端可以同時使用check_nrpe  和check_nt 去連接。

接着測試自己寫的check_raid5.py 腳本,去檢測服務器的磁盤陣列raid5

                    前面介紹過  服務器是IBM x3650 m3  raid卡megaRAID,系統是windows2003_x64位  ,IP :   192.168.2.82,用5塊300G的磁盤做的raid5,其中有一塊是壞盤,raid5做完後面板dasd告警

cmd界面運行  megacli64.exe  -PDList -aALL   (查看硬盤信息),可以看見有一塊盤沒有顯示online,如下圖

wKioL1QQEf3jEYR0AAO-OdVlriM415.jpg

其它4塊盤都顯示正常

wKiom1QQEofyKc-WAAREanorAso597.jpg

我的腳本原理就是通過 megacli64  -PDList -aALL 命令檢測 Online 關鍵字來判斷raid5是否正常,我的raid5是5塊磁盤,有一塊是壞的,那麼腳本檢測出的就是4個online關鍵字,返回Raid is error,返回值爲2

          check_raid5.py

                      

import os
output = os.popen('C:\WINDOWS\system32\MegaCli64 -PDList -aALL')
a = 0
for i in output.readlines():
    if 'Online' in i:
        a += 1      
if (a == 5):
    print "Raid is OK "
    exit(0)
else: 
    print "Raid is error"
    exit(2)


windows本機測試 python check_raid5.py

 wKioL1QQFcKAnhs_AABKshqv3As251.jpg

在遠程nagios主機上測試,./check_nrpe -H 192.168.2.82  -c check_raid5 (check_raid5是nsclient.ini文件裏配置的腳本別名,配置見上面)

wKiom1QQFzXShezdAACOoOZypoM034.jpg

可以看到測試返回Raid is error ,腳本的返回值爲2。

修改腳本,將 a == 5 改爲 a ==4,這樣,5塊磁盤檢測出4個online顯示正常。

import os
output = os.popen('C:\WINDOWS\system32\MegaCli64 -PDList -aALL')
a = 0
for i in output.readlines():
    if 'Online' in i:
        a += 1      

    print "Raid is OK "
    exit(0)
else: 
    print "Raid is error"
    exit(2)

在遠程nagios主機上測試

wKiom1QQGUuS-yERAACbs3_RMRI197.jpg

這樣nagios主機遠程調用window主機上的腳本監控raid5磁盤陣列就成功了。


上面的實驗是基於 window2003系統,megaRAID卡來做的,下面說一下基於window2003系統的LSI的低端raid卡,Fusion-MPT SAS系列ioc0怎麼監控。

       ioc0低端raid卡在linux系統裏可以通過mpt-status工具監控,只不過安裝了工具後還要自己再寫一個腳本去通過mpt-status命令統計online關鍵字來檢測raid磁盤陣列,這樣就能結合nagios來監控raid了,mpt-status具體配置文檔 http://blog.chinaunix.net/uid-20344928-id-3188135.html 

       然而ioc0低端raid卡在windows系統裏就只能通過mpt-status的windows版工具,這個工具還是找的IBM官方要的,百度死活找不到,google又訪問不了。

       https://www-947.ibm.com/support/entry/myportal/docdisplay?lndocid=MIGR-65666 (mpt-status的windows版工具 )

 mpt-status也是下載下來就能用

       服務器是DELL r710  ioc0低端raid卡  系統windows2003_x64位 兩塊300G硬盤做的raid0

    wKiom1QQJjLBxECjAAPFPKg0PUk146.jpg

    wKioL1QQJmTA2uPxAATvWdAhslM840.jpg

 可以看到硬盤容量,在線狀態online,硬盤序列號,這樣就可以通過統計online關鍵字來監控raid1磁盤陣列,寫成插件後就可以結合nagios進行監控。(具體方法見上面的megaRAID卡基於windows系統的監控)


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