跳到主要内容
版本:1.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-server 或 192.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 Host:192.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 服务网格环境中的服务发现