监控:Nacos服务发现监控
HertzBeat 集成 Nacos 注册中心,自动发现服务实例并为发现的实例创建监控任务。
概述
Nacos 服务发现允许 HertzBeat 连接到您的 Nacos 服务器并自动发现所有注册的服务实例。当新服务实例注册或现有实例下线时,HertzBeat 将自动创建或删除相应的监控任务,实现微服务环境下的自动化监控。
监控前操作
部署 Nacos 服务器
- 根据 Nacos 官方文档部署 Nacos 服务器。
- 确保 Nacos 服务器可从 HertzBeat 访问。
- 验证您可以访问 Nacos 控制台:
http://your-nacos-server:8848/nacos/ - 默认凭证:用户名
nacos,密码nacos
配置参数
| 参数名称 | 参数帮助描述 |
|---|---|
| 任务名称 | 标识此监控的名称,名称需要保证唯一性 |
| Nacos服务发现Host | Nacos 服务器 IP 地址或域名。注意⚠️不带协议头(例如: https://, http://)。示例:nacos-server 或 192.168.1.100 |
| Nacos服务发现Port | Nacos 服务器对外提供的端口,默认为 8848 |
| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 |
| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 |
使用步骤
创建服务发现监控
- 在 HertzBeat Web 界面中,导航到 监控 → 新增监控
- 选择监控类型:Nacos服务发现
- 填写基本配置参数
配置监控模板
- 创建服务发现监控后,需要指定一个监控模板
- 模板定义了为发现的服务实例创建什么类型的监控
- 例如:如果发现的实例是 HTTP 服务,可以选择 HTTP 监控模板
- 常用模板类型:端口、HTTP、HTTPS 等
自动发现
- HertzBeat 会根据采集间隔定期查询 Nacos 服务器
- 为新注册的服务实例自动创建监控任务
- 自动删除已下线服务实例的监控任务
查看发现的实例
- 在监控列表中,您可以看到所有自动创建的子监控任务
- 每个子监控任务对应一个发现的服务实例
使用示例
假设您的 Nacos 服务器运行在 192.168.1.100:8848,您希望自动监控其中注册的所有服务实例。
配置示例:
- 任务名称:
Nacos-Service-Discovery - Nacos服务发现Host:
192.168.1.100 - Nacos服务发现Port:
8848 - 采集间隔:
60秒 - 监控模板:选择
端口监控(检测实例可用性)
配置完成后:
- HertzBeat 连接到 Nacos 服务器
- 获取所有已注册的服务实例(包括健康和不健康的实例)
- 为每个实例自动创建端口监控(例如:
user-service-192.168.1.101:8080) - 每 60 秒检查一次新注册或下线的服务,并相应地更新监控任务
注意事项
- 网络连通性:确保 HertzBeat 可以访问 Nacos 服务器地址和端口
- 监控模板:服务发现仅发现服务实例地址,您需要配置合适的监控模板来实际监控这些实例
- 采集间隔:建议最小间隔为 60 秒,避免对 Nacos 服务器造成过多请求
- 命名空间:默认发现 public 命名空间下的服务。如果需要发现特定命名空间的服务,可能需要单独配置
- 健康检查:Nacos 服务发现会发现所有实例,包括不健康的实例
- 实例命名:自动创建的监控任务命名格式为:
{服务名}-{主机}:{端口}
采集指标
指标集合:监控目标
| 指标名称 | 指标单位 | 指标帮助描述 |
|---|---|---|
| 目标 | 无 | 发现的服务实例目标 |
| 主机 | 无 | 服务实例主机地址 |
| 端口 | 无 | 服务实例端口号 |
适用场景
- Spring Cloud Alibaba:自动监控 Nacos 中注册的所有微服务实例
- 动态伸缩:自动适应因自动扩缩容而增减的服务实例
- 统一监控:集中管理微服务环境中所有服务的监控
- 多环境管理:管理开发、测试、生产环境中的服务
- 服务治理:结合 Nacos 服务治理能力实现全面的服务管理