在這次的分享中,我將示範如何利用 Nagios 來監測安裝於 CentOS 下的 Adaptec Raid 控制卡,其型號為 6405/5405。
- 下載 Adaptec 命令列工具 (Command Line Utility)
以 6405 為例,可以從產品頁面下的 Storage Manager Downloads 連結,找到最新版本的命令列工具。
目前提供的最新版本是 Adaptec ARCCONF Command Line Utility v1.1.20324。雖然這個版本是從 6405 的頁面中下載,但是一樣支援 5405 這個型號。 - 選擇合適的執行檔
解開下載的壓縮檔後可以看到11個目錄,各自代表不同系統的執行檔。以 64 位元的 CentOS 為例,所需的執行檔就是 linux_x64/arcconf。我們將這個檔案放置於系統內的 /opt/Adaptec 目錄下,並加上執行權限。 - 測試 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 …
- 下載 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":
- 測試監測腳本 check-aacraid.py
執行
如果出現下列資訊表示腳本執行成功/usr/lib64/nagios/plugins/check-aacraid.py
在安裝 ZMM 的情況下,顯示資訊則為Logical Device 0 Optimal,Controller Optimal
Logical Device 0 Optimal,Controller Optimal,Battery Status ZMM Optimal
- 設定 nagios 帳號權限
因為 arcconf 需要 root 權限才能正常執行,所以我們需要加上 sudo 的設定。新增 sudo 設定檔 /etc/sudoers.d/nagios,並輸入下列內容nagios ALL=(root) NOPASSWD: /opt/Adaptec/arcconf GETCONFIG 1 * Defaults:nagios !requiretty
- 測試 nagios 權限
切換為帳號 nagios 後,再次執行步驟 5,應該不用輸入 root 密碼就可以得到相同的結果。 - 設定 nrpe
修改 nrpe 設定檔 /etc/nagios/nrpe.cfg,加上下列設定command[check_aacraid]=/usr/lib64/nagios/plugins/check-aacraid.py
- 重新啟動 nrpe
指令service nrpe restart
- 設定 Ngaios/Icinga
之前所有動作皆在安裝 Adaptec 控制卡的主機上進行,後面幾個動作則在 Nagios/Icinga 監測主機上進行。以 Icinga 為例,所需修改之設定檔為 /etc/icinga/objects/localhost.cfg,加上下列設定
其中 hostname 是安裝 Adaptec Raid 控制卡的主機名稱。define service{ use local-service host_name hostname service_description AACRaid [Adaptec] Status check_command nrpe!check_aacraid }
- 重新讀取設定檔
以 Icinga 為例,指令是service icinga reload
沒有留言:
張貼留言