十八張圖帶你入門實時監控系統HertzBeat
我們經常講:研發人員有兩只眼睛,一只是監控平臺,另一只是日志平臺。在對性能和高可用講究的場景里,監控平臺的重要性再怎么強調也不過分。
這篇文章,我們聊聊開源實時監控告警系統 HertzBeat 赫茲跳動。
圖片
1 產品特色
HertzBeat 有兩個非常鮮明的特色:強大的監控模版和無需 Agent 。
1.1 強大的監控模版
HertzBeat 自身并沒有去創造一種采集數據協議讓監控對端來適配它,而是充分使用了現有的生態。比如:
- SNMP 協議采集網絡交換機路由器信息
- JMX 規范采集 JAVA 應用信息
- JDBC 規范采集數據集信息
- SSH 直連執行腳本獲取回顯信息
- HTTP 解析 API 接口信息
圖片
HertzBeat 使用這些已有的標準協議或規范,將他們抽象規范可配置化,最后使其都可以通過編寫YML格式監控模版的形式,來制定模版使用這些協議來采集任何想要的指標數據。
1.2 無需 Agent
筆者曾經接觸過多款監控系統,他們有一個非常鮮明的共通點:安裝 Agent 。Agent 的安裝部署調試,需要花費大量的時間和精力。
HertzBeat 的原理就是使用不同的協議去直連對端系統,采用 PULL 的形式去拉取采集數據,無需用戶在對端主機上部署安裝 Agent | Exporter 等。
比如 監控 linux 操作系統,HertzBeat 端輸入 IP 端口賬戶密碼或密鑰即可。
2 Docker 安裝
docker 環境僅需一條命令即可開始:
圖片
此時,瀏覽器訪問 http://localhost:1157 即可開始,默認賬號密碼 admin/hertzbeat。
圖片
3 監控 Redis 數據庫
首先,我們嘗試監控 Redis 數據庫。進入緩存監控-Redis數據庫 ,點擊新增Redis數據庫按鈕 。
圖片
點擊確定后,會顯示監控 Redis 列表:
圖片
點擊監控詳情圖標,可以顯示 Redis 監控信息:
圖片
4 監控 SpringBoot 服務
4.1 配置 Actuator
Spring Boot Actuator 是 Spring Boot 框架中的一個模塊,它提供了一組用于監控和管理 Spring Boot 應用程序的功能。Actuator 模塊為開發人員和運維團隊提供了一些有用的端點(endpoints),可以通過 HTTP 或 JMX 進行訪問,以獲取應用程序的運行時信息、性能指標和健康狀況等。
首先,我們在 SpringBoot 項目中添加 actuator 依賴。
圖片
應用配置如下:
圖片
訪問 http://localhost:8080/actuator,查看暴露出來的端點:
圖片
4.2 應用程序監控
進入應用程序監控-SpringBoot2.0 ,點擊新增SpringBoot2.0監控按鈕 。
圖片
點擊確定后,會顯示監控 SpringBoot2.0 列表:
圖片
點擊監控詳情圖標,可以顯示 SpringBoot2.0 監控信息:
圖片
5 報警配置
報警是監控系統中至關重要的功能,它為運維團隊提供了實時的、即時的反饋,使其能夠迅速響應和解決潛在的問題。
本節,我們展示如何發送郵件報警。
5.1 系統配置郵件服務器
圖片
5.2 定義通知媒介
圖片
通知媒介可以理解:誰接收告警信息,HertzBeat 定義了多種通知方式,比如郵件、釘釘、企業微信等。
5.3 定義通知策略
圖片
圖片
通知策略可以配置接收對象、通知模板、通知時間等。
5.4 模擬系統關閉
我們關閉掉 SpringBoot 服務后,監控中心會顯示告警信息:
圖片
同時,筆者查看接收郵件里是否存在郵件。
圖片
圖片
筆者果然收到了系統不可用的郵件,郵件內容包括:監控目標、監控名、告警級別,觸發時間等。
經過三天的探索,筆者感覺 HertzBeat 的界面清新,使用非常絲滑,開箱即用,推薦大家一試。