当前位置: 首页 > news >正文

Windows Docker 部署 HertzBeat 实时监控告警系统

一、简介

HertzBeat 赫兹跳动 是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。有下面这些特点:

  • 集 监控+告警+通知 为一体,支持对应用服务,应用程序,数据库,缓存,操作系统,大数据,中间件,Web服务器,云原生,网络,自定义等监控阈值告警通知一步到位。
  • 易用友好,无需 Agent,全 WEB 页面操作,鼠标点一点就能监控告警,零上手学习成本。
  • 将 Http, Jmx, Ssh, Snmp, Jdbc, Prometheus 等协议规范可配置化,只需在浏览器配置监控模版 YML 就能使用这些协议去自定义采集想要的指标。
  • 兼容 Prometheus 的系统生态并且更多,只需页面操作就可以监控 Prometheus 所能监控的。
  • 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。
  • 自由的告警阈值规则,邮件 Discord Slack Telegram 钉钉 微信 飞书 短信 Webhook Server酱 等方式消息及时送达。

二、部署

HertzBeat 部署,采用 主服务节点 + 采集器集群 方式,其中采集器集群是可选的。

2.1 主服务节点

启动容器前,先下载 application.yml 和 sureness.yml 文件到物理机,这两个文件是 HertzBeat 的默认配置文件。在启动容器时会进行映射,下载完成后可以根据部署命令,放置在对应的文件夹下。

打开 Docker 在终端执行下面命令,即可启动一个 hertzbeat 主服务节点。这里安装的是 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

-参数 -e LANG=zh_CN.UTF-8 设置系统语言。
-参数 -e TZ=Asia/Shanghai 设置系统时区。
-参数 -p 1157:1157 -p 1158:1158 映射容器端口到主机端口,前面是宿主机的端口号,后面是容器的端口号。1157是WEB端口,1158是集群端口。
-参数 -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\data:/opt/hertzbeat/data 可选,数据持久化,挂载内置的H2数据库文件到本地主机,保证数据不会因为容器的创建删除而丢失。
-参数 -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 映射 application.yml 配置文件。启动容器前,需要先下载 application.yml 文件到物理机。
-参数 -v C:\ProgramDatas\Docker\Containers\hertzbeat-v1.5.0\config\sureness.yml:/opt/hertzbeat/config/sureness.yml 映射 sureness.yml 配置文件。启动容器前,需要先下载 sureness.yml 文件到物理机。

2.2 采集器集群(可选)

打开 Docker 在终端执行下面命令,即可启动一个 hertzbeat-collector 采集器节点。这里安装的是 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

-参数 -e IDENTITY=custom-collector-name 可选,设置采集器的唯一标识名称。注意多采集器时采集器名称需保证唯一性。
-参数 -e MODE=public 配置运行模式(public or private), 公共集群模式或私有云边模式。
-参数 -e MANAGER_HOST=host.docker.internal 设置连接的主 HertzBeat 服务地址。
-参数 -e MANAGER_PORT=1158 可选,设置连接的主 HertzBeat 服务地址端口,默认 1158 端口。
-参数 -v C:\ProgramDatas\Docker\Containers\hertzbeat-collector-1_v1.5.0\logs:/opt/hertzbeat-collector/logs 可选,不需要可删除,挂载日志文件到本地主机,保证日志不会因为容器的创建删除而丢失,方便查看。

在这里插入图片描述

2.3 使用 DB 存储指标数据(可选)

HertzBeat 历史指标数据存储依赖数据库,推荐使用长期支持的VictoriaMetrics 时序数据库。若不配置时序数据库,HertzBeat 则只会留最近一小时历史数据,建议生产环境配置。

2.3.1 VictoriaMetrics DB

在终端执行下面命令,即可启动一个 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 数据库默认用户名是 root,密码 root
-参数 --restart always 在容器退出时总是重启容器。
-参数 -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 数据库连接。修改 warehouse.store.jpa.enabled 参数为 false,配置 warehouse.store.victoria-metrics 数据源参数 url、username、password,并启用 enabled 为 true。重启 HertzBeat,使配置生效。

warehouse:store:# 关闭默认JPAjpa:enabled: false# 启用 victoria-metricsvictoria-metrics:enabled: trueurl: http://host.docker.internal:8428username: rootpassword: 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 数据库连接。

warehouse:store:# 关闭默认JPAjpa:enabled: falseinfluxdb:enabled: trueserver-url: http://localhost:8086username: rootpassword: rootexpire-time: '30d'replication: 1

2.4 使用 DB 存储系统元数据(可选)

HertzBeat 除了支持使用默认内置的 H2 数据库外,还可以切换为使用 MYSQL 存储监控信息,告警信息,配置信息等结构化关系数据。建议生产环境配置,以提供更好的性能。

打开 Docker Desktop,在 PowerShell 执行下面命令,即可启动一个 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

-参数 --restart always 在容器退出时总是重启容器。
-参数 -e MYSQL_ROOT_PASSWORD=123abcABC@! 是环境变量,指定了 MySQL 默认 root 用户的密码。更多环境变量信息可以访问 Environment Variables。
-参数 -v C:\ProgramDatas\Docker\Containers\mysql-5.7\data:/var/lib/mysql 将容器内的 /var/lib/mysql 数据目录映射到物理机的 C:\ProgramDatas\Docker\Containers\mysql-5.7\data 目录下。
参数 -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 创建一个名为 hertzbeat 的数据库,然后修改 application.yml 文件,配置 MySQL 数据库连接。修改 spring.datasource 数据源参数,配置 driver-class-name、username、password、url。重启 HertzBeat,使配置生效。

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: 123abcABC@!url: jdbc:mysql://host.docker.internal:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&useSSL=false

三、HertzBeat UI

打开浏览器,访问 1157 端口 http://localhost:1157 即可看到 HertzBeat 界面,系统默认账号密码 admin/hertzbeat
在这里插入图片描述
如下,采集器集群菜单中,可以管理集群中的所有节点。
在这里插入图片描述

四、部署常见问题


http://www.mrgr.cn/news/22581.html

相关文章:

  • Oracle(113)什么是全备份(Full Backup)?
  • golang学习笔记12——Go 语言内存管理详解
  • ios 项目中设置左侧徽标
  • linux运维常见命令行
  • 绿光扫码激光器定制多少钱?费用决定因素
  • 数据资产:新时代的财富密码
  • 长文本分块的新策略——后期分块(Late Chunking),让RAG应用“又准又高效“
  • 《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》Chapter 1课件2024
  • Spring Boot 常用注解详解
  • LeetCode题练习与总结:最大正方形--221
  • 解决VSCode保存后未格式化文档的问题
  • Android Graphics 显示系统 - 图层的生命周期 Layer Lifecycle
  • 生成单据的流水号
  • AI一键生成 PPT
  • C#/.NET/.NET Core优质学习资料
  • FreeRTOS学习笔记(四)Freertos的中断管理及临界保护
  • C++ STL算法从入门及常见运用方法详解
  • 从C语言过渡到C++
  • 解锁高效驱动密码:SiLM8260A系列SiLM8260ABCS-DG 集成米勒钳位的双通道隔离驱动芯片
  • ISO 8601书写格式