Skip to main content

rmqadm

RabbitMQ 管理命令行工具,基于 Management HTTP API 实现,参考 rabbitmqadmin v2 的命令设计,支持多集群配置切换。

特性

  • 支持配置文件管理多个集群,通过 -c <name> 一键切换
  • 涵盖用户、vhost、队列、交换机、绑定、策略、权限、健康检查等全部常用操作
  • 使用 rich 渲染彩色表格输出,支持 --format=json 输出原始数据
  • 基于 Python 3.12+,使用 uv 管理依赖

安装

# 克隆仓库
git clone https://github.com/yourname/rmqadm.git
cd rmqadm

# 安装依赖(会自动创建 .venv)
uv sync

# 安装为可执行命令
uv pip install -e .

安装后直接使用 rmqadm;也可以不安装,用 uv run rmqadm 运行。

Claude Code Skill 安装

本项目提供 Claude Code Skill,让 AI 助手完全掌握 rmqadm 的配置和使用。

方法 1:使用 Makefile(推荐)

# 打包并安装 skill 到 Claude Code
make skill-install

# 仅打包(生成 rmqadm.skill 文件)
make skill-build

# 清理打包产物
make skill-clean

方法 2:通过 Claude Code 界面

  1. 打包 skill:make skill-build
  2. 打开 Claude Code → 设置 → Skills
  3. 点击 "Import Skill",选择 rmqadm.skill 文件

方法 3:手动安装

# 打包
make skill-build

# 解压到 Claude Code 技能目录
mkdir -p ~/.claude/skills
unzip rmqadm.skill -d ~/.claude/skills/rmqadm

安装后,当你向 Claude Code 提出 RabbitMQ 管理相关问题时,AI 会自动加载这个技能并提供专业指导。

配置文件

默认配置文件路径:~/.config/rabbitmq/admin.json

[
  {
    "name": "dev",
    "description": "本地开发环境",
    "host": "localhost",
    "port": 15672,
    "username": "guest",
    "password": "guest",
    "vhost": "/",
    "scheme": "http"
  },
  {
    "name": "prod",
    "description": "生产环境",
    "host": "rmq.example.com",
    "port": 443,
    "username": "admin",
    "password": "your-password",
    "vhost": "/",
    "scheme": "https"
  }
]
字段 必填 说明
name 是 集群别名,用于 -c 参数
description 否 集群描述,仅展示用
host 是 Management API 主机地址
port 是 Management API 端口(HTTP 默认 15672,HTTPS 常用 443)
username 是 登录用户名
password 是 登录密码
vhost 否 默认 Virtual Host(默认 /)
scheme 否 http 或 https(默认 http)

使用方式

全局参数

rmqadm [全局参数] <命令组> <子命令> [参数]
参数 简写 默认值 说明
--cluster -c — 集群别名(从配置文件加载)
--host -h localhost 手动指定主机
--port 15672 手动指定端口
--username -u guest 手动指定用户名
--password guest 手动指定密码
--vhost -v / 默认 vhost
--scheme -s http 协议:http 或 https
--profile -p ~/.config/rabbitmq/admin.json 自定义配置文件路径

-c 与手动参数可以混用:-c prod 加载配置后,额外传入的参数会覆盖配置文件中的值。

查看集群列表

rmqadm clusters
rmqadm clusters --format=json

连接示例

# 推荐:通过配置文件选择集群
rmqadm -c dev users list
rmqadm -c prod vhosts list

# 手动指定连接参数
rmqadm --host localhost --port 15672 --username guest --password guest users list

# 使用自定义配置文件
rmqadm -p /path/to/custom.json -c staging queues list

命令参考

所有列表类命令均支持 --format=json 参数输出原始 JSON 数据。

clusters — 集群配置

rmqadm clusters                   # 列出所有已配置的集群
rmqadm clusters --format=json     # JSON 格式(密码自动脱敏)

overview — 集群概览

rmqadm -c dev overview
rmqadm -c dev overview --format=json

users — 用户管理

rmqadm -c dev users list
rmqadm -c dev users show <name>
rmqadm -c dev users whoami
rmqadm -c dev users create <name> --password=<pwd> --tags=administrator
rmqadm -c dev users delete <name>

vhosts — Virtual Host 管理

rmqadm -c dev vhosts list
rmqadm -c dev vhosts show <name>
rmqadm -c dev vhosts create <name> --description="my vhost"
rmqadm -c dev vhosts delete <name>

queues — 队列管理

rmqadm -c dev queues list
rmqadm -c dev queues list --vhost=my-vhost
rmqadm -c dev queues show <name>
rmqadm -c dev queues show <name> --vhost=my-vhost
rmqadm -c dev queues create <name> --durable=true
rmqadm -c dev queues create <name> --queue-type=quorum --vhost=my-vhost
rmqadm -c dev queues purge <name>
rmqadm -c dev queues delete <name>

exchanges — 交换机管理

rmqadm -c dev exchanges list
rmqadm -c dev exchanges list --vhost=my-vhost
rmqadm -c dev exchanges show <name>
rmqadm -c dev exchanges create <name> --exchange-type=topic
rmqadm -c dev exchanges delete <name>

bindings — 绑定管理

rmqadm -c dev bindings list
rmqadm -c dev bindings list --vhost=my-vhost
rmqadm -c dev bindings create <exchange> <queue> --routing-key=my.key
rmqadm -c dev bindings delete <exchange> <queue> --routing-key=my.key

streams — Stream 队列管理

rmqadm -c dev streams list
rmqadm -c dev streams show <name>
rmqadm -c dev streams declare <name> --max-age=7D
rmqadm -c dev streams declare <name> --max-length-bytes=1073741824
rmqadm -c dev streams delete <name>

connections — 连接管理

rmqadm -c dev connections list
rmqadm -c dev connections show <name>
rmqadm -c dev connections close <name>
rmqadm -c dev connections close <name> --reason="maintenance"

channels — Channel 查看

rmqadm -c dev channels list
rmqadm -c dev channels show <name>

consumers — 消费者查看

rmqadm -c dev consumers list
rmqadm -c dev consumers list --vhost=my-vhost

nodes — 节点信息

rmqadm -c dev nodes list
rmqadm -c dev nodes show rabbit@hostname

permissions — 权限管理

rmqadm -c dev permissions list
rmqadm -c dev permissions show <user> --vhost=/
rmqadm -c dev permissions set <user> --vhost=/ --configure=".*" --write=".*" --read=".*"
rmqadm -c dev permissions delete <user> --vhost=/

policies — 策略管理

rmqadm -c dev policies list
rmqadm -c dev policies list --vhost=my-vhost
rmqadm -c dev policies show <name>
rmqadm -c dev policies declare <name> <pattern> <definition> --apply-to=all
# 示例:为所有队列设置 HA 镜像策略
rmqadm -c dev policies declare ha-all ".*" '{"ha-mode":"all"}' --apply-to=queues
rmqadm -c dev policies delete <name>

operator_policies — Operator 策略管理

rmqadm -c dev operator_policies list
rmqadm -c dev operator_policies declare <name> <pattern> <definition>
rmqadm -c dev operator_policies delete <name>

parameters — 运行时参数

rmqadm -c dev parameters list
rmqadm -c dev parameters list --component=federation-upstream
rmqadm -c dev parameters set <name> <component> <value>
rmqadm -c dev parameters clear <name> <component>

global_parameters — 全局参数

rmqadm -c dev global_parameters list
rmqadm -c dev global_parameters set <name> <value>
rmqadm -c dev global_parameters clear <name>

vhost_limits — VHost 资源限制

rmqadm -c dev vhost_limits list
rmqadm -c dev vhost_limits list --vhost=my-vhost
rmqadm -c dev vhost_limits set max-connections 100 --vhost=my-vhost
rmqadm -c dev vhost_limits set max-queues 500 --vhost=my-vhost
rmqadm -c dev vhost_limits delete max-connections --vhost=my-vhost

user_limits — 用户资源限制

rmqadm -c dev user_limits list
rmqadm -c dev user_limits list --username=alice
rmqadm -c dev user_limits set alice max-connections 10
rmqadm -c dev user_limits set alice max-channels 50
rmqadm -c dev user_limits delete alice max-connections

definitions — 定义导入/导出

# 导出集群全量定义(打印到终端)
rmqadm -c dev definitions export

# 导出到文件
rmqadm -c dev definitions export --file=backup.json

# 仅导出指定 vhost 的定义
rmqadm -c dev definitions export --vhost=my-vhost --file=vhost-backup.json

# 从文件导入
rmqadm -c dev definitions import_file --file=backup.json

# 导入到指定 vhost
rmqadm -c dev definitions import_file --file=vhost-backup.json --vhost=my-vhost

health_check — 健康检查

检查失败时返回非零退出码,可集成到监控脚本中。

rmqadm -c dev health_check local_alarms
rmqadm -c dev health_check cluster_wide_alarms
rmqadm -c dev health_check node_is_quorum_critical
rmqadm -c dev health_check virtual_hosts
rmqadm -c dev health_check port_listener 5672
rmqadm -c dev health_check protocol_listener amqp

feature_flags — Feature Flag 管理

rmqadm -c dev feature_flags list
rmqadm -c dev feature_flags enable <name>
rmqadm -c dev feature_flags enable_all

rebalance — 队列 Leader 重平衡

rmqadm -c dev rebalance queues
rmqadm -c dev rebalance queues --vhost=my-vhost

开发

# 安装依赖
uv sync

# 开发模式运行(���需安装)
uv run rmqadm -c dev users list

# 安装为可编辑模式
uv pip install -e .

项目结构

src/
├── rmqadm/             # Python 包源码
│   ├── cli.py              # 入口,RmqAdm 类,挂载所有命令组
│   ├── client.py           # HTTP 客户端封装
│   ├── config.py           # 配置文件加载(多集群支持)
│   ├── formatter.py        # rich 表格 / JSON 输出
│   └── commands/
│       ├── users.py
│       ├── vhosts.py
│       ├── queues.py
│       ├── exchanges.py
│       ├── bindings.py
│       ├── streams.py
│       ├── connections.py
│       ├── channels.py
│       ├── consumers.py
│       ├── nodes.py
│       ├── permissions.py
│       ├── policies.py
│       ├── operator_policies.py
│       ├── parameters.py   # parameters + global_parameters
│       ├── limits.py       # vhost_limits + user_limits
│       ├── definitions.py
│       ├── health_check.py
│       ├── feature_flags.py
│       └── rebalance.py
└── skills/             # Claude Code Skill 源码
    └── rmqadm/
        ├── SKILL.md            # Skill 主文件
        ├── references/
        │   └── commands.md     # 完整命令参考
        └── assets/
            └── admin.json      # 配置文件模板

Skill 开发

Skill 源码位于 src/skills/rmqadm/,修改后重新打包:

make skill-build
make skill-install

依赖

依赖

包 用途
fire 将 Python 类自动映射为 CLI 命令
requests HTTP API 请求
rich 终端彩色表格输出

Metadata

Release files for rmqadm 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rmqadm 0.1.0
File Size Uploaded
rmqadm-0.1.0.tar.gz 44.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rmqadm 0.1.0
File Interpreter ABI Platform
rmqadm-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 75.0 kB

Release files / rmqadm-0.1.0.tar.gz

Download URL rmqadm-0.1.0.tar.gz
Size 44.2 kB
Tags Source
SHA-256 checksum
How to use checksums
cd28802d18f986f9bc22b10d5f8043276c08700438994051c6585ea35871b7a9
BLAKE2b-256 checksum
How to use checksums
f7de8a3eb7dcf7df0477f464894778a519035f5eb6e6b243f40a021b1ba7c8f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release files / rmqadm-0.1.0-py3-none-any.whl

Download URL rmqadm-0.1.0-py3-none-any.whl
Size 30.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b5c104fa2acc5a31034d299745d840644defe9e0653d692ec3b178360f7c103d
BLAKE2b-256 checksum
How to use checksums
7928026534337c789c4e813a85eda59c7483ca4538c675f7676250773c743291
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page