监控:Consul服务发现监控
HertzBeat 集成 Consul 注册中心,自动发现服务实例并为发现的实例创建监控任务。
概述
Consul 服务发现允许 HertzBeat 连接到您的 Consul 服务器并自动发现所有注册的服务实例。当新服务实例注册或现有实例下线时,HertzBeat 将自动创建或删除相应的监控任务,实现微服务环境下的自动化监控。
监控前操作
部署 Consul 服务器
- 根据 Consul 官方文档部署 Consul 服务器。
- 确保 Consul 服务器可从 HertzBeat 访问。
- 验证您可以访问 Consul UI:
http://your-consul-server:8500/ui/ - 确保 Consul HTTP API 可访问(默认端口:8500)
配置参数
| 参数名称 | 参数帮助描述 |
|---|---|
| 任务名称 | 标识此监控的名称,名称需要保证唯一性 |
| Consul Host | Consul 服务器 IP 地址或域名。注意⚠️不带协议头(例如: https://, http://)。示例:consul-server 或 192.168.1.100 |
| Consul 端口 | Consul 服务器对外提供的端口,默认为 8500 |
| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 |
| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 |
使用步骤
创建服务发现监控
- 在 HertzBeat Web 界面中,导航到 监控 → 新增监控
- 选择监控类型:Consul服务发现
- 填写基本配置参数
配置监控模板
- 创建服务发现监控后,需要指定一个监控模板
- 模板定义了为发现的服务实例创建什么类型的监控
- 例如:如果发现的实例是 HTTP 服务,可以选择 HTTP 监控模板
- 常用模板类型:端口、HTTP、HTTPS、Ping 等
自动发现
- HertzBeat 会根据采集间隔定期查询 Consul 服务器
- 为新注册的服务实例自动创建监控任务
- 自动删除已下线服务实例的监控任务
查看发现的实例
- 在监控列表中,您可以看到所有自动创建的子监控任务
- 每个子监控任务对应一个发现的服务实例
使用示例
假设您的 Consul 服务器运行在 192.168.1.100:8500,您希望自动监控其中注册的所有服务实例。
配置示例:
- 任务名称:
Consul-Service-Discovery - Consul Host:
192.168.1.100 - Consul 端口:
8500 - 采集间隔:
60秒 - 监控模板:选择
端口监控(检测实例可用性)
配置完成后:
- HertzBeat 通过 HTTP API 连接到 Consul 服务器
- 获取所有已注册的服务实例
- 为每个实例自动创建端口监控(例如:
api-service-192.168.1.101:8080) - 每 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 服务网格环境中的服务发现