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