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

监控:Nacos服务发现监控

HertzBeat 集成 Nacos 注册中心,自动发现服务实例并为发现的实例创建监控任务。

概述

Nacos 服务发现允许 HertzBeat 连接到您的 Nacos 服务器并自动发现所有注册的服务实例。当新服务实例注册或现有实例下线时,HertzBeat 将自动创建或删除相应的监控任务,实现微服务环境下的自动化监控。

监控前操作

部署 Nacos 服务器

  1. 根据 Nacos 官方文档部署 Nacos 服务器。
  2. 确保 Nacos 服务器可从 HertzBeat 访问。
  3. 验证您可以访问 Nacos 控制台:http://your-nacos-server:8848/nacos/
  4. 默认凭证:用户名 nacos,密码 nacos

配置参数

参数名称参数帮助描述
任务名称标识此监控的名称,名称需要保证唯一性
Nacos服务发现HostNacos 服务器 IP 地址或域名。注意⚠️不带协议头(例如: https://, http://)。示例:nacos-server192.168.1.100
Nacos服务发现PortNacos 服务器对外提供的端口,默认为 8848
采集间隔监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒
描述备注更多标识和描述此监控的备注信息,用户可以在这里备注信息

使用步骤

  1. 创建服务发现监控

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

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

    • HertzBeat 会根据采集间隔定期查询 Nacos 服务器
    • 为新注册的服务实例自动创建监控任务
    • 自动删除已下线服务实例的监控任务
  4. 查看发现的实例

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

使用示例

假设您的 Nacos 服务器运行在 192.168.1.100:8848,您希望自动监控其中注册的所有服务实例。

配置示例:

  • 任务名称Nacos-Service-Discovery
  • Nacos服务发现Host192.168.1.100
  • Nacos服务发现Port8848
  • 采集间隔60
  • 监控模板:选择 端口 监控(检测实例可用性)

配置完成后:

  1. HertzBeat 连接到 Nacos 服务器
  2. 获取所有已注册的服务实例(包括健康和不健康的实例)
  3. 为每个实例自动创建端口监控(例如:user-service-192.168.1.101:8080
  4. 每 60 秒检查一次新注册或下线的服务,并相应地更新监控任务

注意事项

  • 网络连通性:确保 HertzBeat 可以访问 Nacos 服务器地址和端口
  • 监控模板:服务发现仅发现服务实例地址,您需要配置合适的监控模板来实际监控这些实例
  • 采集间隔:建议最小间隔为 60 秒,避免对 Nacos 服务器造成过多请求
  • 命名空间:默认发现 public 命名空间下的服务。如果需要发现特定命名空间的服务,可能需要单独配置
  • 健康检查:Nacos 服务发现会发现所有实例,包括不健康的实例
  • 实例命名:自动创建的监控任务命名格式为:{服务名}-{主机}:{端口}

采集指标

指标集合:监控目标

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

适用场景

  • Spring Cloud Alibaba:自动监控 Nacos 中注册的所有微服务实例
  • 动态伸缩:自动适应因自动扩缩容而增减的服务实例
  • 统一监控:集中管理微服务环境中所有服务的监控
  • 多环境管理:管理开发、测试、生产环境中的服务
  • 服务治理:结合 Nacos 服务治理能力实现全面的服务管理