Docker部署HertzBeat實時監(jiān)控告警系統(tǒng)
一、簡介
HertzBeat 赫茲跳動 是一個易用友好的開源實時監(jiān)控告警系統(tǒng),無需 Agent,高性能集群,兼容 Prometheus,提供強(qiáng)大的自定義監(jiān)控和狀態(tài)頁構(gòu)建能力。有下面這些特點:
- 集 監(jiān)控+告警+通知 為一體,支持對應(yīng)用服務(wù),應(yīng)用程序,數(shù)據(jù)庫,緩存,操作系統(tǒng),大數(shù)據(jù),中間件,Web服務(wù)器,云原生,網(wǎng)絡(luò),自定義等監(jiān)控閾值告警通知一步到位。
- 易用友好,無需 Agent,全 WEB 頁面操作,鼠標(biāo)點一點就能監(jiān)控告警,零上手學(xué)習(xí)成本。
- 將 Http, Jmx, Ssh, Snmp, Jdbc, Prometheus 等協(xié)議規(guī)范可配置化,只需在瀏覽器配置監(jiān)控模版 YML 就能使用這些協(xié)議去自定義采集想要的指標(biāo)。
- 兼容 Prometheus 的系統(tǒng)生態(tài)并且更多,只需頁面操作就可以監(jiān)控 Prometheus 所能監(jiān)控的。
- 高性能,支持多采集器集群橫向擴(kuò)展,支持多隔離網(wǎng)絡(luò)監(jiān)控,云邊協(xié)同。
- 自由的告警閾值規(guī)則,郵件 Discord Slack Telegram 釘釘 微信 飛書 短信 Webhook Server醬 等方式消息及時送達(dá)。
二、部署
HertzBeat 部署,采用 主服務(wù)節(jié)點 + 采集器集群 方式,其中采集器集群是可選的。
2.1 主服務(wù)節(jié)點
啟動容器前,先下載 application.yml 和 sureness.yml 文件到物理機(jī),這兩個文件是 HertzBeat 的默認(rèn)配置文件。在啟動容器時會進(jìn)行映射,下載完成后可以根據(jù)部署命令,放置在對應(yīng)的文件夾下。
打開 Docker 在終端執(zhí)行下面命令,即可啟動一個 hertzbeat 主服務(wù)節(jié)點。這里安裝的是 v1.5.0 版本,如果需要安裝其他或者最新版本,可以到 Docker Hub 中進(jìn)行查找。
docker run -d -p 1157:1157 -p 1158:1158 ` -e LANG=zh_CN.UTF-8 ` -e TZ=Asia/Shanghai ` -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\data:/opt/hertzbeat/data ` -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\logs:/opt/hertzbeat/logs ` -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\config\application.yml:/opt/hertzbeat/config/application.yml ` -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\config\sureness.yml:/opt/hertzbeat/config/sureness.yml ` --restart=always ` --name hertzbeat-v1.5.0 ` tancloud/hertzbeat:v1.5.0
-參數(shù) -e LANG=zh_CN.UTF-8 設(shè)置系統(tǒng)語言。
-參數(shù) -e TZ=Asia/Shanghai 設(shè)置系統(tǒng)時區(qū)。
-參數(shù) -p 1157:1157 -p 1158:1158 映射容器端口到主機(jī)端口,前面是宿主機(jī)的端口號,后面是容器的端口號。1157是WEB端口,1158是集群端口。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\data:/opt/hertzbeat/data 可選,數(shù)據(jù)持久化,掛載內(nèi)置的H2數(shù)據(jù)庫文件到本地主機(jī),保證數(shù)據(jù)不會因為容器的創(chuàng)建刪除而丟失。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\logs:/opt/hertzbeat/logs 可選,不需要可刪除,掛載日志文件到本地主機(jī),保證日志不會因為容器的創(chuàng)建刪除而丟失,方便查看。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\config\application.yml:/opt/hertzbeat/config/application.yml 映射 application.yml 配置文件。啟動容器前,需要先下載 application.yml 文件到物理機(jī)。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\config\sureness.yml:/opt/hertzbeat/config/sureness.yml 映射 sureness.yml 配置文件。啟動容器前,需要先下載 sureness.yml 文件到物理機(jī)。
2.2 采集器集群(可選)
打開 Docker 在終端執(zhí)行下面命令,即可啟動一個 hertzbeat-collector 采集器節(jié)點。這里安裝的是 v1.5.0 版本,如果需要安裝其他或者最新版本,可以到 Docker Hub 中進(jìn)行查找。
docker run -d ` --restart=always ` -e IDENTITY=custom-collector-1 ` -e MODE=public ` -e MANAGER_HOST=host.docker.internal ` -e MANAGER_PORT=1158 ` -v C:\ProgramDatas\Docker\Containers\hertzbeat-collector-1_v1.5.0\logs:/opt/hertzbeat-collector/logs ` --name hertzbeat-collector-1_v1.5.0 ` tancloud/hertzbeat-collector:v1.5.0
docker run -d ` --restart=always ` -e IDENTITY=custom-collector-2 ` -e MODE=public ` -e MANAGER_HOST=host.docker.internal ` -e MANAGER_PORT=1158 ` -v C:\ProgramDatas\Docker\Containers\hertzbeat-collector-2_v1.5.0\logs:/opt/hertzbeat-collector/logs ` --name hertzbeat-collector-2_v1.5.0 ` tancloud/hertzbeat-collector:v1.5.0
-參數(shù) -e IDENTITY=custom-collector-name 可選,設(shè)置采集器的唯一標(biāo)識名稱。注意多采集器時采集器名稱需保證唯一性。
-參數(shù) -e MODE=public 配置運(yùn)行模式(public or private), 公共集群模式或私有云邊模式。
-參數(shù) -e MANAGER_HOST=host.docker.internal 設(shè)置連接的主 HertzBeat 服務(wù)地址。
-參數(shù) -e MANAGER_PORT=1158 可選,設(shè)置連接的主 HertzBeat 服務(wù)地址端口,默認(rèn) 1158 端口。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\hertzbeat-collector-1_v1.5.0\logs:/opt/hertzbeat-collector/logs 可選,不需要可刪除,掛載日志文件到本地主機(jī),保證日志不會因為容器的創(chuàng)建刪除而丟失,方便查看。
2.3 使用 DB 存儲指標(biāo)數(shù)據(jù)(可選)
HertzBeat 歷史指標(biāo)數(shù)據(jù)存儲依賴數(shù)據(jù)庫,推薦使用長期支持的VictoriaMetrics 時序數(shù)據(jù)庫。若不配置時序數(shù)據(jù)庫,HertzBeat 則只會留最近一小時歷史數(shù)據(jù),建議生產(chǎn)環(huán)境配置。
2.3.1 VictoriaMetrics DB
在終端執(zhí)行下面命令,即可啟動一個 VictoriaMetrics 服務(wù)。這里安裝的是 v1.95.1 版本,如果需要安裝其他或者最新版本,可以到 Docker Hub 中進(jìn)行查找。
docker run -d ` --restart=always ` --name victoria-metrics_v1.95.1 ` -v C:\ProgramDatas\Docker\Containers\victoria-metrics_v1.95.1\data:/victoria-metrics-data ` -p 8428:8428 ` victoriametrics/victoria-metrics:v1.95.1
-VictoriaMetrics 數(shù)據(jù)庫默認(rèn)用戶名是 root,密碼 root 。
-參數(shù) --restart always 在容器退出時總是重啟容器。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\victoria-metrics_v1.99.0\data:/victoria-metrics-data 將容器內(nèi)的 /victoria-metrics-data 目錄映射到物理機(jī) C:\ProgramDatas\Docker\Containers\victoria-metrics_v1.99.0\data 目錄下。
然后,修改 application.yml 文件,配置 VictoriaMetrics 數(shù)據(jù)庫連接。修改 warehouse.store.jpa.enabled 參數(shù)為 false,配置 warehouse.store.victoria-metrics 數(shù)據(jù)源參數(shù) url、username、password,并啟用 enabled 為 true。重啟 HertzBeat,使配置生效。
warehouse: store: # 關(guān)閉默認(rèn)JPA jpa: enabled: false # 啟用 victoria-metrics victoria-metrics: enabled: true url: http://host.docker.internal:8428 username: root password: root
2.3.2 InfluxDB
docker run -d -p 8086:8086 ` --restart always ` --name influxdb-1.8 ` -v C:\ProgramDatas\Docker\Containers\influxdb-1.8:/var/lib/influxdb ` influxdb:1.8
然后,修改 application.yml 文件,配置 VictoriaMetrics 數(shù)據(jù)庫連接。
warehouse: store: # 關(guān)閉默認(rèn)JPA jpa: enabled: false influxdb: enabled: true server-url: http://localhost:8086 username: root password: root expire-time: '30d' replication: 1
2.4 使用 DB 存儲系統(tǒng)元數(shù)據(jù)(可選)
HertzBeat 除了支持使用默認(rèn)內(nèi)置的 H2 數(shù)據(jù)庫外,還可以切換為使用 MYSQL 存儲監(jiān)控信息,告警信息,配置信息等結(jié)構(gòu)化關(guān)系數(shù)據(jù)。建議生產(chǎn)環(huán)境配置,以提供更好的性能。
打開 Docker Desktop,在 PowerShell 執(zhí)行下面命令,即可啟動一個 MySQL 服務(wù)。這里安裝的是 5.7 Tag版本。
docker run -itd -p 3306:3306 ` --restart always ` --name mysql-5.7 ` -v C:\ProgramDatas\Docker\Containers\mysql-5.7\data:/var/lib/mysql ` -v C:\ProgramDatas\Docker\Containers\mysql-5.7\conf.d:/etc/mysql/conf.d ` -e MYSQL_ROOT_PASSWORD=123abcABC@! ` mysql:5.7
-參數(shù) --restart always 在容器退出時總是重啟容器。
-參數(shù) -e MYSQL_ROOT_PASSWORD=123abcABC@! 是環(huán)境變量,指定了 MySQL 默認(rèn) root 用戶的密碼。更多環(huán)境變量信息可以訪問 Environment Variables。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\mysql-5.7\data:/var/lib/mysql 將容器內(nèi)的 /var/lib/mysql 數(shù)據(jù)目錄映射到物理機(jī)的 C:\ProgramDatas\Docker\Containers\mysql-5.7\data 目錄下。
參數(shù) -v C:\ProgramDatas\Docker\Containers\mysql-5.7\conf.d:/etc/mysql/conf.d 將容器內(nèi)的 /etc/mysql/conf.d 配置目錄映射到物理機(jī)的 C:\ProgramDatas\Docker\Containers\mysql-5.7\conf.d 目錄下。
在 MySQL 創(chuàng)建一個名為 hertzbeat 的數(shù)據(jù)庫,然后修改 application.yml 文件,配置 MySQL 數(shù)據(jù)庫連接。修改 spring.datasource 數(shù)據(jù)源參數(shù),配置 driver-class-name、username、password、url。重啟 HertzBeat,使配置生效。
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver username: root password: 123abcABC@! url: jdbc:mysql://host.docker.internal:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&useSSL=false
三、HertzBeat UI
打開瀏覽器,訪問 1157 端口 http://localhost:1157 即可看到 HertzBeat 界面,系統(tǒng)默認(rèn)賬號密碼 admin/hertzbeat。
如下,采集器集群菜單中,可以管理集群中的所有節(jié)點。
到此這篇關(guān)于Docker部署HertzBeat實時監(jiān)控告警系統(tǒng)的文章就介紹到這了,更多相關(guān)Docker HertzBeat實時監(jiān)控系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker深度清除鏡像緩存overlay2的實現(xiàn)
維清理鏡像是通過命令?docker?rm?i?刪除鏡像的,但是這條命令不會刪除docker?build命令產(chǎn)生的緩存文件,本文主要介紹了Docker深度清除鏡像緩存overlay2的實現(xiàn),感興趣的可以了解一下2023-12-12Docker實現(xiàn)從零開始搭建SOLO個人博客的方法步驟
本文主要介紹了Docker實現(xiàn)從零開始搭建SOLO個人博客,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11容器化技術(shù)架構(gòu)jenkins?docker?k8s腳本淺析
本篇博文不是詳細(xì)介紹容器技術(shù)的,而是具體的實踐。此篇博文分為兩個階段,分別是ci,cd。包含三部分內(nèi)容,分別是jenkins,docker,k8s的腳本淺析2022-03-03Windows11安裝Docker Desktop教程的圖文教程
本文主要介紹一下Windows11安裝Docker Desktop教程的圖文教程,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10完美解決Windows10下無法對docker容器進(jìn)行端口訪問的操作
這篇文章主要介紹了完美解決Windows10下無法對docker容器進(jìn)行端口訪問的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11