Docker部署HertzBeat實時監(jiān)控告警系統(tǒng)
一、簡介
HertzBeat 赫茲跳動 是一個易用友好的開源實時監(jiān)控告警系統(tǒng),無需 Agent,高性能集群,兼容 Prometheus,提供強大的自定義監(jiān)控和狀態(tài)頁構建能力。有下面這些特點:
- 集 監(jiān)控+告警+通知 為一體,支持對應用服務,應用程序,數(shù)據(jù)庫,緩存,操作系統(tǒng),大數(shù)據(jù),中間件,Web服務器,云原生,網(wǎng)絡,自定義等監(jiān)控閾值告警通知一步到位。
- 易用友好,無需 Agent,全 WEB 頁面操作,鼠標點一點就能監(jiān)控告警,零上手學習成本。
- 將 Http, Jmx, Ssh, Snmp, Jdbc, Prometheus 等協(xié)議規(guī)范可配置化,只需在瀏覽器配置監(jiān)控模版 YML 就能使用這些協(xié)議去自定義采集想要的指標。
- 兼容 Prometheus 的系統(tǒng)生態(tài)并且更多,只需頁面操作就可以監(jiān)控 Prometheus 所能監(jiān)控的。
- 高性能,支持多采集器集群橫向擴展,支持多隔離網(wǎng)絡監(jiān)控,云邊協(xié)同。
- 自由的告警閾值規(guī)則,郵件 Discord Slack Telegram 釘釘 微信 飛書 短信 Webhook Server醬 等方式消息及時送達。
二、部署
HertzBeat 部署,采用 主服務節(jié)點 + 采集器集群 方式,其中采集器集群是可選的。
2.1 主服務節(jié)點
啟動容器前,先下載 application.yml 和 sureness.yml 文件到物理機,這兩個文件是 HertzBeat 的默認配置文件。在啟動容器時會進行映射,下載完成后可以根據(jù)部署命令,放置在對應的文件夾下。
打開 Docker 在終端執(zhí)行下面命令,即可啟動一個 hertzbeat 主服務節(jié)點。這里安裝的是 v1.5.0 版本,如果需要安裝其他或者最新版本,可以到 Docker Hub 中進行查找。
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 設置系統(tǒng)語言。
-參數(shù) -e TZ=Asia/Shanghai 設置系統(tǒng)時區(qū)。
-參數(shù) -p 1157:1157 -p 1158:1158 映射容器端口到主機端口,前面是宿主機的端口號,后面是容器的端口號。1157是WEB端口,1158是集群端口。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\data:/opt/hertzbeat/data 可選,數(shù)據(jù)持久化,掛載內置的H2數(shù)據(jù)庫文件到本地主機,保證數(shù)據(jù)不會因為容器的創(chuàng)建刪除而丟失。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\logs:/opt/hertzbeat/logs 可選,不需要可刪除,掛載日志文件到本地主機,保證日志不會因為容器的創(chuàng)建刪除而丟失,方便查看。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\config\application.yml:/opt/hertzbeat/config/application.yml 映射 application.yml 配置文件。啟動容器前,需要先下載 application.yml 文件到物理機。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\config\sureness.yml:/opt/hertzbeat/config/sureness.yml 映射 sureness.yml 配置文件。啟動容器前,需要先下載 sureness.yml 文件到物理機。
2.2 采集器集群(可選)
打開 Docker 在終端執(zhí)行下面命令,即可啟動一個 hertzbeat-collector 采集器節(jié)點。這里安裝的是 v1.5.0 版本,如果需要安裝其他或者最新版本,可以到 Docker Hub 中進行查找。
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ù) -e MODE=public 配置運行模式(public or private), 公共集群模式或私有云邊模式。
-參數(shù) -e MANAGER_HOST=host.docker.internal 設置連接的主 HertzBeat 服務地址。
-參數(shù) -e MANAGER_PORT=1158 可選,設置連接的主 HertzBeat 服務地址端口,默認 1158 端口。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\hertzbeat-collector-1_v1.5.0\logs:/opt/hertzbeat-collector/logs 可選,不需要可刪除,掛載日志文件到本地主機,保證日志不會因為容器的創(chuàng)建刪除而丟失,方便查看。
2.3 使用 DB 存儲指標數(shù)據(jù)(可選)
HertzBeat 歷史指標數(shù)據(jù)存儲依賴數(shù)據(jù)庫,推薦使用長期支持的VictoriaMetrics 時序數(shù)據(jù)庫。若不配置時序數(shù)據(jù)庫,HertzBeat 則只會留最近一小時歷史數(shù)據(jù),建議生產(chǎn)環(huán)境配置。
2.3.1 VictoriaMetrics DB
在終端執(zhí)行下面命令,即可啟動一個 VictoriaMetrics 服務。這里安裝的是 v1.95.1 版本,如果需要安裝其他或者最新版本,可以到 Docker Hub 中進行查找。
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ù)庫默認用戶名是 root,密碼 root 。
-參數(shù) --restart always 在容器退出時總是重啟容器。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\victoria-metrics_v1.99.0\data:/victoria-metrics-data 將容器內的 /victoria-metrics-data 目錄映射到物理機 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: # 關閉默認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: # 關閉默認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 除了支持使用默認內置的 H2 數(shù)據(jù)庫外,還可以切換為使用 MYSQL 存儲監(jiān)控信息,告警信息,配置信息等結構化關系數(shù)據(jù)。建議生產(chǎn)環(huán)境配置,以提供更好的性能。
打開 Docker Desktop,在 PowerShell 執(zhí)行下面命令,即可啟動一個 MySQL 服務。這里安裝的是 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 默認 root 用戶的密碼。更多環(huán)境變量信息可以訪問 Environment Variables。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\mysql-5.7\data:/var/lib/mysql 將容器內的 /var/lib/mysql 數(shù)據(jù)目錄映射到物理機的 C:\ProgramDatas\Docker\Containers\mysql-5.7\data 目錄下。
參數(shù) -v C:\ProgramDatas\Docker\Containers\mysql-5.7\conf.d:/etc/mysql/conf.d 將容器內的 /etc/mysql/conf.d 配置目錄映射到物理機的 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)默認賬號密碼 admin/hertzbeat。
如下,采集器集群菜單中,可以管理集群中的所有節(jié)點。
到此這篇關于Docker部署HertzBeat實時監(jiān)控告警系統(tǒng)的文章就介紹到這了,更多相關Docker HertzBeat實時監(jiān)控系統(tǒng)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
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個人博客,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11Windows11安裝Docker Desktop教程的圖文教程
本文主要介紹一下Windows11安裝Docker Desktop教程的圖文教程,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-10-10完美解決Windows10下無法對docker容器進行端口訪問的操作
這篇文章主要介紹了完美解決Windows10下無法對docker容器進行端口訪問的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11