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

监控:Zookeeper服务发现监控

HertzBeat 集成 Zookeeper,自动发现存储在 Zookeeper 节点中的服务实例并为发现的实例创建监控任务。

概述

Zookeeper 服务发现允许 HertzBeat 连接到您的 Zookeeper 服务器并自动发现存储在特定路径节点中的服务实例信息。这通常用于 Dubbo 和其他使用 Zookeeper 作为注册中心的 RPC 框架。当服务实例发生变化时,HertzBeat 将自动创建或删除相应的监控任务。

监控前操作

部署 Zookeeper 服务器

  1. 根据 Zookeeper 官方文档部署 Zookeeper 服务器。
  2. 确保 Zookeeper 服务器可从 HertzBeat 访问。
  3. 使用 Zookeeper 客户端工具验证 Zookeeper 运行正常

配置参数

参数名称参数帮助描述
任务名称标识此监控的名称,名称需要保证唯一性
服务发现地址Zookeeper 服务器连接地址。示例:192.168.1.100:2181zk1:2181,zk2:2181,zk3:2181(集群模式)
服务发现路径前缀Zookeeper 中用于服务发现的路径前缀。示例:/dubbo/services
采集间隔监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒
描述备注更多标识和描述此监控的备注信息,用户可以在这里备注信息

使用步骤

  1. 创建服务发现监控

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

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

    • HertzBeat 会根据采集间隔定期查询 Zookeeper
    • 为新发现的服务实例自动创建监控任务
    • 自动删除已消失服务实例的监控任务
  4. 查看发现的实例

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

使用示例

示例 1:Dubbo 服务发现

假设您有一个运行在 Zookeeper 中的 Dubbo 服务注册中心,地址为 192.168.1.100:2181,服务信息存储在 /dubbo 路径下。

配置示例:

  • 任务名称Zookeeper-Dubbo-Discovery
  • 服务发现地址192.168.1.100:2181
  • 服务发现路径前缀/dubbo
  • 采集间隔60
  • 监控模板:选择 端口 监控

配置完成后:

  1. HertzBeat 连接到 Zookeeper
  2. 获取 /dubbo 路径下的所有子节点
  3. 解析节点信息提取服务实例的主机和端口
  4. 为每个服务实例自动创建端口监控

示例 2:自定义服务发现

如果您有一个使用 Zookeeper 的自定义服务注册机制,服务信息存储在 /services 路径下:

  • 服务发现地址zk1:2181,zk2:2181,zk3:2181(Zookeeper 集群)
  • 服务发现路径前缀/services

HertzBeat 将发现此路径下的所有服务实例。

注意事项

  • 节点格式:Zookeeper 服务发现期望子节点包含主机:端口信息
    • 示例节点名称格式:192.168.1.101:8080 或类似格式
  • 网络连通性:确保 HertzBeat 可以访问 Zookeeper 服务器地址和端口(默认:2181)
  • 监控模板:服务发现仅发现服务实例地址,您需要配置合适的监控模板来实际监控这些实例
  • 采集间隔:建议最小间隔为 60 秒,避免对 Zookeeper 造成过多请求
  • 路径前缀:确保路径前缀正确,且 HertzBeat 有权限读取此路径下的节点
  • 集群模式:支持 Zookeeper 集群模式,多个地址用逗号分隔
  • 实例命名:自动创建的监控任务基于节点信息命名

采集指标

指标集合:监控目标

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

适用场景

  • Dubbo 服务:自动监控注册在 Zookeeper 中的 Dubbo 服务提供者和消费者
  • RPC 框架:监控使用 Zookeeper 作为注册中心的 RPC 服务
  • 自定义注册:监控使用基于 Zookeeper 的自定义服务注册的服务
  • 分布式系统:管理使用 Zookeeper 进行协调的分布式系统组件的监控
  • 服务治理:集中管理 Zookeeper 服务生态中所有服务的监控

常见 Dubbo 路径结构

对于 Dubbo 服务,典型的 Zookeeper 路径结构包括:

  • /dubbo/{serviceName}/providers - 服务提供者地址
  • /dubbo/{serviceName}/consumers - 服务消费者地址
  • /dubbo/{serviceName}/routers - 路由规则
  • /dubbo/{serviceName}/configurators - 配置覆盖

使用 Zookeeper 服务发现配合 Dubbo 时,建议将路径前缀设置为 /dubbo 以发现所有 Dubbo 服务。