Skip to main content

RabbitMQ Management CLI Tool

Project description

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 httphttps(默认 http

使用方式

全局参数

rmqadm [全局参数] <命令组> <子命令> [参数]
参数 简写 默认值 说明
--cluster -c 集群别名(从配置文件加载)
--host -h localhost 手动指定主机
--port 15672 手动指定端口
--username -u guest 手动指定用户名
--password guest 手动指定密码
--vhost -v / 默认 vhost
--scheme -s http 协议:httphttps
--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 终端彩色表格输出

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rmqadm-0.1.0.tar.gz (44.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rmqadm-0.1.0-py3-none-any.whl (30.8 kB view details)

Uploaded Python 3

File details

Details for the file rmqadm-0.1.0.tar.gz.

File metadata

  • Download URL: rmqadm-0.1.0.tar.gz
  • Upload date:
  • Size: 44.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for rmqadm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cd28802d18f986f9bc22b10d5f8043276c08700438994051c6585ea35871b7a9
MD5 e4967abc857cc6a2fe5405755e49fb6a
BLAKE2b-256 f7de8a3eb7dcf7df0477f464894778a519035f5eb6e6b243f40a021b1ba7c8f9

See more details on using hashes here.

File details

Details for the file rmqadm-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: rmqadm-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 30.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for rmqadm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b5c104fa2acc5a31034d299745d840644defe9e0653d692ec3b178360f7c103d
MD5 7a5394d3a87bebc8e233c39bac6256e5
BLAKE2b-256 7928026534337c789c4e813a85eda59c7483ca4538c675f7676250773c743291

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page