搜尋此網誌

2013年4月12日 星期五

[迷你好兔] 如何利用 Nagios/Icinga 來監測 CentOS 下的 Adaptec Raid 控制卡

icon-raid-monitor256Raid 控制卡對伺服器來說,可說是很常見也很重要的一個元件。雖然主機本身通常都會有燈號可以顯示硬碟的狀態,甚至在硬碟出問題時發出警示聲響,但是這種方式對於遠端管理來說沒有多大的幫助,更何況並不是所有機器都有專業保母 24 小時隨時看著呢。至於 Raid 控制卡的狀態,光從主機外觀可就是更加不容易掌握了。
在這次的分享中,我將示範如何利用 Nagios 來監測安裝於 CentOS 下的 Adaptec Raid 控制卡,其型號為 6405/5405。




  1. 下載 Adaptec 命令列工具 (Command Line Utility)
    以 6405 為例,可以從產品頁面下的 Storage Manager Downloads 連結,找到最新版本的命令列工具。
    目前提供的最新版本是 Adaptec ARCCONF Command Line Utility v1.1.20324。雖然這個版本是從 6405 的頁面中下載,但是一樣支援 5405 這個型號。
  2. 選擇合適的執行檔
    解開下載的壓縮檔後可以看到11個目錄,各自代表不同系統的執行檔。以 64 位元的 CentOS 為例,所需的執行檔就是 linux_x64/arcconf。我們將這個檔案放置於系統內的 /opt/Adaptec 目錄下,並加上執行權限。
  3. 測試 Command Line Tool
    輸入指令
    /opt/Adaptec/arcconf GETCONFIG 1 AL
    如果看到下列資訊表示指令運作正常
    Controllers found: 1
    ----------------------------------------------------------------------
    Controller information
    ----------------------------------------------------------------------
       Controller Status                        : Optimal
       Channel description                      : SAS/SATA
       Controller Model                         : Adaptec 6405
    …
  4. 下載 Nagios/Icinga 監測所需腳本
    可以從這裡下載所需腳本 check-aacraid.py
    https://www.ip6.li/cms/tiki-download_file.php?fileId=46
    下載完後請將檔案放置於 nagios plugins 的目錄,並加上執行權限。以 64 位元的 CentOS 為例,此一目錄為 /usr/lib64/nagios/plugins/。
    如果監測的 Raid 控制卡是 6405,必須修改 check-aacraid.py,將
    if bstatus.group(1) == "Not Installed":
    改為
    if bstatus.group(1) == "ZMM not installed":
  5. 測試監測腳本 check-aacraid.py
    執行
    /usr/lib64/nagios/plugins/check-aacraid.py
    如果出現下列資訊表示腳本執行成功
    Logical Device 0 Optimal,Controller Optimal
    在安裝 ZMM 的情況下,顯示資訊則為
    Logical Device 0 Optimal,Controller Optimal,Battery Status ZMM Optimal
  6. 設定 nagios 帳號權限
    因為 arcconf 需要 root 權限才能正常執行,所以我們需要加上 sudo 的設定。新增 sudo 設定檔 /etc/sudoers.d/nagios,並輸入下列內容
    nagios ALL=(root) NOPASSWD: /opt/Adaptec/arcconf GETCONFIG 1 *
    Defaults:nagios !requiretty
  7. 測試 nagios 權限
    切換為帳號 nagios 後,再次執行步驟 5,應該不用輸入 root 密碼就可以得到相同的結果。
  8. 設定 nrpe
    修改 nrpe 設定檔 /etc/nagios/nrpe.cfg,加上下列設定
    command[check_aacraid]=/usr/lib64/nagios/plugins/check-aacraid.py
  9. 重新啟動 nrpe
    指令
    service nrpe restart
  10. 設定 Ngaios/Icinga
    之前所有動作皆在安裝 Adaptec 控制卡的主機上進行,後面幾個動作則在  Nagios/Icinga 監測主機上進行。以 Icinga 為例,所需修改之設定檔為 /etc/icinga/objects/localhost.cfg,加上下列設定
    define service{      
           use                              local-service      
           host_name                        hostname      
           service_description              AACRaid [Adaptec] Status      
           check_command                    nrpe!check_aacraid      
    }
    其中 hostname 是安裝 Adaptec Raid 控制卡的主機名稱。
  11. 重新讀取設定檔
    以 Icinga 為例,指令是
    service icinga reload
透過幾個簡單的步驟,我們就可以利用 Naigos/Icinga 隨時監控 Adaptec Raid 控制卡與硬碟的狀態,晚上睡覺也可以睡得更安穩囉。

About