跳到主要內容
節省工具箱Jason Tools
經驗分享

LibreNMS 透過 IPMI 監控伺服器 BMC 感測器

Jason Cheng 發布 瀏覽 1 次
LibreNMS 透過 IPMI 監控伺服器 BMC 感測器
本文目錄
  1. 為什麼不用 SNMP 加 BMC
  2. BMC 端準備
  3. LibreNMS 端設定
  4. 確認資料有收到
  5. 常見問題
  6. 建議與注意事項
  7. 結論
  8. 參考資料

伺服器的溫度、風扇轉速、電源狀態,最準確的來源是主機板上的 BMC(Dell iDRAC、HPE iLO、Supermicro IPMI 等)。LibreNMS 可以透過 IPMI 讀取這些感測器,和作業系統的監控資料放在同一個裝置裡。

我的建議是:不要把 BMC 當成獨立的裝置,用 SNMP 加進 LibreNMS,而是先把伺服器的作業系統以 SNMP 加入,再在這個裝置上設定 IPMI。這篇整理各品牌 BMC 端的準備,以及 LibreNMS 端的設定與測試方式。

為什麼不用 SNMP 加 BMC

  • 同一台伺服器變成兩個裝置:作業系統一個、BMC 一個,告警、拓樸、報表都要對兩個裝置處理,查問題時要切來切去
  • BMC 的 SNMP 實作差異很大:有些型號回應很慢、有些 MIB 不完整,輪詢逾時或資料不齊的狀況比 IPMI 多
  • IPMI 的感測器是標準的:溫度、風扇、電壓、電源都用同一套方式讀取,各品牌的差異比 SNMP 小

把 IPMI 設定在作業系統的裝置上,作業系統的 CPU、記憶體、磁碟和硬體的溫度、風扇就會出現在同一個裝置頁面。

BMC 端準備

每個品牌都一樣要做兩件事:建立一個監控專用的帳號、確認 IPMI over LAN 有開啟。帳號權限給 Operator 或唯讀就夠了,不要拿管理者帳號來監控。

注意:不同型號與韌體版本的選單位置會有差異,以下是常見版本的路徑,請依實際畫面找對應的設定。

Dell iDRAC

  1. 登入 iDRAC 網頁介面
  2. 「iDRAC Settings → Users」建立新使用者,例如 librenms
  3. 權限給 Operator 或唯讀,IPMI LAN 權限至少給到 Operator
  4. 「iDRAC Settings → Connectivity → Network → IPMI Settings」,勾選 Enable IPMI Over LAN

iDRAC9 的 IPMI over LAN 是全域開關,預設可能是關閉的,只在使用者那邊勾選還不夠,這是最常漏掉的一步。舊版 iDRAC 的位置在「Network → IPMI Settings」。

HPE iLO

  1. 登入 iLO 網頁介面
  2. 「Administration → User Administration」(iLO 5/6 在「Security → User Accounts」)建立 librenms
  3. 權限只給 Login 即可讀取感測器,不需要 Configure 或 Virtual Media 等權限
  4. 「Security → Access Settings」確認 IPMI/DCMI over LAN 是啟用的

新版 iLO 基於安全考量,IPMI/DCMI over LAN 預設可能是停用的,要手動開啟。

Supermicro

  1. 登入 BMC 網頁介面
  2. 「Configuration → Users」(新版為「User Management」)新增使用者
  3. 權限選 Operator
  4. 「Configuration → Port」確認 IPMI 的 623 通訊埠有開啟

Supermicro 舊機型的預設帳號是 ADMIN,2020 年後出廠的機器則是每台不同的預設密碼(貼在機身標籤上)。不論哪一種,都建議另外建立監控帳號。

Lenovo XClarity Controller(XCC)

  1. 登入 XCC 網頁介面
  2. 「BMC Configuration → User/LDAP」新增使用者,角色選 Read-only 或自訂只有讀取權限的角色
  3. 「BMC Configuration → Network → Enable IPMI over LAN」勾選啟用

XCC 預設停用 IPMI over LAN,要手動開啟。

Fujitsu iRMC

  1. 登入 iRMC 網頁介面
  2. 「User Management」新增使用者,LAN Channel Privilege 選 Operator
  3. 「Network Settings → Ports and Services」確認 IPMI 有啟用

ASUS、Gigabyte 等(AMI MegaRAC)

很多品牌的 BMC 是以 AMI MegaRAC 為基礎,介面相似:

  1. 「Settings → User Management」新增使用者,網路權限選 Operator,並勾選啟用 IPMI 存取
  2. 「Settings → Services」或「Network → IPMI」確認 IPMI over LAN 已啟用

網路與防火牆

IPMI 使用 623/UDP。LibreNMS 主機到 BMC 之間的防火牆要允許這個通訊埠。

LibreNMS 端設定

安裝 ipmitool

LibreNMS 是呼叫 ipmitool 讀取 BMC 的,監控主機上要先安裝:

apt install ipmitool

RHEL 系列用 dnf install ipmitool。

設定 IPMI 協定的嘗試順序

LibreNMS 會依設定的順序嘗試 IPMI 協定。到「全域設定 → 探索 → IPMI Module」,把 lanplus(IPMI 2.0)放在第一位:

全域設定的 IPMI Module:lanplus 放在第一位
全域設定的 IPMI Module:lanplus 放在第一位

也可以用指令設定:

lnms config:set ipmi.type '["lanplus", "lan", "imb", "open"]'

現在的 BMC 幾乎都支援 IPMI 2.0(lanplus),放第一位可以少掉嘗試其他協定的等待時間。很舊的 BMC 只支援 IPMI 1.5 的話,才會用到後面的 lan。

在裝置上設定 IPMI

  1. 先把伺服器的作業系統(Windows、Linux、ESXi、PVE 等)以 SNMP 加入 LibreNMS
  2. 進入該裝置,點「編輯」,切到 IPMI 頁籤
  3. 填入 BMC 的連線資訊後儲存
欄位內容
IPMI/BMC HostnameBMC 的 IP 或主機名稱
IPMI/BMC Port623
IPMI/BMC Username剛建立的監控帳號
IPMI/BMC Password監控帳號的密碼
IPMIv2 Kg keyBMC 有設定 Kg key 才需要填,一般留空
IPMI Cipher suite留空,自動協商
IPMI Timeout預設 3 秒,BMC 回應慢可以調高
裝置編輯頁的 IPMI 頁籤
裝置編輯頁的 IPMI 頁籤

要停用 IPMI 輪詢,把這些欄位清空再儲存即可。

確認資料有收到

設定好之後,下一次輪詢(預設每 5 分鐘)就會開始收集,成功的話裝置概觀會多出 IPMI 的感測器。

裝置概觀出現 IPMI 的溫度、風扇、電壓感測器
裝置概觀出現 IPMI 的溫度、風扇、電壓感測器

在網頁上立即測試

不想等,或是等很久都沒出現要除錯:

  1. 進入該裝置,點右上角的選單,選 Capture
  2. 切到 Poller 頁籤,按 Run
裝置選單的 Capture,切到 Poller 頁籤執行
裝置選單的 Capture,切到 Poller 頁籤執行
  1. 執行完後,在輸出裡找 Fetching IPMI sensor data,下面列出感測器名稱與數值,就代表成功
Poller 輸出中的 IPMI 感測器資料
Poller 輸出中的 IPMI 感測器資料

輸出裡也會顯示 LibreNMS 實際執行的 ipmitool 指令(帳密會被遮蔽),對照這行指令在命令列測試,最容易找出問題。

在命令列測試

直接在 LibreNMS 主機上用 ipmitool 測試:

ipmitool -I lanplus -H 192.168.10.50 -p 623 -U librenms -P 'your-password' -N 3 sensor

正常會列出溫度、風扇、電壓、電源等感測器:

命令列直接以 ipmitool 讀取感測器
命令列直接以 ipmitool 讀取感測器

注意:密碼直接寫在指令裡會留在 Shell 的歷史紀錄中。測試完可以清除歷史,或改用 -E 參數從環境變數 IPMI_PASSWORD 讀取密碼。

常見問題

狀況可能原因與處理
Unable to establish IPMI v2 / RMCP+ session帳密錯誤、IPMI over LAN 沒開,或帳號沒有 IPMI LAN 權限
一直逾時,沒有任何回應623/UDP 被防火牆擋住,或 BMC 的 IP 不對
新版 BMC 連線失敗Cipher suite 協商不到,可以在命令列試 -C 17 或 -C 3,成功後再填進 LibreNMS 的 Cipher suite 欄位
感測器很少或部分顯示 na部分感測器在 BMC 上本來就沒有讀值(例如未安裝的風扇、電源)
Capture 有資料,概觀卻沒有等下一次探索(discovery)完成,感測器才會建立

建議與注意事項

  • BMC 放在專用的管理網路:BMC 可以控制電源、掛載虛擬光碟、開遠端主控台,絕對不要暴露到網際網路
  • 監控帳號只給最低權限:讀取感測器不需要管理者權限,帳號外洩時影響也比較小
  • 定期更新 BMC 韌體:BMC 的漏洞不少,韌體更新常常被忽略
  • 告警設定:感測器收進來之後,可以用 LibreNMS 的預設告警規則(溫度、風扇、電源狀態)通知,硬體異常能比使用者先知道

結論

LibreNMS 監控伺服器硬體,最乾淨的做法是:作業系統用 SNMP 加入,硬體感測器透過 IPMI 掛在同一個裝置上。BMC 端記得建立監控帳號、開啟 IPMI over LAN;LibreNMS 端裝好 ipmitool、把 lanplus 放第一位,再用 Capture 或命令列確認,基本上不會有什麼問題。

參考資料

Jason Cheng

Jason Cheng

企業開源技術顧問,專注架構規劃與實務導入

關於作者 →

延伸閱讀