本文介绍如何将自建 MongoDB 接入云监控 2.0。接入组件基于 aio-exporter 的 MongoDB 适配,采集连接、操作吞吐、复制集状态、WiredTiger 缓存、内存与数据库存储等指标,支持单节点与副本集,支持 ACK 集群(CS)与 ECS(VPC) 两种部署环境。接入后自动生成 MongoDB 实例实体与内置大盘。
支持的中间件条件
接入前请确认目标实例满足以下条件,否则可能出现采集不到数据或指标缺失。
|
条件项 |
要求 |
|
版本 |
MongoDB 4.4+(aio-exporter 上游对 ≥ 6.0 验证更充分;旧版可能可用但未全面测试) |
|
部署形态 |
自建单节点或副本集;云托管(如阿里云 MongoDB)在满足账号与网络条件时也可接入。副本集需填写额外种子节点与副本集名称 |
|
监控账号 |
开启 auth 时需具备 |
|
连接方式 |
单节点默认 |
|
网络连通 |
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 |
步骤三:接入配置
-
登录云监控2.0控制台,选择目标工作空间后,在左侧导航栏单击 接入中心 ,单击 MongoDB 开始接入。
-
选择接入环境(CS 或 ECS(VPC)),并在下拉列表中选择 观测对象 。
-
接入配置,配置完成后单击 确定 :
配置项
是否必填
说明
MongoDB 服务地址
是
主连接地址;副本集场景下作为第一个 seed
MongoDB 服务端口
是
默认 27017;额外种子未写端口时复用此值
额外种子节点(副本集)
否
其余成员,逗号分隔,
host或host:port副本集名称
否
填写后 URI 带
replicaSet=,并强制关闭直连认证库
否
默认
admin直连模式
否
单节点建议开启;配置了副本集名或额外种子时被忽略并强制关闭
云厂商 / 部署来源
否
写入
provider标签,自建为self-hosted/mongodbMongoDB 账号 / 密码
否
开启 auth 时填写;需
clusterMonitorMetric 采集间隔(秒)
是
默认 15
自定义标签
否
注入到指标上的额外标签
使用公网镜像地址
否
默认关闭;无法访问内网镜像仓库时开启
-
接入成功后,可在 实体探索 查看接入的实体及相关可观测数据。
数据使用说明
实体说明
接入后,云监控定期从 mongodb_up 等指标的标签中发现 MongoDB 实例,并生成中间件实体:
|
维度 |
说明 |
|
域(domain) |
middleware |
|
实体类型 |
middleware.mongodb |
|
实体过滤条件 |
|
|
观测对象(绑定实体) |
CS 环境为 |
实体字段来自采集标签,与安装次数无关:
|
字段 |
说明 |
|
instance_id |
实例标识,取自主地址 |
|
provider |
部署来源,如 |
|
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}} |
关联数据集 |
卸载或修改接入策略
如果期望取消或修改 MongoDB 的接入,可以在 接入中心 的 接入管理 页,找到对应的接入策略,进行 编辑 或 删除 。删除接入策略后,Exporter 与采集配置一并移除,已写入的历史指标按存储的生命周期策略保留。