docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker HertzBeat实时监控系统

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

作者:菜鸟厚非

HertzBeat是一款开源的实时监控告警系统,本文就来介绍一下Docker部署HertzBeat实时监控告警系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、简介

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

二、部署

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实时监控系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
阅读全文