数据源管理
「数据源」是运维平台的配置中枢——所有被监控的主机、中间件、集群都在这里登记,平台装好后的第一步就是登记数据源。资源监控的菜单、告警规则的可选类型,都由这里已启用的数据源动态决定。

支持的类型
| 类型 | 多实例 | 连接方式 |
|---|---|---|
| Prometheus | 内置单例 | 平台自带指标库,只读,不可停用或删除 |
| 主机 | ✅ | 主机地址(端口连通性等监控) |
| MySQL | ✅ | 主机 / 端口 / 用户名 / 密码 |
| MongoDB | ✅ | 连接 URI,支持副本集 |
| Redis | ✅ | 主机 / 端口 / 密码 / DB |
| Kafka | ✅ | Broker 地址,支持 SASL |
| Elasticsearch | ✅ | 地址 + HTTP Basic 认证 |
| Kubernetes | ✅ | 集群外(static):见监控 Kubernetes 集群 |
| Flink | 单例入口 | Flink Web UI 地址(启用后左侧出现「Flink」入口,由平台反向代理访问) |
采集状态(1.4.8 起)
列表里每条数据源都有一个「采集状态」,直接告诉你它现在有没有真的在采数据,不用去翻容器日志:
| 状态 | 含义 | 常见处理 |
|---|---|---|
| 采集中 | 正常,指标正在写入 | — |
| 无数据 | 采集进程活着,但一条指标都取不到 | 多为账号 / 密码 / 权限问题。悬停查看原因原文 |
| 已停止 | 采集进程没在运行 | 悬停查看退出原因(地址不通、端口错、认证失败等),进程会自动重试 |
| 未采集 | 没有为它启动采集 | 检查用途是否勾了「看图」、是否处于启用状态 |
| 未知 | agent 尚未上报 | 确认 ops-agent 容器已启动 |
红色状态把鼠标移上去,会显示失败原因原文(例如 401 unable to authenticate user、
connection refused)。面板没数据时,先看这一列。
配置从哪里生效
采集配置以本页为唯一来源:新增、改密码、启停都在这里,改完即时生效,不需要重启容器。
ops.yaml 里的中间件 ENV_* 只在首次启动时被播种成本页的数据源,之后不再读取。若部署时
显式设置了 ENV_PROMETHEUS_SD_MODE=env,则相反——采集只认 ops.yaml,本页配置不参与采集,
此时页面顶部会有明确提示条(本页配置仍用于告警与慢查询诊断)。
用途
每个数据源勾选一个或多个用途,决定它出现在哪些功能里:
| 用途 | 效果 |
|---|---|
| 看图 | 在「资源监控」对应菜单展示该实例仪表盘 |
| 告警 | 可在「 告警规则」中针对该实例建规则 |
| 慢查询诊断 | 仅 MongoDB:开启慢查询分析与索引诊断。只读观测——平台不会替你开启 profiling、也不会自动建索引,诊断历史只写入平台自有的 ops-mongo |
被监控目标的账号权限
登记前,为各目标准备具备相应权限的账号(平台只读观测):
| 目标 | 所需权限 |
|---|---|
| MySQL | SELECT、SHOW DATABASES、PROCESS、REPLICATION CLIENT |
| MongoDB | 建议 root;最小权限见下方授权示例 |
| Redis | 读取数据权限 |
| Kafka | 若启用认证,需读取集群元数据权限 |
| Elasticsearch | 读写索引权限 |
| Flink | Web 地址允许运维平台内网访问 |
MongoDB 最小权限(readWrite / dbAdmin 用于慢查询诊断的索引创建):
use admin
db.createUser({
user: "opsuser", pwd: "your_secure_password",
roles: [
{ role: "clusterMonitor", db: "admin" },
{ role: "readAnyDatabase", db: "admin" },
{ role: "clusterManager", db: "admin" },
{ role: "dbAdmin", db: "mdwsrows" }, { role: "readWrite", db: "mdwsrows" },
{ role: "dbAdmin", db: "mdservicedata" }, { role: "readWrite", db: "mdservicedata" },
{ role: "dbAdmin", db: "mdworksheet" }, { role: "readWrite", db: "mdworksheet" },
{ role: "dbAdmin", db: "mdworkflow" }, { role: "readWrite", db: "mdworkflow" }
]
})
Elasticsearch 的账号怎么填
这一类最常见的故障是测试连接通过、但采集状态显示「无数据」——原因基本都是用户名填错。
| 项 | 填什么 |
|---|---|
| URL | http://<ES地址>:9200,要带协议头 |
| 用户名 | md —— 明道云私有部署自带的 ES 用户名是 md,不是 elastic |
| 密码 | HAP 部署时设置的 ES 密码 |
若通过环境变量播种(ENV_ELASTICSEARCH_PASSWORD),格式是**「用户名:密码」**整体,例如 md:your_password,
不是只填密码。
判断是否真的采到数据:看本页「采集状态」列是否为采集中。显示「无数据」时悬停即可看到原因, 凭据错误会直接提示账号或密码不对。
操作
- 新建:右上角「新建数据源」→ 选类型 → 填连接信息。
- 测试连接:用真实凭据完成鉴权验证(MongoDB ping、MySQL 登录、Kafka 拉元数据、Redis AUTH、ES 认证请求),不是只探端口。
- 启用 / 停用:列表开关切换。停用后对应的资源监控菜单、告警类型自动隐藏,已有告警规则停止调度。
- 编辑:已存密码以掩码显示,留空即不修改。
密码与连接 URI 落库前用 ENV_ALERT_CRYPTO_KEY 做 AES 加密,接口一律返回掩码。首次部署务必设好该密钥并妥善保管——更换密钥会导致已存凭据无法解密,需要重新录入。