Proxmox VE 上線運作以後,為了確保正常服務,應該要以服務監測工具進行自動化的檢測運作健康程度。
說來容易,但要監測 Proxmox VE 是否正常,該怎麼做呢?
套件介紹
早期我是自己寫簡單的 script 檢測,後來發現了一支熱心人士已經寫好的現成外掛,經過修改以後可以搭配我很喜愛使用的 LibreNMS 來檢測,非常好用。
check_pve
在 GitHub 上已經有人撰寫好現成的外掛,他原本是為了 Icinga2 這套監控程式而寫,功能極為完整。值得一提,它也有提供給 Grafana 使用的 metrics 輸出資訊,有使用 Grafana 的朋友可以試試。
在我的經驗裡,只要是撰寫給 Nagios、Icinga2 使用的 Plugin 外掛程式通常也可以被 LibreNMS 所使用,可惜 check_pve 不是。
為了讓 LibreNMS 也可以用它來檢測 Proxmox VE 的運作狀態,我另外 Fork 分支了一個修改版(參考資料第三項),讓搭配 LibreNMS 的朋友使用,若使用 Icinga2 者,可以取用原作者的版本。(參考資料第二項)
功能說明
check_pve 可以檢測的項目,列舉重點如下。
- 檢查叢集 (Cluster) 健康狀況
- 檢查節點 (Node) 服務建康狀況,主要是與 PVE 相關的服務
- 檢查節點 (Node) CPU 負載程度
- 檢查節點 (Node) 記憶體用率
- 檢查節點 (Node) IO Wait 延遲狀況
- 檢查節點 (Node) 磁碟 (Disk) 健康狀況
- 檢查節點 (Node) 付費技術支援 (Subscription) 狀況
- 檢查儲存 (Storage) 使用狀況
- 檢查虛擬機器 (VM) 狀況,包含 CPU、記憶體、運作狀態等
- 檢查複寫 (Replication) 狀態
對於 Proxmox VE 的資訊掌握已經相當足夠,尤其是節點服務的狀態檢查,更是曾讓我抓到奇怪的問題過。
使用方式相當簡單,請參閱參考資料的 GitHub 連結,按照說明檔中的 Setup 區段一步步設定完成即可。
使用結果
check_pve 這支外掛的使用方法,與 Nagios、Icinga2、LibreNMS 外掛安裝與設定方法均相同,可參考相關說明文件。
設定完成以後,在 LibreNMS 可以呈現這樣的成果:
LibreNMS 檢測狀況
除了檢測狀態,更重要的是以此為數據,發現異常時立即推播警報給管理者,以達及早處理及早排除的功效。
透過 Telegram 推播服務異常警報
結論
利用 check_pve,我們可以讓檢查的動作自動化,警報發送的速度即時化,對於系統管理是相當重要的一環,更別說您的 PVE 上可能承載了企業所有重要的服務虛擬機器,更需要它。
參考資料
- Proxmox VE 5.3 Cluster, High Availability & Others [20181223]
https://www.slideshare.net/jasoncheng7115/proxmox-ve-cluster-high-availability-others-20181223
- [適用 Nagios、Icinga2]
nbuchwitz/check_pve: Icinga check command for Proxmox VE via API
https://github.com/nbuchwitz/check_pve
- [修改給 LibreNMS 用]
jasoncheng7115/check_pve: Icinga check command for Proxmox VE via API
https://github.com/jasoncheng7115/check_pve
- Nagios Plugins - LibreNMS Docs
https://docs.librenms.org/Extensions/Services/
- Service Monitoring - Icinga 2
https://icinga.com/docs/icinga2/latest/doc/05-service-monitoring/
- Nagios Plugins - Installing Nagios Plugins From Source
https://support.nagios.com/kb/article/nagios-plugins-installing-nagios-plugins-from-source-569.html