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