Prometheus 监控服务 Nacos 接入

这篇旨在引导用户快速实现对 Nacos 监控数据的采集,无论 Nacos 部署在独立服务器还是 Kubernetes 集群,都可按照指引轻松获取节点的运行状态和指标信息。

相关产品
Prometheus 监控服务 产品页,含版本规格、价格与购买入口。

一、Nacos 暴露监控指标

本章将介绍如何在传统发行版部署、Docker 部署和 Kubernetes 部署环境下,为 Nacos 服务启用 Prometheus 监控指标的暴露,无论是单机模式还是集群模式均适用。如果你使用的是集群模式,请提前确定需要被采集的节点,所有需采集的节点都必须完成相应的指标暴露配置。

传统发行版部署Docker 部署Kubernetes 部署

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:latest container_name: nacos ports: – "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: nacos namespace: publicspec: replicas: 3 selector: matchLabels: app: nacos template: metadata: labels: app: nacos spec: containers: – name: nacos image: nacos/nacos-server:latest env: #… # 增加这个环境变量 – name: management.endpoints.web.exposure.include value: 'prometheus' #…2. 增加环境变量后,Nacos 服务会重启,重启后进入 Pod,执行命令查看是否有 metrics 数据:curl localhost:8848/nacos/actuator/prometheus命令执行结果如下:

二、配置采集

1. 登录 Prometheus 控制台。

2. 在实例列表中,选择对应的 Prometheus 实例。

3. 进入实例详情页,选择数据采集 > 集成中心。

4. 在集成中心找到并单击 Nacos,即会弹出一个安装窗口,在安装页面填写集成名称并选择部署方式,具体配置方式如下。

StaticConfig(静态采集配置)ServiceDiscovery(服务发现配置)

如果 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 代表静态采集配置。
采集目标地址 输入采集目标地址,格式:host:port,支持添加多个。需保证网络与 Prometheus 实例互通,如需通过公网访问,可参考 TKE Serverless 集群如何放通外网。
指标采集路径 Nacos 指标暴露的路径,默认为 /nacos/actuator/prometheus。
抓取间隔 默认15s,填写示例:60s、1m30s、5m。
抓取超时 默认10s,抓取超时必须小于等于抓取间隔,填写方式同抓取间隔。
Metric Relabel 配置 选填。兼容 Prometheus 原生的 metric_relabel_configs 和 Prometheus Operator 原生的 metricRelabelings 配置。不可混用。

如果 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 服务所在的集群,需确保集群已成功被当前 Prometheus 实例关联,步骤请参见 集成容器服务。
命名空间 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 原生的 metric_relabel_configs 和 Prometheus Operator 原生的 metricRelabelings 配置。不可混用。

三、前提条件

Prometheus 实例已绑定 Grafana 实例。

四、操作步骤

1. 登录 Prometheus 监控服务控制台,选择对应 Prometheus 实例进入管理页面。

2. 选择数据采集 > 集成中心,在集成中心页面找到 Nacos 监控卡片并点击弹出集成页面,选择 Dashboard > Dashboard 安装/升级来安装对应的 Grafana Dashboard。

3. 选择查看已集成,在已集成列表中单击 Grafana 图标即可自动进入 Nacos 监控大盘,查看实例相关的监控数据:

赞 (0)
上一篇 4天前
下一篇 4天前