跳到主要内容

版本说明

v1.5.7 · 2026-07-28

修复

  • K8s 部署的运维平台装完没有 K8s 面板。单文件 ops.yaml 清单里缺 Prometheus 的 ServiceAccount/ClusterRole 与 kube-state-metrics,也没开 ENV_K8S_MONITOR_MODE, 平台虽然就跑在集群里却无权采集,面板一直空白。现已随清单补齐,装完即有数据, 与集群(PVC)部署的行为一致。

    • 从旧版本升上来:重新下载 ops.yaml 覆盖 apply 即可,已有监控数据不受影响。
  • 平台自采本集群时,K8s 面板的「集群」下拉里选不到本集群。集群标识 (origin_prometheus)此前只在配置了 remote_write 时才写入,自采场景下缺失, 面板因此筛不出数据。现改为只要启用 K8s 采集就写入。

  • 采集组件的 remote_write 示例地址漏了 /prometheus/server/ 前缀。平台的 Prometheus 运行在该前缀下,照示例填写会得到 404,而 Prometheus 只在容器日志里静默 重试,界面上只表现为「没有数据」。示例已改正,且启动时会校验该地址并给出明确提示。

  • 多集群纳管此前无法落地:别的集群要把指标推回平台,唯一能用的入口是平台网关, 而网关原有的 Prometheus 路由校验的是浏览器会话 Cookie,remote_write 带不了;平台的 ops-prometheus 又是 ClusterIP,集群外根本连不上——两条路都是死的。现网关新增一条 用 Bearer 鉴权的写入入口(token 即平台的 ENV_OPS_TOKEN),配合新变量 ENV_PROMETHEUS_REMOTE_WRITE_TOKEN 使用,多集群方案才真正可用。

  • 跨集群推送容器日志此前也没有可用入口,与指标同一个成因:ops-loki 是 ClusterIP, 网关上原有的 /loki/ 又是会话 Cookie 鉴权。现同样新增了 Bearer 鉴权的日志写入入口, 配套新变量 ENV_LOKI_PUSH_TOKEN

变更

  • 单机(Docker Compose)部署也能监控 K8s 集群了:在被监控集群里装一套采集组件, 指标经 remote_write 推回平台即可,只要求该集群能出站访问平台。此前文档表述为 「单机部署不具备 K8s 采集能力」,现已更新。
  • ops.yaml.example 中残留的 ENV_K8S_MONITOR_MODE: static 改为 off——static 模式与「Kubernetes 集群」数据源类型均已在 1.5.3 移除,填了不再有任何效果。

v1.5.6 · 2026-07-28

修复

  • 多节点副本集的 MongoDB 采不到数据。连接串里写了多个节点(host1,host2,host3)时,采集进程会因内部的直连模式与多节点互斥而连接失败,指标始终为空。现已自动识别副本集写法并切换连接方式,单节点不受影响。
    • 若你的 MongoDB 数据源填的是多节点地址、采集状态一直不正常,升级到本版即可。与 1.5.5 修复的账号密码问题是两回事,两者叠加时表面现象一样,都是「连接测试通过但面板无数据」。

v1.5.5 · 2026-07-28

修复

  • MongoDB 数据源填了账号密码却采不到数据。运维平台在启动 mongodb exporter 时丢掉了「数据源」页填写的用户名 / 密码 / 认证库,exporter 是用不带凭据的地址去连的——目标库只要开了鉴权,采集就全部失败。
    • 这个问题的表现很有迷惑性:连接测试是通过的(那条路径凭据齐全)、采集进程也在运行,只有面板一直「无数据」。若你此前排查过 MongoDB 采不到数据、检查过账号权限却没找到原因,升级到本版即可。
    • MySQL / Redis / Elasticsearch 不受影响。

新增

  • Kubernetes 采集组件模式:被监控集群里只装 Prometheus + kube-state-metrics 两个组件作为采集器,指标经 remote_write 推回运维平台。由此支持两类此前做不到的场景:
    • 运维平台不在被监控集群内(例如平台是单机 Compose 部署,另有 K8s 集群要监控)
    • 一个平台监控多个 K8s 集群
    • 采集全部发生在集群内部,被监控集群无需暴露 apiserver / kubelet / kube-state-metrics 任何端口,Bearer Token 也不出集群,只需能出站访问平台。配置见 Kubernetes 监控
  • K8s 面板支持按集群切换:面板顶部新增「集群」下拉,多集群时按 ENV_K8S_CLUSTER_NAME 区分,默认 All 合并展示。

变更

  • 数据源「未采集」的悬停提示删去「若当前是环境变量模式,此页配置不参与采集」——该模式在 1.5.0 已废除,提示留着只会误导排查方向。

v1.5.4 · 2026-07-28

修复

  • Kubernetes 部署下不再刷 docker.sock 连接报错。ops-alloy 此前无条件启用 Docker 容器日志采集,而 Kubernetes 用的是 containerd,没有这个 socket,日志里每 10 秒一条连接失败。现在启动时自动判断:有 /var/run/docker.sock 才采 Docker 日志(单机 Compose 部署),没有就跳过并在启动日志里说明原因。单机部署行为不变。
    • ⚠️ 若你此前为消除该报错手工把宿主机 docker.sock 挂进了 ops-alloy,请撤掉——那样采集到的是宿主机容器的日志,不是 Kubernetes Pod 的日志。K8s 下的容器日志由 alloy-logs 采集,见服务日志接入

变更

  • 集群清单(k8s-cluster.tar.gz / k8s-addons.tar.gz)现可从文档直接下载,此前只说明「在离线包内」而实际未提供。见集群部署Kubernetes 监控
  • 节点标签与污点键由 hap-ops 统一为 mdis-ops,与命名空间一致。
  • k8s-addons40-alloy-logs.yamlENV_LOKI_PUSH_URL 默认值改为集群内 Service DNS(原先是一个内网 IP,照搬会推送失败且无任何报错)。

v1.5.3 · 2026-07-27

变更

  • Kubernetes 监控改为仅在运维平台部署于被监控集群内时可用ENV_K8S_MONITOR_MODE=incluster),经 ServiceAccount 自动发现,无需 Bearer Token、无需 NodePort。此前的集群外采集方式(static:在集群外远程抓取,需配 Token 并把 apiserver、kubelet、kube-state-metrics 经三个 NodePort 暴露)已移除。单机(Docker Compose)部署不具备 K8s 采集能力,与链路追踪的适用范围一致。
  • 「数据源」页不再有「Kubernetes 集群」类型。集群内采集无需登记数据源,集群与节点变动实时生效。
  • 未启用 K8s 监控时,左侧菜单不再显示 Kubernetes 入口(此前恒显示、点进去是空面板)。

v1.5.2 · 2026-07-27

变更

  • 各组件数据目录统一为 /data/mdis/组件:Prometheus、Grafana、Loki、Tempo、MongoDB、Alloy 的容器内数据路径改为同一层级,单机与集群部署保持一致。按最新的 ops.yaml / Kubernetes 清单部署即可。
  • 集群清单中的对象存储桶名给出示例值 mdis-loki / mdis-tempo,在对象存储中照此创建两个 bucket 即可,不需自行拟名。

v1.5.1 · 2026-07-27

变更

  • 日志与链路改用两个独立的 bucket:分别由 ENV_S3_BUCKET_LOKIENV_S3_BUCKET_TEMPO 指定。两个 bucket 必须不同,且需在部署前于对象存储中创建好。 旧的 ENV_S3_BUCKET 仍可用,但不建议在新部署中使用。
  • ENV_S3_ENDPOINT 统一填写 host:port,不要带 http://

文档

  • 服务日志接入:ENV_LOKI_URL 按部署形态给出三种填法——单机填主机 IP、与运维平台同集群填 Service DNS、跨集群需先为 ops-loki 暴露 NodePort 或 Ingress。

v1.5.0 · 2026-07-27

变更(不兼容)

  • 数据源只有一个入口:UI「数据源」页。 ops.yaml / ConfigMap 里的 ENV_MYSQL_*ENV_REDIS_*ENV_KAFKA_ENDPOINTSENV_ELASTICSEARCH_*ENV_MONGODB_URIENV_PROMETHEUS_HOSTENV_PROMETHEUS_K8S_*ENV_FLINK_URLENV_PROMETHEUS_SD_MODE 不再被读取,启动日志会列出并提示。已有数据源不受影响,把这些行删掉即可。

  • 慢查询诊断目标改由「数据源」页里勾了「诊断」用途的 MongoDB 提供,没有环境变量回退。

  • MongoDB 不再是「内置」数据源。此前它因内置身份在界面上没有编辑按钮,地址要改时页面改不了、环境变量改了也不生效,两条路同时堵死。现在它就是一条普通数据源,可正常编辑删除。「内置」现在只剩内置 Prometheus。

新增

  • 批量导入(数据源页右上角):支持 YAML / JSON,可先下载带注释的模板。按「类型 + 名称」幂等——同名条目是更新而不是新建,同一份文件可反复导入;更新时密码留空则沿用原密码。
  • 导入即验证:导入时逐条做格式校验 + 连接探测,明确告诉你哪条不通、为什么。可先用「仅校验」预检,不写入任何数据。探测不通不阻止导入(配置可以先落地、服务稍后再起),但结果里逐条标出。
  • 导入同时开放接口 POST /api/alert/sources/import,自动化部署无需经过页面。

修复

  • Kubernetes 部署下所有中间件监控为空:文档给的 gateway Service 只暴露 48881(nginx),未暴露 ops-server 自身的 8081,且缺少 ENV_OPS_SD_URL,导致 agent 取不到服务发现数据、一个 exporter 都起不来(日志每 30 秒刷 [sd] 拉取 xxx 失败)。K8s 部署文档已修正。
  • Kubernetes 下中间件抓取目标全部 DOWNops-agent 的 Service 需为 headless(clusterIP: None)。它为每个数据源实例动态分配端口,ClusterIP 只转发列出的端口,动态端口一律拒绝连接。K8s 部署文档已修正。

升级注意

从 1.4.x 升级:已在界面里的数据源全部保留,监控不中断。升级后建议清理 ops.yaml / ConfigMap 里上述已废弃变量——留着不影响运行,但会让人误以为还能通过它们改配置。

v1.4.8 · 2026-07-23

新增

  • 采集状态(数据源页):每条数据源直接显示「采集中 / 无数据 / 已停止 / 未采集」;红色状态可查看失败原因原文,并提供可一键复制的排查命令。

v1.4.10 · 2026-07-23

修复

  • 主机监控在升级后消失(1.4.8 引入):1.4.8 起采集配置默认以「数据源」页为准,但升级迁移漏了「主机」这一类,导致用 ENV_PROMETHEUS_HOST 配置主机监控的部署升级后主机面板空白、Prometheus 中连 host 抓取任务都不再出现,且无任何报错。升级到本版后自动恢复,无需手工添加。
  • API 创建数据源时默认停用:请求体不带 enabled 时会被当作停用处理,用接口批量导入数据源后全部不采集,需要再逐个开启。现改为默认启用,显式传 false 才停用。
  • API 创建 Kafka / MongoDB / MySQL 数据源时用途为空:不传 purposes 时用途为空,而采集只挑选用途含「看图」的数据源——表现为数据源建成功、列表可见、开关也是开的,但始终不采集。现补齐默认用途。
  • 同一个 MongoDB 被登记两次:内置的慢查询诊断源与自动导入的采集源指向同一地址,界面显示为两条,删除其中一条后重启还会再次出现。现合并为一条、两个用途。
  • 内置数据源的用途在每次重启时被重置。
  • 「测试连接」失败时只显示一个红色图标、没有任何文字说明(例如 Elasticsearch 凭据错误应显示 401 详情)。

新增

  • 部署自检(概览页):汇总指标采集、主机监控、HAP 服务日志、链路追踪、告警通知、慢查询诊断六项状态,异常时给出可操作建议。
  • 自动导入标识:由 ops.yaml 环境变量导入的数据源标注「自动导入」,说明来源与后续维护方式。
  • 重复添加提示:新增数据源时若与已有数据源指向同一实例(比对地址、库名、账号、db 序号),提示并提供「去补用途」入口;同地址不同库 / 账号的场景不受影响。
  • 告警规则未配置通知渠道时,列表显示「不通知」并说明触发后仅写入告警历史。
  • 启动日志打印关键变量对照,区分平台自有库与被监控库、区分 HAP 侧与本平台的同名 Loki 变量。

变更

  • 慢查询规则说明补全为四个条件:执行时长、扫描文档数、同类查询出现次数、采集周期;无数据时给出自查清单。此前只展示前两个条件,容易误判为功能异常。
  • 采集配置的唯一来源默认改为 UI「数据源」页(ENV_PROMETHEUS_SD_MODE 默认 http);ops.yaml 中的中间件环境变量仅在首次启动时导入一次。
  • exporter 增加守护与自动重启,并在启动约 40 秒后打印采集自检表。
  • 部署示例:数据卷统一收进 volume/data/mdis/;各服务补 restart: always;中间件连接类环境变量默认注释(仅全新安装需要);Elasticsearch 凭据格式更正为「用户名:密码」,明道云私有部署自带 ES 的用户名为 md

升级注意

  • 升级方式:修改 ops.yaml 顶部 x-ops-image 的 tag,执行 docker compose -f ops.yaml pullup -d。数据卷不变,监控历史与告警配置保留。
  • 从 1.4.7 及更早升级:首次启动会把 ops.yaml 中的中间件与主机环境变量自动导入为 UI 数据源;此后采集配置以 UI 为准,修改 ops.yaml 不再生效。
  • 不要跟随新版文档修改数据卷路径volume/data/mdis/ 的新布局仅用于全新安装;已在运行的实例修改后会挂载到空目录,看起来像历史数据丢失(数据仍在原路径)。

v1.4.6 · 2026-07-17

  • 链路追踪的服务名去除任意命名空间后缀,不再只适配 default 命名空间。

v1.4.5 · 2026-07-16

  • 数据源创建后默认即启用,各类型行为对齐。
  • ops-mongo 连接失败改为后台退避重试,不再永久禁用告警子系统——启动顺序不再需要人工干预。

v1.4.4 · 2026-07-16

  • Prometheus 支持按大小保留数据(retention.size)。
  • 集群部署蓝图与对象存储实际形态对齐。

v1.4.3 · 2026-07-15

  • 对象存储兼容性修复:Loki 走 path-style、Tempo 用 bucket_lookup_type 适配腾讯云 COS 与阿里云 OSS。
  • istio 链路追踪 appProtocol 相关修复。

v1.4.1 · 2026-07-14

  • 修复 MySQL / MongoDB 监控未解密密码导致连库失败并产生假告警。

v1.4.0 · 2026-07-13

新增

  • 内置告警子系统,替代原 Grafana 告警:七类监控(基础资源含自定义 PromQL、端口、SSL、MySQL、MongoDB、Kafka 堆积、Kafka 重平衡);预警→告警→恢复降噪状态机,只在状态变化时通知;飞书 / 钉钉 / 企业微信 / 邮件 / 自定义 Webhook 多渠道;全局告警历史可按类型 / 状态 / 时间筛选。
  • 统一数据源管理:新增顶级「数据源」页,集中管理主机 / 中间件 / K8s / Flink(支持多实例),左侧菜单按已启用数据源动态显示;「测试连接」真实鉴权;凭据 AES 加密;可选 http 服务发现(界面加数据源即自动拉起 exporter 并注册抓取,无需改环境变量重启)。
  • MongoDB 慢查询支持分片集群:多实例自动聚合分析。

架构变更

  • 单镜像交付:所有组件合并为 ops-allinone,靠 ROLE 区分角色,只需拉取 / 离线导入一个镜像。
  • 告警数据独立存储:新增 ops-mongo 容器存放规则 / 状态 / 历史 / 渠道 / 数据源,与业务库解耦。

升级注意

  • ops.yaml 结构较大调整(单镜像 + ROLE),按最新部署文档重新生成。
  • 新增必配 ENV_ALERT_CRYPTO_KEY(凭据加密密钥)。
  • 原 Grafana 告警 / 通知 / 静默界面已移除,需在新版「告警管理」重建规则。

v1.3.0 · 2026-06-03

  • Kubernetes 集群监控static(集群外远程抓取)/ incluster(Prometheus 作为 Pod 自动发现)两模式,新增 K8s 仪表盘与菜单。
  • 单 agent 支持中间件多实例监控。
  • Loki 启用数据保留(默认 30 天)与删除 API。

v1.2.5 · 2026-05-13

  • 日志面板拆为容器控制台服务日志,服务日志支持结构化字段自动展开与全文搜索(手机号 / ID / traceID),过滤器全面多选。
  • 修复 Kafka 等中间件面板加载问题。
  • 部署资源要求修正为 4C/8G。

v1.2.0 · 2026-04-01

  • 新增日志查看、APM 分布式链路追踪、指标 / 日志 / 链路统一界面。
  • 支持子路径部署(反代挂 /mdis 等)。

v1.1.0 · 2025-02-26

  • MongoDB 慢查询与索引建议;支持配置告警。

v1.0.0 · 2025-01-02

  • 初始版本:系统资源监控。