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

 更新时间:2024年11月07日 09:57:33   作者:菜鸟厚非  
HertzBeat是一款开源的实时监控告警系统,本文就来介绍一下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:
    # 关闭默认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 数据库连接。

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 存储系统元数据(可选)

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.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 界面,系统默认账号密码 admin/hertzbeat

在这里插入图片描述

如下,采集器集群菜单中,可以管理集群中的所有节点。

在这里插入图片描述

到此这篇关于Docker部署HertzBeat实时监控告警系统的文章就介绍到这了,更多相关Docker HertzBeat实时监控系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 详解如何查看 docker 容器使用的资源

    详解如何查看 docker 容器使用的资源

    本篇文章主要介绍了详解如何查看 docker 容器使用的资源,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Docker Compose+Nestjs构建Dapr Redis发布订阅分布式应用

    Docker Compose+Nestjs构建Dapr Redis发布订阅分布式应用

    这篇文章主要为大家介绍了Docker Compose+Nestjs构建Dapr Redis发布订阅分布式应用步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 使用docker部署php服务的详细步骤

    使用docker部署php服务的详细步骤

    Docker镜像是一个可移植的、自包含的单元,其中包含了运行应用程序所需的所有文件、配置和依赖项,当使用Docker部署PHP应用程序时,可以将PHP应用程序和其依赖项打包到一个称为Docker镜像的独立容器中,北本文介绍了使用docker部署php服务的详细步骤,需要的朋友可以参考下
    2024-03-03
  • 浅谈Windows平台上Docker安装与使用

    浅谈Windows平台上Docker安装与使用

    本篇文章主要介绍了浅谈Windows平台上Docker安装与使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • docker容器存储清理删除所需命令和方法

    docker容器存储清理删除所需命令和方法

    这篇文章主要介绍了docker容器存储清理所需命令和方法,我在用docker安装的es使用过程中,发现内存占满了,我把全部的都删除掉了,但有时候数据我们必须要使用,所以不能全删,需要指定删除,下面就是一些docker容器存储清理所需的一些命令和方法,需要的朋友可以参考下
    2023-01-01
  • docker容器无法stop的解决办法

    docker容器无法stop的解决办法

    在本篇文章里小编给大家整理了关于docker容器无法stop的解决办法,有需要的朋友们可以参考下。
    2020-03-03
  • Docker移除镜像几种不同的方法实战记录

    Docker移除镜像几种不同的方法实战记录

    在Docker实战中,合理删除不再需要的镜像,有助于释放宝贵的磁盘空间,删除Docker镜像可以通过多种方式,包括删除单个镜像、强制删除正在使用的镜像、删除未被任何容器引用的所有镜像以及删除所有镜像等,需要的朋友可以参考下
    2024-11-11
  • 解决docker容器无法ping外网的问题

    解决docker容器无法ping外网的问题

    在本篇文章里小编给大家分享的是关于解决docker容器无法ping外网的问题,有需要的朋友们可以参考下。
    2020-03-03
  • 谷歌技术人员解决Docker镜像体积太大问题的方法

    谷歌技术人员解决Docker镜像体积太大问题的方法

    这篇文章主要介绍了谷歌技术人员解决Docker镜像体积太大问题的方法,涉及虚拟机,谷歌docker镜像构建实践及构建工具bazel的介绍等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 如何使用docker部署Dashdot工具箱

    如何使用docker部署Dashdot工具箱

    dashdot是一个简洁清晰的服务器数据仪表板,基于React实现 ,主要是显示操作系统、进程、存储、内存、网络这五个的数据,这篇文章主要介绍了如何使用docker部署Dashdot工具箱,需要的朋友可以参考下
    2024-02-02

最新评论