Sign inSign up

cocam/hainmq-console

By cocam

•Updated about 22 hours ago

海心云 MQ 管理台 · HainMQ Console. Based on RabbitScout.

Image
Message queues
Developer tools
Monitoring & observability
0

1.2K

cocam/hainmq-console repository overview

⁠海心云 MQ 管理台 / HainMQ Console

现代化、开源的 RabbitMQ 管理与运维控制台,提供实时监控、队列管理、告警通知、MCP 自动化运维和模型辅助对话。

基于 RabbitScout(MIT)。RabbitMQ 是其各自权利人的商标;本项目与 RabbitMQ 项目及其商标权利人无隶属、赞助或背书关系。

海心云 MQ 管理台

⁠镜像信息

⁠主要功能

⁠RabbitMQ 管理
  • 实时仪表盘:消息速率、队列分布、集群健康、内存/磁盘告警
  • 队列:创建、查看、删除、清空、消息浏览、测试消息发布
  • 交换机:创建、删除、查看绑定、添加绑定
  • 连接与通道:吞吐量、状态、消费者、关闭连接
  • 支持 classic / quorum / stream 队列
⁠运维与告警
  • 服务可达性、节点资源、队列积压、无消费者、未确认消息、消息速率异常
  • 告警规则:阈值、持续时间、严重级别、恢复通知、冷却时间
  • 多个 SMTP 邮件通道和多个通用 JSON Webhook
  • Webhook HMAC 签名、失败重试、投递日志、SSRF 防护
  • 告警确认、静默、手动恢复、维护窗口
⁠MCP 与自动化
  • MCP 工具支持查询 Broker、队列、交换机、连接、通道、告警和指标
  • 写操作(创建/删除/清空队列、发布消息、绑定、关闭连接)必须人工审批
  • 审批后使用审批人的 RabbitMQ 凭据执行,不保存管理员密码
  • 支持 Vhost/队列白名单、限速和审计日志
⁠Web 对话与模型
  • 内置运维对话页面,可配置 OpenAI 兼容或 Ollama 模型
  • 模型 API Key 加密保存
  • 支持 MCP 工具调用、工具结果展示和写操作审批
  • 可通过 OPS_CHAT_ENABLED 或设置页关闭整个对话功能
⁠界面
  • 中英文界面,支持深色/浅色模式
  • 响应式布局,支持移动端
  • 品牌名称、版权、Logo 可通过环境变量配置

⁠快速启动

docker run -d --name hainmq-console \
  -p 3000:3000 \
  -e RABBITMQ_HOST=host.docker.internal \
  -e RABBITMQ_PORT=15672 \
  -e RABBITMQ_PROTOCOL=http \
  -v hainmq-data:/app/data \
  --restart=always \
  cocam/hainmq-console:2.1.1

打开 http://localhost:3000,使用 RabbitMQ 用户名和密码登录。

  • Docker Desktop 上连接宿主机 RabbitMQ 使用 host.docker.internal
  • RabbitMQ 在另一台机器时,把 RABBITMQ_HOST 改成实际 IP/域名
  • RabbitMQ 与容器在同一 Docker 网络时,使用 RabbitMQ 容器名

⁠前置条件

  • RabbitMQ 3.x 或 4.x
  • 已启用 rabbitmq_management 插件
  • Management HTTP API(默认 15672)对容器可达
  • 只有 AMQP 5672 端口不够,必须能访问 15672

⁠运维模块配置

启用运维模块建议增加以下环境变量:

-e OPS_ENCRYPTION_KEY=<32字节base64密钥> \
-e OPS_MCP_TOKEN=<随机Token> \
-e OPS_RABBITMQ_USERNAME=hainmq-monitor \
-e OPS_RABBITMQ_PASSWORD=<只读账号密码> \
-e OPS_ADMIN_USERS=administrator \
-e OPS_CHAT_ENABLED=true \
-e OPS_MCP_ALLOW_WRITE=true \
-e OPS_MCP_ALLOW_PEEK=false

生成密钥:

node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

说明:

  • OPS_RABBITMQ_USERNAME 建议使用只有 monitoring tag、configure/write 为空的只读账号
  • OPS_ENCRYPTION_KEY 用于加密 SMTP、Webhook、MQ 和模型密钥,丢失后需要重新填写
  • OPS_MCP_ALLOW_WRITE=true 时写工具可用,但仍必须在 /ops/approvals 人工审批
  • OPS_MCP_ALLOW_PEEK=false 默认禁止读取消息体,避免消息内容进入模型上下文
  • OPS_CHAT_ENABLED=false 可完全关闭对话页面

完整配置见: https://github.com/cn-cam/hainmq-console/blob/main/docs/ops-module.zh-CN.md⁠

⁠数据持久化

  • 容器内数据目录:/app/data
  • SQLite 数据库:/app/data/ops.db
  • 建议挂载命名卷:-v hainmq-data:/app/data
  • 仅支持单实例部署;应用停止期间不会采集和告警

⁠安全建议

  • 不要将 3000 或 15672 直接暴露到公网
  • 内网部署也建议加防火墙和 HTTPS 反向代理
  • 使用独立只读 RabbitMQ 账号做后台采集
  • 写操作必须人工审批
  • 定期备份 hainmq-data 卷
  • 不要把 .env、模型 Key、SMTP 密码、Webhook 密钥提交到 Git

⁠许可证

MIT License。

本项目保留原 RabbitScout 的版权声明(Copyright (c) 2024 Ralve),并增加修改部分版权声明(Copyright (c) 2026 海心云)。镜像内包含 LICENSE、NOTICE、COPYRIGHT。

⁠链接

Tag summary

Content type

Image

Digest

sha256:d48de3214…

Size

80.4 MB

Last updated

about 22 hours ago

docker pull cocam/hainmq-console