MongoDB 数据库监控接入

更新时间:
复制 MD 格式

本文介绍如何将自建 MongoDB 接入云监控 2.0。接入组件基于 aio-exporter 的 MongoDB 适配,采集连接、操作吞吐、复制集状态、WiredTiger 缓存、内存与数据库存储等指标,支持单节点与副本集,支持 ACK 集群(CS)与 ECS(VPC) 两种部署环境。接入后自动生成 MongoDB 实例实体与内置大盘。

支持的中间件条件

接入前请确认目标实例满足以下条件,否则可能出现采集不到数据或指标缺失。

条件项

要求

版本

MongoDB 4.4+(aio-exporter 上游对 ≥ 6.0 验证更充分;旧版可能可用但未全面测试)

部署形态

自建单节点或副本集;云托管(如阿里云 MongoDB)在满足账号与网络条件时也可接入。副本集需填写额外种子节点与副本集名称

监控账号

开启 auth 时需具备 clusterMonitor 角色(admin 库),用于读取 serverStatus、replSetGetStatus、dbStats 等。未开启认证可留空

连接方式

单节点默认 direct_connect=true;配置副本集名称或额外种子后强制 direct_connect=false,由驱动做拓扑发现

网络连通

CS 环境要求目标 MongoDB 可在所选 ACK 集群网络内连通;ECS(VPC) 环境要求托管探针交换机网段可访问目标 ECS。副本集场景下全部成员均需可达

前提条件

  • 已开通可观测监控Prometheus版。

  • 接入 CS 环境:目标 ACK 集群已接入云监控 2.0,且集群状态为运行中;目标 MongoDB 服务可在该集群网络内连通。

  • 接入 ECS(VPC) 环境:已选定目标 MongoDB 所在 ECS,并确保托管探针交换机网段可访问该 ECS。

费用说明

  • 根据产生的指标数据量,在 Prometheus 产品中计费。无其他费用。

接入方法

步骤一:创建监控账号(如需)

若实例开启了访问认证(auth),请创建具备 clusterMonitor 角色的监控账号;未开启认证时可跳过本步骤。

use admin
db.createUser({
  user: "exporter",
  pwd: "<password>",
  roles: [ { role: "clusterMonitor", db: "admin" } ]
})

角色

用途

clusterMonitor

读取 serverStatus、replSetGetStatus、dbStats 等诊断数据

步骤二:选择接入环境

本插件支持 CS 与 ECS(VPC) 两种接入环境,工作原理不同,请按 MongoDB 实际部署位置选择:

CS(容器服务)

  • 将 Exporter 安装到用户指定的目标 ACK 集群,并复用该集群已有的采集器进行指标采集。

  • 观测对象为 ACK 集群。

  • 网络要求:目标 MongoDB 服务可在该集群网络内连通即可(例如集群内 Service,或集群能访问到的 VPC 内网地址)。

ECS(VPC)

  • 选择目标 MongoDB 服务部署的 ECS 机器,系统根据该 ECS 的 VPC 信息部署全托管采集器。

  • 不会在 ECS 上安装任何进程。

  • 观测对象为 ECS 实例。

  • 网络要求:托管探针所在交换机网段需允许访问目标 ECS(安全组、ACL 等需放行)。

环境

Exporter 部署位置

是否在业务机上装进程

观测对象

网络通达要求

CS

用户指定的 ACK 集群

否(部署在集群内,不占用业务 Pod 宿主)

ACK 集群

MongoDB 可在该集群网络内连通

ECS(VPC)

系统按 VPC 部署的全托管采集器

否,不在 ECS 上安装任何进程

ECS 实例

托管探针交换机网段可访问目标 ECS

步骤三:接入配置

  1. 登录云监控2.0控制台,选择目标工作空间后,在左侧导航栏单击 接入中心 ,单击 MongoDB 开始接入。

  2. 选择接入环境(CS 或 ECS(VPC)),并在下拉列表中选择 观测对象 。

  3. 接入配置,配置完成后单击 确定 :

    配置项

    是否必填

    说明

    MongoDB 服务地址

    是

    主连接地址;副本集场景下作为第一个 seed

    MongoDB 服务端口

    是

    默认 27017;额外种子未写端口时复用此值

    额外种子节点(副本集)

    否

    其余成员,逗号分隔,host 或 host:port

    副本集名称

    否

    填写后 URI 带 replicaSet=,并强制关闭直连

    认证库

    否

    默认 admin

    直连模式

    否

    单节点建议开启;配置了副本集名或额外种子时被忽略并强制关闭

    云厂商 / 部署来源

    否

    写入 provider 标签,自建为 self-hosted/mongodb

    MongoDB 账号 / 密码

    否

    开启 auth 时填写;需 clusterMonitor

    Metric 采集间隔(秒)

    是

    默认 15

    自定义标签

    否

    注入到指标上的额外标签

    使用公网镜像地址

    否

    默认关闭;无法访问内网镜像仓库时开启

  4. 接入成功后,可在 实体探索 查看接入的实体及相关可观测数据。

数据使用说明

实体说明

接入后,云监控定期从 mongodb_up 等指标的标签中发现 MongoDB 实例,并生成中间件实体:

维度

说明

域(domain)

middleware

实体类型

middleware.mongodb

实体过滤条件

.entity with(domain='middleware', type='middleware.mongodb')

观测对象(绑定实体)

CS 环境为 acs.ack.cluster;ECS(VPC) 环境为 acs.ecs.instance

实体字段来自采集标签,与安装次数无关:

字段

说明

instance_id

实例标识,取自主地址 host:port(第一个 seed),不会把整串 URI 写入实例 ID

provider

部署来源,如 self-hosted/mongodb

port

服务端口

region_id

地域

env_type

部署环境类型(CS / ECS)

cluster_id

所属集群标识

可在 实体探索 或 中间件洞察 应用中按上述字段检索实例。

内置大盘

大盘名称

查看入口

说明

MongoDB 概览(实例概览)

实体详情页 实例概览 页签

UModel 大盘,随实例上下文自动绑定变量

MongoDB 概览 / MongoDB Overview

Grafana 大盘列表

Grafana 大盘,提供中英文两套

MongoDB 实例详情

Grafana 大盘列表

Grafana 大盘,提供中英文两套

核心指标

以下为实体数据集 middleware.metric.mongodb 的完整指标清单(共 30 个),可在实体详情、大盘与告警中直接使用:

指标名

类型

单位

显示名

说明

mongodb_up

gauge

-

MongoDB 存活

MongoDB 实例是否可达。1 表示存活,0 表示不可用。

mongodb_uptime

gauge

秒

运行时长

MongoDB 服务运行时长(秒)。

mongodb_connections_current

gauge

-

当前连接数

当前打开的入站连接数。

mongodb_connections_available

gauge

-

可用连接数

尚未使用的可用入站连接数。

mongodb_connections_active

gauge

-

活跃连接数

正在执行操作的活跃客户端连接数。

mongodb_connections_created_rate

counter

次/秒

新建连接速率

每秒新建入站连接的速率。

mongodb_opcounters_rate

counter

次/秒

操作速率

按类型统计的操作速率(insert/query /update/delete/getmore/command)。

mongodb_opcounters_repl_rate

counter

次/秒

复制操作速率

按类型统计的复制操作速率。

mongodb_op_latencies_latency

counter

-

操作延迟

按操作类型统计的累计操作延迟每秒增长(微秒/秒)。

mongodb_network_bytes_in

counter

字节

网络接收流量

网络每秒接收的字节数。

mongodb_network_bytes_out

counter

字节

网络发送流量

网络每秒发送的字节数。

mongodb_network_num_requests

counter

次/秒

网络请求数

每秒接收的网络请求数。

mongodb_global_lock_current_queue

gauge

-

全局锁等待队列

按类型统计的全局锁等待队列操作数(readers/writers/total)。

mongodb_global_lock_active_clients

gauge

-

全局锁活跃客户端

持有全局锁的活跃客户端总数。

mongodb_mem_resident

gauge

-

常驻内存

MongoDB 进程使用的常驻内存(MB)。

mongodb_mem_virtual

gauge

-

虚拟内存

MongoDB 进程使用的虚拟内存(MB)。

mongodb_wt_cache_used_bytes

gauge

字节

WiredTiger 缓存已用

WiredTiger 缓存中当前保存的字节数。

mongodb_wt_cache_dirty_bytes

gauge

字节

WiredTiger 缓存脏数据

WiredTiger 缓存中当前跟踪的脏字节数。

mongodb_wt_cache_max_bytes

gauge

字节

WiredTiger 缓存上限

WiredTiger 缓存的最大配置大小(字节)。

mongodb_metrics_document_rate

counter

次/秒

文档操作速率

按类型统计的文档操作速率(inserted/updated/deleted/returned)。

mongodb_cursor_open

gauge

-

打开游标数

当前打开的游标数量。

mongodb_cursor_timed_out_rate

counter

次/秒

游标超时速率

每秒超时关闭的游标数。

mongodb_asserts_rate

counter

次/秒

断言速率

按类型统计的断言速率(regular /warning/msg / user/rollovers)。

mongodb_page_faults_rate

counter

次/秒

缺页中断

MongoDB 进程每秒发生的缺页中断数。

mongodb_dbstats_data_size

gauge

字节

数据库数据大小

每个数据库存储的未压缩数据大小(字节)。

mongodb_dbstats_index_size

gauge

字节

数据库索引大小

每个数据库的索引总大小(字节)。

mongodb_dbstats_collections

gauge

-

数据库集合数

每个数据库的集合数量。

mongodb_dbstats_objects

gauge

-

数据库对象数

每个数据库的对象(文档)数量。

mongodb_rs_members_health

gauge

-

复制集成员健康

复制集成员健康状态(1 健康/0 不可达)。

mongodb_rs_members_state

gauge

-

复制集成员状态

复制集成员状态(1 PRIMARY/2 SECONDARY/其他为过渡态)。

除上述 MetricSet 聚合指标外,Exporter 采集的原始指标(mongodb_*)均写入 Prometheus 存储,可直接用 PromQL 查询。

常用查询示例

# 存活
mongodb_up

# 当前连接数
mongodb_connections{state="current"}

# 操作速率(按类型)
rate(mongodb_op_counters_total[5m])

告警模板

本接入组件暂未内置告警规则。可在 告警中心 基于上述指标自行配置,例如对 mongodb_up 存活指标不等于 1、连接数 / 堆积量超阈值等场景设置告警。

存储策略说明

接入 MongoDB 后,云监控会创建对应的存储实例用于存储可观测数据。

数据类型

默认存储位置

备注

指标

Prometheus 实例:RegionShare:{{workspaceName}}:{{regionId}}

关联数据集 middleware.metric.mongodb

卸载或修改接入策略

如果期望取消或修改 MongoDB 的接入,可以在 接入中心 的 接入管理 页,找到对应的接入策略,进行 编辑 或 删除 。删除接入策略后,Exporter 与采集配置一并移除,已写入的历史指标按存储的生命周期策略保留。