跳到主要内容
版本:v1.7.x

监控:Consul服务发现监控

HertzBeat 集成 Consul 注册中心,自动发现服务实例并为发现的实例创建监控任务。

概述

Consul 服务发现允许 HertzBeat 连接到您的 Consul 服务器并自动发现所有注册的服务实例。当新服务实例注册或现有实例下线时,HertzBeat 将自动创建或删除相应的监控任务,实现微服务环境下的自动化监控。

监控前操作

部署 Consul 服务器

  1. 根据 Consul 官方文档部署 Consul 服务器。
  2. 确保 Consul 服务器可从 HertzBeat 访问。
  3. 验证您可以访问 Consul UI:http://your-consul-server:8500/ui/
  4. 确保 Consul HTTP API 可访问(默认端口:8500)

配置参数

参数名称参数帮助描述
任务名称标识此监控的名称,名称需要保证唯一性
Consul HostConsul 服务器 IP 地址或域名。注意⚠️不带协议头(例如: https://, http://)。示例:consul-server192.168.1.100
Consul 端口Consul 服务器对外提供的端口,默认为 8500
采集间隔监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒
描述备注更多标识和描述此监控的备注信息,用户可以在这里备注信息

使用步骤

  1. 创建服务发现监控

    • 在 HertzBeat Web 界面中,导航到 监控新增监控
    • 选择监控类型:Consul服务发现
    • 填写基本配置参数
  2. 配置监控模板

    • 创建服务发现监控后,需要指定一个监控模板
    • 模板定义了为发现的服务实例创建什么类型的监控
    • 例如:如果发现的实例是 HTTP 服务,可以选择 HTTP 监控模板
    • 常用模板类型:端口、HTTP、HTTPS、Ping 等
  3. 自动发现

    • HertzBeat 会根据采集间隔定期查询 Consul 服务器
    • 为新注册的服务实例自动创建监控任务
    • 自动删除已下线服务实例的监控任务
  4. 查看发现的实例

    • 在监控列表中,您可以看到所有自动创建的子监控任务
    • 每个子监控任务对应一个发现的服务实例

使用示例

假设您的 Consul 服务器运行在 192.168.1.100:8500,您希望自动监控其中注册的所有服务实例。

配置示例:

  • 任务名称Consul-Service-Discovery
  • Consul Host192.168.1.100
  • Consul 端口8500
  • 采集间隔60
  • 监控模板:选择 端口 监控(检测实例可用性)

配置完成后:

  1. HertzBeat 通过 HTTP API 连接到 Consul 服务器
  2. 获取所有已注册的服务实例
  3. 为每个实例自动创建端口监控(例如:api-service-192.168.1.101:8080
  4. 每 60 秒检查一次新注册或下线的服务,并相应地更新监控任务

注意事项

  • 网络连通性:确保 HertzBeat 可以访问 Consul 服务器地址和端口(默认:8500)
  • 监控模板:服务发现仅发现服务实例地址,您需要配置合适的监控模板来实际监控这些实例
  • 采集间隔:建议最小间隔为 60 秒,避免对 Consul 服务器造成过多请求
  • ACL 令牌:如果 Consul 配置了 ACL(访问控制列表),可能需要配置相应的令牌
  • 服务健康状态:Consul 服务发现会同时发现健康和不健康的实例
  • 数据中心:默认发现本地数据中心的服务。如果需要发现特定数据中心的服务,可能需要额外配置
  • 实例命名:自动创建的监控任务命名格式为:{服务名}-{主机}:{端口}

采集指标

指标集合:监控目标

指标名称指标单位指标帮助描述
目标发现的服务实例目标
主机服务实例主机地址
端口服务实例端口号

适用场景

  • 微服务架构:自动监控 Consul 中注册的所有微服务实例
  • 服务网格:监控使用 Consul Connect 服务网格的服务
  • 多数据中心:监控多个 Consul 数据中心的服务实例
  • 动态伸缩:自动适应因自动扩缩容而增减的服务实例
  • 健康检查:结合 Consul 的健康检查机制监控服务健康状态
  • 服务治理:集中管理 Consul 服务生态中所有服务的监控

与 Consul 功能的集成

  • 服务健康:Consul 服务发现可以利用 Consul 的健康检查信息
  • 服务标签:从 Consul 发现的服务实例可能包含标签信息
  • KV 存储:可与 Consul KV 存储结合使用,实现更灵活的服务发现
  • 服务网格:支持 Consul Connect 服务网格环境中的服务发现