news 2026/9/10 7:37:08

Multica 自建部署怎么开启 Prometheus 指标并保护 /metrics 端点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Multica 自建部署怎么开启 Prometheus 指标并保护 /metrics 端点

Multica 自建部署怎么开启 Prometheus 指标并保护 /metrics 端点

【免费下载链接】multicaMake humans and AI agents work as one team — open-source and self-hostable.项目地址: https://gitcode.com/GitHub_Trending/mu/multica

在自建 Multica 时,默认情况下后端不会启动任何 Prometheus 指标监听器——只有设置了METRICS_ADDR环境变量后,才会单独开出管理监听端口提供/metrics。这篇文章基于 SELF_HOSTING_ADVANCED.md 中的 Prometheus Metrics 章节,说明如何开启这个监听器、验证/metrics可用,以及如何避免把它暴露到公网。

默认状态:不监听、不服务 /metrics

  • METRICS_ADDR默认为空,为空时不会启动任何 metrics 监听器(见 环境变量参考 中METRICS_ADDR一行:Prometheus metrics listen address; empty means not started)。
  • 公共 API 端口不提供/metrics。面向互联网的部署应保持这一状态。
  • HTTP 请求类指标只有在 metrics 监听器启用之后才开始累计,所以开启前不存在数据,开启后从零累积。

方式一:直接运行后端二进制

文档给出的启用方式是给进程带上METRICS_ADDR环境变量启动:

METRICS_ADDR=127.0.0.1:9090 ./server/bin/server

这里的127.0.0.1:9090是文档给出的示例值,表示只在本机回环地址上开放指标端口。启动后,用文档中的验证命令确认监听器工作:

curl http://127.0.0.1:9090/metrics

curl能返回指标内容即说明监听器已启用,Prometheus 可以直接抓取该地址。

方式二:Docker Compose 自建部署

自建部署使用的 docker-compose.selfhost.yml 已经把该变量透传给后端容器(backend服务的environment中为METRICS_ADDR: ${METRICS_ADDR:-},默认空)。仓库的 .env.example 中也有对应条目:

# METRICS_ADDR=127.0.0.1:9090

操作路径:

  1. 在项目根目录的.env中取消注释并设置METRICS_ADDR=127.0.0.1:9090.env.example中的注释提醒:除非你用私有网络、白名单或代理认证保护了这个监听器,否则绑定在回环地址上;不要把这个端点通过公网的 App/API 入口暴露出去。

  2. 重启后端让配置生效:

    docker compose -f docker-compose.selfhost.yml up -d backend
  3. 验证。注意 compose 默认只发布了 API 端口(8080),metrics 端口默认不发布到宿主机,所以在宿主机上直接curl http://127.0.0.1:9090/metrics未必可达。文档给出的容器内实践是:如果需要在宿主机访问,用只映射到本机回环的方式发布端口(见下文“保护端点”)。验证抓取内容本身仍是对指标地址发起curl请求,能返回指标文本即说明监听器已启用。

保护 /metrics 端点

文档明确说明指标数据可能暴露内部路由、流量规模、依赖状态和运行时健康情况,因此对端点保护给出了以下要求:

  • 优先使用私有抓取路径:Docker 或 Kubernetes 部署时,把 metrics 监听器绑定到内部接口,并用私有网络、白名单、NetworkPolicy 或代理认证来保护。
  • 不要把/metrics挂在公共 API 端口上:公共 API 端口不服务/metrics,面向互联网的部署应保持如此,也不要把指标端点经公网 App/API 入口对外暴露。
  • 容器内绑定0.0.0.0:9090时的限制:如果确实在容器内使用METRICS_ADDR=0.0.0.0:9090,只把该端口发布到可信网络,例如宿主机本地映射127.0.0.1:9090:9090,而不是直接发布9090到所有网卡。

最简的做法是保持127.0.0.1:9090这个绑定:监听器只接受本机(或同一容器网络命名空间内)的抓取请求,Prometheus 抓取器部署在同一台主机上即可工作,无需任何额外端口发布。

限制说明

  • 开启前采集的 HTTP 请求指标不会追溯补上,指标从监听器启用时刻开始累计。
  • 端点本身没有文档提到的认证机制,保护手段是网络层面的(绑定地址、私有网络、NetworkPolicy、代理认证),选择哪一种取决于你的部署形态;文档只列出这些选项,未规定必须使用某一种。
  • /metrics相关的完整变量说明见 环境变量参考,进阶配置背景见 SELF_HOSTING_ADVANCED.md 的 Prometheus Metrics 一节。

【免费下载链接】multicaMake humans and AI agents work as one team — open-source and self-hostable.项目地址: https://gitcode.com/GitHub_Trending/mu/multica

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 7:36:42

车载智能互联盒子怎么选?从原理到实操的避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/10 7:36:17

Humanizer技能详解:去除AI味,让文字更有温度

做内容这些年,我越来越觉得“humanizer”不是一个软件的名字,而是一套基本功。最近这个词又上了热搜,连带“humanizer skill”一起被大量讨论,很多人以为它是什么黑科技,其实拆开来看,就是把人机感过重的文…

作者头像 李华
网站建设 2026/9/10 7:34:37

Ruff 的版本号规则怎么理解:minor 版本引入哪些不兼容变更

Ruff 的版本号规则怎么理解:minor 版本引入哪些不兼容变更 【免费下载链接】ruff An extremely fast Python linter and code formatter, written in Rust. 项目地址: https://gitcode.com/GitHub_Trending/ru/ruff 如果你把项目的 Ruff 从 0.15.x 升到 0.16…

作者头像 李华
网站建设 2026/9/10 7:32:38

AI Engineering 怎么拿最划算?二手、租赁、借书 3 条路一次讲清

AI Engineering 怎么拿最划算?二手、租赁、借书 3 条路一次讲清 【免费下载链接】aie-book [WIP] Resources for AI engineers. Also contains supporting materials for the book AI Engineering (Chip Huyen, 2025) 项目地址: https://gitcode.com/GitHub_Trend…

作者头像 李华
网站建设 2026/9/10 7:31:59

Buzz离线转录:3分钟跑通的本地Whisper语音转文字工具

Buzz离线转录:3分钟跑通的本地Whisper语音转文字工具 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz Buzz是一款基…

作者头像 李华