操作场景
本文旨在引导用户快速实现对 Nacos 监控数据的采集,无论 Nacos 部署在独立服务器还是 Kubernetes 集群,都可按照指引轻松获取节点的运行状态和指标信息。
操作步骤
Nacos 暴露监控指标
本章将介绍如何在传统发行版部署、Docker 部署和 Kubernetes 部署环境下,为 Nacos 服务启用 Prometheus 监控指标的暴露,无论是单机模式还是集群模式均适用。如果您使用的是集群模式,请提前确定需要被采集的节点,所有需采集的节点都必须完成相应的指标暴露配置。
1. 找到 Nacos 安装目录下 conf 文件夹中的 application.properties 文件。路径示例:
{NACOS_HOME}/conf/application.properties
其中 {NACOS_HOME} 为实际的 Nacos 安装路径。
2. 在 application.properties 文件末尾添加如下配置(如已存在请直接修改为以下内容):
management.endpoints.web.exposure.include=prometheus
3. 保存文件后,重新启动 Nacos 服务以使配置生效。
4. 服务启动后,在主机上执行如下命令,检查 metrics 数据是否已经生成。
curl localhost:8848/nacos/actuator/prometheus
命令执行结果如下:

1. 注入环境变量。
配置方式一:docker-compose 方式环境变量注入,docker-compose.yml 示例如下。
version: "3"services:nacos:image: nacos/nacos-server:latestcontainer_name: nacosports:- "8848:8848"environment:# ...# 增加这个环境变量- management.endpoints.web.exposure.include=prometheus# ...
配置方式二:docker run 方式环境变量注入,在运行 Nacos 容器时,直接使用 -e 参数为容器设置所需的环境变量。
docker run -d \\--name nacos \\-e management.endpoints.web.exposure.include=prometheus \\-p 8848:8848 \\nacos/nacos-server:latest
2. 容器启动后,进入容器并运行以下命令,以确认 metrics 数据是否已生成。
curl localhost:8848/nacos/actuator/prometheus
命令执行结果如下:

1. 在 Kubernetes 环境下,可以通过增加环境变量的形式来暴露监控指标。
kind: StatefulSetapiVersion: apps/v1metadata:name: nacosnamespace: publicspec:replicas: 3selector:matchLabels:app: nacostemplate:metadata:labels:app: nacosspec:containers:- name: nacosimage: nacos/nacos-server:latestenv:#...# 增加这个环境变量- name: management.endpoints.web.exposure.includevalue: 'prometheus'#...
2. 增加环境变量后,Nacos 服务会重启,重启后进入 Pod,执行命令查看是否有 metrics 数据:
curl localhost:8848/nacos/actuator/prometheus
命令执行结果如下:

配置采集
1. 登录 Prometheus 控制台。
2. 在实例列表中,选择对应的 Prometheus 实例。
3. 进入实例详情页,选择数据采集 > 集成中心。
4. 在集成中心找到并单击 Nacos,即会弹出一个安装窗口,在安装页面填写集成名称并选择部署方式,具体配置方式如下。
如果 Nacos 部署在非容器环境,可通过 StaticConfig 类型部署监控采集配置。具体配置步骤如下:
1. 在弹出的安装窗口中,找到实例配置 > 部署类型,下拉选择 StaticConfig。
2. 在静态采集配置 > 采集目标地址中,填写 Nacos 服务的 host:port,支持添加多个,需保证网络与 Prometheus 实例互通。
3. 确认 Exporter 配置 > 指标采集路径中的 path 是否与 Nacos 服务配置一致。
4. 按需填写其他 Exporter 配置,然后单击保存。

参数 | 说明 |
名称 | 集成名称,命名规范如下: 名称具有唯一性。 名称需要符合下面的正则:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$'。 |
部署类型 | 监控的部署类型,StaticConfig 代表静态采集配置。 |
采集目标地址 | |
指标采集路径 | Nacos 指标暴露的路径,默认为 /nacos/actuator/prometheus。 |
抓取间隔 | 默认15s,填写示例:60s、1m30s、5m。 |
抓取超时 | 默认10s,抓取超时必须小于等于抓取间隔,填写方式同抓取间隔。 |
Metric Relabel 配置 |
如果 Nacos 部署在容器环境,可通过 ServiceDiscovery 类型部署监控采集配置。具体配置步骤如下:
1. 确保当前 Prometheus 实例已成功关联 Nacos 所在集群,步骤请参见 集成容器服务。
2. 在弹出的安装窗口中,找到实例配置 > 部署类型,下拉选择 ServiceDiscovery。
3. 在服务发现配置中,选取待监控的 Nacos 服务所在的集群,填写 Nacos 服务所在的命名空间、指标暴露的端口号或端口名称、Nacos Pod 标签。
4. 确认 Exporter 配置 > 指标采集路径中的 path 是否与 Nacos 服务配置一致。
5. 按需填写其他 Exporter 配置,然后单击保存。

参数 | 说明 |
名称 | 集成名称,命名规范如下: 名称具有唯一性 名称需要符合下面的正则:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$' |
部署类型 | 监控的部署类型,ServiceDiscovery 代表服务发现配置。 |
集群 | |
命名空间 | Nacos 服务所在的集群命名空间。 |
端口 | Nacos 指标暴露的端口号或端口名称,需在工作负载 spec.template.spec.containers.ports 中增加端口配置。 |
Pod 标签 | Nacos 服务 Pod 在 metadata.labels 中显式配置的标签。当通过工作负载创建 pod 时,则为工作负载 spec.template.metadata.labels 中配置的标签。 |
指标采集路径 | Nacos 指标暴露的路径,默认为 /nacos/actuator/prometheus。 |
抓取间隔 | 默认15s,填写示例:60s、1m30s、5m。 |
抓取超时 | 默认10s,抓取超时必须小于等于抓取间隔,填写方式同抓取间隔。 |
Metric Relabel 配置 |
查看监控
前提条件
Prometheus 实例已绑定 Grafana 实例。
操作步骤
1. 登录 Prometheus 监控服务控制台,选择对应 Prometheus 实例进入管理页面。
2. 选择数据采集 > 集成中心,在集成中心页面找到 Nacos 监控卡片并点击弹出集成页面,选择 Dashboard > Dashboard 安装/升级来安装对应的 Grafana Dashboard。
3. 选择查看已集成,在已集成列表中单击 Grafana 图标即可自动进入 Nacos 监控大盘,查看实例相关的监控数据,如下图所示:
