如何在 Zabbix 透過 API 監控 ViewPower / 飛碟 UPS

Ivan Cheng
6 min readFeb 1, 2024

飛碟 UPS 算是台灣中小企業愛用的品牌,通常我們可以透過 LED 面板來了解電池的電壓和負載資訊與的剩餘備援時間,今天來教大家如何在 Zabbix 透過 API 監控 ViewPower / 飛碟 UPS。

大部分的 UPS 都有提供一個選配的智慧型插槽,需要購買支援 SNMP 或 AS400 的網卡進行安裝,才能使用進階的通訊功能與監控。

電騎士系列使用說明書

我們可以使用 RS-232 或者 USB 埠搭配 ViewPower 電源管理軟體來使用進階的通訊功能與監控,可以參考上一篇文章的教學。

ViewPower

安裝完 ViewPower 就可以取得 UPS 的詳細資訊

使用開發人員工具不難發現 Power Flow 的資料來源,其實是透過呼叫 API 取得的 JSON。

http://192.168.4.11:15178/ViewPower/workstatus/reqMonitorData

瀏覽器輸入 URL 取得 JSON 如下

稍微幫大家整理一下,需要監控的資訊主要出現在 workInfo。

{
...
"portName":"COM3",
"protocolType":"P01",
"serverName":"ViewPower",
"version":"ViewPowerHTML V1.04-21353",
"workInfo":{
"batteryCapacity":100,
"batteryRemainTime":37,
"batteryVoltage":"082.0",
"buzzerCtrl":true,
"bypassActive":false,
"inputFrequency":"60.0",
"inputVoltage":"114.0",
"morphological":"on-line",
"outputCurrent":"4.6",
"outputFrequency":"60.0",
"outputLoadPercent":"017",
"outputVoltage":"109.8",
"temperature":"19.4",
"workMode":"Line mode"
}
}
https://www.youtube.com/watch?v=k_tLI1Xi0GA

Zabbix

既然知道如何取得 UPS 的資訊,就可以回到 Zabbix 進行設定。

建立一個主要的 Item 先把整個 JSON 抓下來

Type:HTTP agent
Key:viewpower.workstatus (根據自己的習慣自行定義)
URL:http://{HOST.IP}:{$UPS.PORT}/ViewPower/workstatus/reqMonitorData
Request type:GET

點選 TEST 確認可以取得 JSON 資料無誤

建立 Dependent Item

Type:Dependent item
Key:viewpower.workstatus.workInfo.batteryRemainTime
Master item:Template ViewPower by HTTP: Workstatus
Type of information:Numeric (unsigned)
Units:m

切到 Preprocessing 透過 JSONPath 取到電池剩餘時間

驗證一下 Last Data,看起來沒問題。

接著就可以到 Grafana 畫圖了

最後提供筆者的範本給大家參考,今天的分享就到這邊,感謝收看。

參考文件

--

--