Apache HertzBeat 基于 Docker Compose 的 MySQL 与 VictoriaMetrics 集成部署指南
2025-07-07 06:32:31作者:魏献源Searcher
概述
Apache HertzBeat 是一款开源的实时监控系统,本文将详细介绍如何使用 Docker Compose 快速部署 HertzBeat 系统,并集成 MySQL 数据库和 VictoriaMetrics 时序数据库的完整方案。
环境准备
在开始部署前,请确保您的系统已安装以下组件:
- Docker 18.06 或更高版本
- Docker Compose 1.25.0 或更高版本
架构解析
本部署方案采用三组件架构:
- HertzBeat:核心监控系统
- MySQL 8:存储系统配置和元数据
- VictoriaMetrics:高性能时序数据库,存储监控指标数据
详细部署步骤
1. 网络配置
首先创建一个专用的 Docker 网络,确保各容器间可以相互通信:
networks:
hertzbeat:
driver: bridge
2. MySQL 服务配置
MySQL 作为 HertzBeat 的元数据存储,配置如下关键点:
services:
mysql:
image: mysql:8
container_name: compose-mysql
healthcheck:
test: ['CMD-SHELL', 'mysqladmin ping -h 127.0.0.1 --silent']
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
- ./dbdata/mysqldata:/var/lib/mysql/
- ./conf/sql:/docker-entrypoint-initdb.d/
关键配置说明:
- 数据持久化到本地
dbdata/mysqldata
目录 - 初始化 SQL 脚本可放置在
conf/sql
目录 - 健康检查确保服务完全启动后 HertzBeat 才连接
3. VictoriaMetrics 服务配置
VictoriaMetrics 作为高性能时序数据库,配置如下:
victoria-metrics:
image: victoriametrics/victoria-metrics:v1.95.1
healthcheck:
test: ["CMD", "wget", "-q", "-O", "-", "http://victoria-metrics:8428/-/healthy"]
volumes:
- ./dbdata/tsdbdata:/victoria-metrics-data
性能优化建议:
- 时序数据存储路径
dbdata/tsdbdata
应位于高性能存储设备 - 最新版本 VictoriaMetrics 提供了更好的压缩率和查询性能
4. HertzBeat 主服务配置
核心监控服务配置要点:
hertzbeat:
image: apache/hertzbeat
depends_on:
mysql:
condition: service_healthy
victoria-metrics:
condition: service_healthy
volumes:
- ./conf/application.yml:/opt/hertzbeat/config/application.yml
- ./conf/sureness.yml:/opt/hertzbeat/config/sureness.yml
ports:
- "1157:1157" # Web 管理界面
- "1158:1158" # API 接口
关键目录说明:
ext-lib
:扩展库目录,可放置自定义插件logs
:日志目录,建议定期归档conf
:配置文件目录,可自定义 HertzBeat 各项参数
部署后操作
-
初始化访问:
- 通过浏览器访问
http://服务器IP:1157
- 默认管理员账号:admin/hertzbeat
- 通过浏览器访问
-
数据验证:
- 检查 MySQL 中是否创建了 HertzBeat 所需的表
- 确认 VictoriaMetrics 是否接收并存储了监控指标
-
性能调优:
- 根据监控规模调整 VictoriaMetrics 的存储配置
- 优化 MySQL 的连接池参数
常见问题解决方案
-
容器启动顺序问题:
- 确保使用
depends_on
的condition: service_healthy
配置 - 增加健康检查的重试次数和间隔
- 确保使用
-
时区不一致:
- 所有容器统一配置
TZ: Asia/Shanghai
- 所有容器统一配置
-
存储空间不足:
- 定期清理 VictoriaMetrics 的旧数据
- 监控数据库增长情况
生产环境建议
-
高可用部署:
- 考虑 MySQL 主从复制
- VictoriaMetrics 集群模式部署
-
备份策略:
- 定期备份 MySQL 数据库
- 设置 VictoriaMetrics 的定期快照
-
监控系统自身:
- 为 HertzBeat 本身设置监控项
- 监控数据库服务的资源使用情况
通过以上配置,您可以快速搭建一个功能完整的 HertzBeat 监控系统,具备元数据存储和时序数据存储能力,为后续的监控任务打下坚实基础。