跳到主要内容
版本:1.9.0

监控: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:2181 或 zk1: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 服务。