首页
/ Apache HertzBeat 基于 Docker Compose 的 MySQL 与 IoTDB 集成部署指南

Apache HertzBeat 基于 Docker Compose 的 MySQL 与 IoTDB 集成部署指南

2025-07-07 06:29:52作者:吴年前Myrtle

概述

Apache HertzBeat 是一个开源的实时监控系统,本文详细介绍如何使用 Docker Compose 快速部署 HertzBeat 系统,并集成 MySQL 数据库和 Apache IoTDB 时序数据库。

部署架构

该部署方案包含三个核心组件:

  1. MySQL 8:作为 HertzBeat 的关系型数据库存储
  2. Apache IoTDB 1.2.2:作为时序数据存储
  3. Apache HertzBeat:监控系统主体

准备工作

在开始部署前,请确保:

  • 已安装 Docker 和 Docker Compose
  • 服务器有足够资源(建议至少 4GB 内存)
  • 了解基本的 Docker 操作

详细配置解析

网络配置

networks:
  hertzbeat:
    driver: bridge

创建了一个名为 hertzbeat 的桥接网络,确保三个服务可以在同一网络内通信。

MySQL 服务配置

mysql:
  image: mysql:8
  container_name: compose-mysql
  healthcheck:
    test: ['CMD-SHELL', 'mysqladmin ping -h 127.0.0.1 --silent']
    interval: 3s
    retries: 5
    start_period: 3m
  environment:
    TZ: Asia/Shanghai
    MYSQL_ROOT_PASSWORD: 123456
  volumes:
    - ./dbdata/mysqldata:/var/lib/mysql/
    - ./conf/sql:/docker-entrypoint-initdb.d/

关键配置说明:

  • 使用官方 MySQL 8 镜像
  • 设置了健康检查,确保服务可用性
  • 数据持久化到本地 dbdata/mysqldata 目录
  • 初始化 SQL 脚本可放置在 conf/sql 目录
  • 时区设置为 Asia/Shanghai

IoTDB 服务配置

iotdb:
  image: apache/iotdb:1.2.2-standalone
  healthcheck:
    test: ["CMD", "ls", "/iotdb/data"]
    interval: 10s
    retries: 5
  environment:
    TZ: Asia/Shanghai
  volumes:
    - ./dbdata/iotdbdata:/iotdb/data

关键配置说明:

  • 使用 Apache IoTDB 1.2.2 单机版镜像
  • 数据目录挂载到本地 dbdata/iotdbdata
  • 同样设置了健康检查机制
  • 暴露 8181(REST API) 和 6667(JDBC) 端口

HertzBeat 主服务配置

hertzbeat:
  image: apache/hertzbeat
  depends_on:
    mysql:
      condition: service_healthy
    iotdb:
      condition: service_healthy
  volumes:
    - ./conf/application.yml:/opt/hertzbeat/config/application.yml
    - ./conf/sureness.yml:/opt/hertzbeat/config/sureness.yml
    - ./ext-lib:/opt/hertzbeat/ext-lib
    - ./logs:/opt/hertzbeat/logs
  ports:
    - "1157:1157"  # web端口
    - "1158:1158"  # api端口

关键配置说明:

  • 依赖 MySQL 和 IoTDB 服务,且要求它们健康状态
  • 挂载了多个关键目录:
    • 配置文件目录
    • 扩展库目录
    • 日志目录
  • 暴露 1157(Web) 和 1158(API) 端口

部署步骤

  1. 创建项目目录结构:

    hertzbeat-deploy/
    ├── docker-compose.yaml
    ├── conf/
    │   ├── application.yml
    │   ├── sureness.yml
    │   └── sql/
    ├── dbdata/
    │   ├── mysqldata/
    │   └── iotdbdata/
    ├── ext-lib/
    └── logs/
    
  2. 将提供的 docker-compose.yaml 文件放入项目根目录

  3. 准备必要的配置文件:

    • application.yml: HertzBeat 主配置文件
    • sureness.yml: 安全认证配置文件
    • sql/: 初始化 SQL 脚本
  4. 启动服务:

    docker-compose up -d
    
  5. 验证服务:

    • 检查容器状态:docker-compose ps
    • 访问 HertzBeat Web 界面:http://localhost:1157

常见问题解决

  1. MySQL 启动失败

    • 检查 dbdata/mysqldata 目录权限
    • 查看 MySQL 日志:docker logs compose-mysql
  2. IoTDB 连接问题

    • 确保 6667 和 8181 端口未被占用
    • 检查数据目录权限
  3. HertzBeat 依赖服务未就绪

    • 使用 docker-compose logs 查看详细日志
    • 检查依赖服务的健康状态

维护建议

  1. 定期备份

    • MySQL 数据:dbdata/mysqldata
    • IoTDB 数据:dbdata/iotdbdata
    • HertzBeat 配置和日志
  2. 升级注意事项

    • 先备份数据
    • 按顺序升级:数据库 → HertzBeat
    • 检查版本兼容性
  3. 性能调优

    • 根据监控规模调整 MySQL 和 IoTDB 资源配置
    • 监控系统资源使用情况

总结

本文详细介绍了使用 Docker Compose 部署 Apache HertzBeat 并集成 MySQL 和 IoTDB 的完整方案。这种部署方式具有以下优势:

  • 一键式部署,简化安装过程
  • 服务隔离,互不干扰
  • 方便扩展和维护
  • 数据持久化,避免容器重启导致数据丢失

通过这种部署方式,用户可以快速搭建一个功能完善的监控系统环境,为后续的监控配置和使用打下坚实基础。