监控:Zookeeper服务发现监控
HertzBeat 集成 Zookeeper,自动发现存储在 Zookeeper 节点中的服务实例并为发现的实例创建监控任务。
概述
Zookeeper 服务发现允许 HertzBeat 连接到您的 Zookeeper 服务器并自动发现存储在特定路径节点中的服务实例信息。这通常用于 Dubbo 和其他使用 Zookeeper 作为注册中心的 RPC 框架。当服务实例发生变化时,HertzBeat 将自动创建或删除相应的监控任务。
监控前操作
部署 Zookeeper 服务器
- 根据 Zookeeper 官方文档部署 Zookeeper 服务器。
- 确保 Zookeeper 服务器可从 HertzBeat 访问。
- 使用 Zookeeper 客户端工具验证 Zookeeper 运行正常
配置参数
| 参数名称 | 参数帮助描述 |
|---|---|
| 任务名称 | 标识此监控的名称,名称需要保证唯一性 |
| 服务发现地址 | Zookeeper 服务器连接地址。示例:192.168.1.100:2181 或 zk1:2181,zk2:2181,zk3:2181(集群模式) |
| 服务发现路径前缀 | Zookeeper 中用于服务发现的路径前缀。示例:/dubbo 或 /services |
| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 |
| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 |
使用步骤
创建服务发现监控
- 在 HertzBeat Web 界面中,导航到 监控 → 新增监控
- 选择监控类型:Zookeeper服务发现
- 填写基本配置参数
配置监控模板
- 创建服务发现监控后,需要指定一个监控模板
- 模板定义了为发现的服务实例创建什么类型的监控
- 例如:如果发现的实例是 Dubbo 服务,可以选择端口监控模板
- 常用模板类型:端口、HTTP、Ping 等
自动发现
- HertzBeat 会根据采集间隔定期查询 Zookeeper
- 为新发现的服务实例自动创建监控任务
- 自动删除已消失服务实例的监控任务
查看发现的实例
- 在监控列表中,您可以看到所有自动创建的子监控任务
- 每个子监控任务对应一个发现的服务实例
使用示例
示例 1:Dubbo 服务发现
假设您有一个运行在 Zookeeper 中的 Dubbo 服务注册中心,地址为 192.168.1.100:2181,服务信息存储在 /dubbo 路径下。
配置示例:
- 任务名称:
Zookeeper-Dubbo-Discovery - 服务发现地址:
192.168.1.100:2181 - 服务发现路径前缀:
/dubbo - 采集间隔:
60秒 - 监控模板:选择
端口监控
配置完成后:
- HertzBeat 连接到 Zookeeper
- 获取
/dubbo路径下的所有子节点 - 解析节点信息提取服务实例的主机和端口
- 为每个服务实例自动创建端口监控
示例 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 服务。