馬嘉煒 | Zabbix開源社區簽約專家
SRE運維工程師,六年Zabbix監控系統使用經驗。在Zabbix架構設計及性能優化領域有豐富的經驗,擅長監控模板製作及Zabbix API的二次開發。
官方使用手冊《Zabbix標準模板指南》譯者
簡介
從Zabbix 4.0版本開始,官方提供了一種新的HTTP代理(HTTP agent)的健康方式,通過HTTP協議採集數據,它由Zabbix server或者Zabbix proxy發起,並且不需要安裝Zabbix agent。
官方文檔說明:https://www.zabbix.com/documentation/current/en/manual/config/items/itemtypes/http
本文將介紹HTTP代理的使用方法及技巧。
環境需求
-
Zabbix 版本 >= 4.0
案例:通過Spring Boot Actuator Web API監控應用狀態
-
actuator是spring boot提供的對應用系統的自省和監控的集成功能,可以對應用系統進行配置查看、相關功能統計等。 -
官方文檔說明:https://docs.spring.io/spring-boot/docs/current/actuator-api/htmlsingle/
actuator提供了一個health endpoint用於獲取有關應用程序的運行狀況的詳細信息。
官方文檔地址:https://docs.spring.io/spring-boot/docs/current/actuator-api/htmlsingle/#health
URL地址爲 http://<ip>:<port>/actuator/health
返回結果(JSON數據格式):
{
"status": "UP",
"components": {
"custom": {
"status": "UP",
"details": {
"app": "Alive and Kicking",
"error": "Nothing! I'm good."
}
},
"diskSpace": {
"status": "UP",
"details": {
"total": 52776349696,
"free": 43368595456,
"threshold": 10485760
}
},
"ping": {
"status": "UP"
}
}
}
配置監控項
推薦使用Zabbix的master監控項 + 依賴監控項(相關項目)來實現一次調用採集多個數據,減少對API的調用次數。
步驟 1: 創建master監控項
創建監控項並修改以下配置:
-
名稱: Get Spring boot actuator health -
類型: HTTP代理 -
鍵值: spring.boot.actuator.health -
URL: http://masix.cn:8080/actuator/health(支持使用macro宏變量) -
請求類型: GET -
要求的狀態碼: 200 -
信息類型: 文本 -
更新間隔: 1m -
歷史數據保留時長: Do not keep history -
應用集: Zabbix raw items
如果API接口需要認證,可以設置HTTP認證。用戶名和密碼支持使用macro宏變量。
配置完成後點下方的測試,點擊Get value and test,檢查是否能夠正確獲取數據。
步驟 2: 創建依賴監控項(相關項目)
假設需要監控應用的狀態以及磁盤的剩餘空間這兩個指標
指標 1: 監控應用狀態
JSONPath語法說明參考官方文檔:https://www.zabbix.com/documentation/current/en/manual/config/items/preprocessing/jsonpath_functionality
創建監控項並修改以下配置:
-
名稱: Spring boot Application: Health Status -
類型: 相關項目 -
鍵值: spring.boot.actuator.health.status -
主要項: Get Spring boot actuator health -
信息類型: 字符 -
應用集: Spring boot Application
在進程標籤頁添加步驟:
-
名稱: JSONPath -
參數: $.status -
Custom on fail: 勾選並選擇 Set value to,值填寫 Down(當API無法訪問時會將監控項數據設置爲 Down,方便配置觸發器表達式)
點擊下方的Test all steps進行配置驗證,在值中填入master監控項測試獲取的數據,點擊測試檢查是否能夠正確獲取數據。
指標 2: 監控磁盤剩餘空間
創建監控項並修改以下配置:
-
名稱: Spring boot Application: Disk free space -
類型: 相關項目 -
鍵值: spring.boot.actuator.health.diskspace.free -
主要項: Get Spring boot actuator health -
信息類型: 數字(無正負) -
單位: B -
應用集: Spring boot Application
在進程標籤頁添加步驟:
-
名稱: JSONPath -
參數: $.components.diskSpace.details.free -
Custom on fail: 勾選並選擇 Discard value(當API無法訪問時會將監控項數據丟棄)
點擊下方的Test all steps進行配置驗證,在值中填入master監控項測試獲取的數據,點擊測試檢查是否能夠正確獲取數據。
檢查最新數據能否正常採集
注意:依賴監控項(相關項目)的數據更新間隔是由master監控項設置的更新間隔決定的
至此,監控項的配置就已經完成,接下來可以根據實際情況配置對應的觸發器。
在配置模板時,可以將master監控項中的URL配置爲macro宏變量,例如: http://{$HOST}:{$PORT}/actuator/health,這樣可以在鏈接模版時對不同的主機設置宏變量(用戶名密碼也可以這樣配置)。
————
2022年活動計劃,交流會爲半天,約50人,免費。期待你的回覆,其他選擇可至文末留言~
推薦閱讀
|
|||
|
|||
|
|||
|
備註“使用Zabbix年限+企業+姓名”
進入交流羣,4000+用戶已加入
一個人走得快,一羣人走得遠
本文分享自微信公衆號 - Zabbix開源社區(china_zabbix)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。