Nacos 可观测性最佳实践

Nacos 介绍
Nacos 组件简介
Nacos 是阿里巴巴开源的一款强大的云原生应用配套工具,它是一个高度集成且功能丰富的平台,特别适合构建和管理现代云原生应用的微服务架构。
Nacos 提供以下核心功能:
服务发现与健康检查:Nacos 支持 DNS 与 RPC 服务发现协议,允许自动发现、路由与负载均衡微服务实例。它通过健康检查机制监控服务实例状态,确保将请求转发给健康的实例,故障实例会被自动移除服务列表。
动态配置服务:提供了一个集中式的配置管理平台,使得应用可以在运行时动态获取或更新配置,无需重启。配置变更时,Nacos 能实时推送给相关应用实例。
动态 DNS 服务:支持权重路由的 DNS 服务,有助于灵活管理流量分配,便于实施蓝绿部署、灰度发布及流量镜像等策略。
服务与元数据管理:为微服务和应用提供丰富服务注册信息及元数据管理能力,便于进行更细致的服务治理和监控。
相比其他同类工具如 Eureka,Nacos 拥有更多优势,包括但不限于配置管理、消息总线功能、更健壮的健康检查机制、对多数据中心的良好支持等,这些特性使 Nacos 成为构建复杂分布式系统时的优选方案。
在分布式系统中,服务之间的相互调用依赖于 Nacos 的服务发现功能。如果 Nacos 出现故障或数据不准确,服务消费者可能无法正确找到服务提供者。同时,当 Nacos 作为配置管理中心时,存储着应用程序的各种关键配置信息,如数据库连接字符串、日志级别、业务规则等。任何配置信息的错误或不及时更新都可能对应用程序产生严重影响。因此,监控 Nacos 的运行状态对于确保服务稳定性和可靠性至关重要。通过深入了解 Nacos 的监控指标,并合理应用它们来优化服务性能,开发人员可以更加有效地管理和维护微服务系统。
暴露 Nacos 指标
Nacos 指标数据的暴露可以通过如下的配置来开启:
1、在 Nacos 的 application.properties 文件中添加如下配置
2、重启 Nacos,并通过如下的访问地址校验是否能访问到指标数据
观测云
观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。
部署 DataKit
DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。
登录观测云控制台,在「集成」 - 「DataKit」选择对应安装方式,当前采用 Linux 主机部署 DataKit。

数据采集
我们将通过 DataKit 中的 Nacos 采集器对 Nacos 的监控指标进行采集。采集器配置说明如下:
1、开启 Nacos 采集器
2、修改 nacos-prom.conf
配置文件
主要参数说明:
urls:prometheus 指标地址,这里填写 Nacos 暴露出来的指标 url
source:采集器别名,建议写成 nacos
interval:采集间隔
measurement_prefix:指标前缀,便于指标分类查询
tls_open:TLS 配置
metric_types:指标类型,不填,代表采集所有指标
3、重启 Datakit 服务让配置生效
关键指标
1、JVM Metrics

2、Nacos 监控指标

3、Nacos 异常指标

场景视图
登录观测云控制台,点击「场景」 -「新建仪表板」,输入 “Nacos”, 选择 “Nacos 监控视图”,点击 “确定” 即可添加视图。




注意:该视图模板要求监控数据要打上 env 的标签。
监控器(告警)
CPU 使用率过高告警


水平通知失败告警


推送失败告警


总结
总之,通过对 Nacos 服务的监控,让使用者能够全面掌控其运行状态、性能表现以及服务间的调用关系,便于及时发现和解决问题,保障系统稳定高效运行。
评论