
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
RabbitMQ Exporter是一个Prometheus指标导出器,用于从RabbitMQ管理插件抓取指标并暴露给Prometheus进行监控。它是非官方插件,相比RabbitMQ官方Prometheus插件,提供了更多配置选项和指标过滤功能,同时支持旧版本RabbitMQ。
适用于需要监控RabbitMQ集群的场景,尤其适合:
从https://github.com/kbudde/rabbitmq_exporter/releases%E4%B8%8B%E8%BD%BD%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%EF%BC%8C%E9%80%9A%E8%BF%87%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E5%90%8E%E7%9B%B4%E6%8E%A5%E8%BF%90%E8%A1%8C%E3%80%82
与RabbitMQ容器共享网络
启动RabbitMQ容器(需启用管理插件):
bashdocker run -d -e RABBITMQ_NODENAME=my-rabbit --name my-rabbit -p 9419:9419 rabbitmq:3-management
启动RabbitMQ Exporter,共享RabbitMQ容器网络:
bashdocker run -d --net=container:my-rabbit kbudde/rabbitmq-exporter
访问指标:[***]
支持通过JSON配置文件或环境变量配置,配置文件默认路径为conf/rabbitmq.conf,可通过-config-file参数指定自定义路径。
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| RABBIT_URL | [***] | RabbitMQ管理插件URL(必须以http(s)://开头) |
| RABBIT_USER | guest | 管理插件用户名(需具备monitoring标签) |
| RABBIT_PASSWORD | guest | 管理插件密码 |
| RABBIT_USER_FILE | 存储用户名的文件路径(适用于Docker Secrets) | |
| RABBIT_PASSWORD_FILE | 存储密码的文件路径(适用于Docker Secrets) | |
| PUBLISH_PORT | 9419 | 导出器监听端口 |
| PUBLISH_ADDR | "" | 导出器监听地址 |
| OUTPUT_FORMAT | TTY | 日志输出格式(支持TTY和JSON) |
| LOG_LEVEL | info | 日志级别(debug/info/warning/error/fatal/panic) |
| CAFILE | ca.pem | 根证书路径(自签名证书时需要) |
| CERTFILE | client-cert.pem | 客户端证书路径 |
| KEYFILE | client-key.pem | 客户端私钥路径 |
| SKIPVERIFY | false | 是否忽略证书错误(true/0为忽略) |
| SKIP_VHOST | ^$ | 排除的虚拟主机正则表达式(先应用INCLUDE_VHOST,再应用SKIP_VHOST) |
| INCLUDE_VHOST | .* | 包含的虚拟主机正则表达式 |
| INCLUDE_QUEUES | .* | 包含的队列正则表达式 |
| SKIP_QUEUES | ^$ | 排除的队列正则表达式(先应用INCLUDE_QUEUES,再应用SKIP_QUEUES) |
| RABBIT_CAPABILITIES | bert,no_sort | RabbitMQ扩展功能(逗号分隔,支持bert/no_sort) |
| RABBIT_EXPORTERS | exchange,node,queue | 启用的指标模块(connections/shovel/federation/exchange/node/queue/memory) |
| RABBIT_TIMEOUT | 30 | 从管理插件获取数据的超时时间(秒) |
| MAX_QUEUES | 0 | 最大队列数量(0为禁用限制) |
| EXCLUDE_METRICS | 排除的指标名称(逗号分隔,如"recv_oct,recv_cnt") |
bashSKIP_QUEUES="RPC_.*" MAX_QUEUES=5000 ./rabbitmq_exporter
?sort=)避免RabbitMQ管理插件的排序开销(需RabbitMQ 3.6.8+)注意:RabbitMQ <3.6版本需禁用默认扩展功能:
bashRABBIT_CAPABILITIES=nobert ./rabbitmq_exporter
所有指标(除Golang/Prometheus自身指标外)均以rabbitmq_为前缀。
| 指标 | 描述 |
|---|---|
| up | 上次RabbitMQ抓取是否成功 |
| module_up | 上次模块抓取是否成功(标签:module) |
| module_scrape_duration_seconds | 模块抓取持续时间(标签:module) |
| exporter_build_info | 导出器构建信息(标签:version/revision/branch/build date) |
标签:cluster
| 指标 | 描述 |
|---|---|
| channels | 通道数量 |
| connections | 连接数量 |
| consumers | 消费者数量 |
| queues | 队列数量 |
| exchanges | 交换机数量 |
| queue_messages_global | 集群中就绪和未确认消息总数 |
| queue_messages_ready_global | 就绪消息数量 |
| queue_messages_unacknowledged_global | 未确认消息数量 |
| version_info | RabbitMQ版本信息(标签:rabbitmq version/erlang version/node/cluster) |
标签:cluster, vhost, queue, durable, policy, self
队列 gauge 指标
| 指标 | 描述 |
|---|---|
| queue_messages_ready | 就绪消息数量 |
| queue_messages_unacknowledged | 未确认消息数量 |
| queue_messages | 队列深度(就绪+未确认消息) |
| queue_messages_ack_total | 基本获取模式下确认的消息数量 |
| queue_messages_ready_ram | RAM中就绪消息数量 |
| queue_messages_unacknowledged_ram | RAM中未确认消息数量 |
| queue_messages_ram | RAM中消息总数 |
| queue_messages_persistent | 持久化消息数量 |
| queue_message_bytes | 消息体总大小(字节) |
| queue_message_bytes_ready | 就绪消息体大小 |
| queue_message_bytes_unacknowledged | 未确认消息体大小 |
| queue_message_bytes_ram | RAM中消息体大小 |
| queue_message_bytes_persistent | 持久化消息体大小 |
| queue_consumers | 消费者数量 |
| queue_consumer_utilisation | 队列向消费者即时投递消息的时间占比(0.0-1.0) |
| queue_memory | 队列进程占用内存(字节) |
| queue_head_message_timestamp | 队列首条消息的时间戳(仅当消息在内存中时) |
| queue_max_length_bytes | 就绪消息体大小上限 |
| queue_max_length | 就绪消息数量上限 |
| queue_idle_since_seconds | 队列进入空闲状态的时间戳(秒级Unix时间) |
| queue_reductions_total | 队列进程的reductions数量 |
| queue_state | 队列状态标记(值为1,标签:state) |
| queue_slave_nodes_len | 从节点数量 |
| queue_synchronised_slave_nodes_len | 同步的从节点数量 |
队列 counter 指标
| 指标 | 描述 |
|---|---|
| queue_disk_reads_total | 磁盘读取次数 |
| queue_disk_writes_total | 磁盘写入次数 |
| queue_messages_published_total | 发布消息总数 |
| queue_messages_confirmed_total | 确认消息总数 |
| queue_messages_delivered_total | 确认模式下投递消息总数 |
| queue_messages_delivered_noack_total | 无确认模式下投递消息总数 |
| queue_messages_get_total | 基本获取模式下确认消息总数 |
| queue_messages_get_noack_total | 基本获取模式下无确认消息总数 |
| queue_messages_redelivered_total | 重投递消息总数 |
| queue_messages_returned_total | 不可路由消息返回总数 |
标签:cluster, vhost, exchange
| 指标 | 描述 |
|---|---|
| exchange_messages_published_in_total | 交换机接收消息总数(不考虑路由) |
| exchange_messages_published_out_total | 交换机投递消息总数(考虑路由) |
标签:cluster, node, self
| 指标 | 描述 |
|---|---|
| uptime | 运行时间(毫秒) |
| running | 运行节点数量 |
| node_mem_used | 已用内存(字节) |
| node_mem_limit | 内存告警阈值(字节) |
| node_mem_alarm | 内存告警状态(1为触发) |
| node_disk_free | 可用磁盘空间(字节) |
| node_disk_free_alarm | 磁盘告警状态(1为触发) |
| node_disk_free_limit | 磁盘告警阈值(字节) |
| fd_used | 已用文件描述符数量 |
| fd_available | 可用文件描述符数量 |
| sockets_used | 已用套接字数量 |
| sockets_available | 可用套接字数量 |
| partitions | 网络分区数量(0为正常) |
标签:cluster, vhost, node, peer_host, user, self
| 指标 | 描述 |
|---|---|
| connection_channels | 通道数量 |
| connection_received_bytes | 接收字节数 |
| connection_received_packets | 接收数据包数 |
| connection_send_bytes | 发送字节数 |
| connection_send_packets | 发送数据包数 |
| connection_send_pending | 发送队列大小 |
标签:vhost, node, peer_host, user, state, self
| 指标 | 描述 |
|---|---|
| connection_status | 特定状态的连接数量 |
标签:cluster, vhost, shovel, type, self, state
| 指标 | 描述 |
|---|---|
| shovel_state | Shovel状态标记(值为1,标签:state) |
标签:cluster, node, self
| 指标 | 描述 |
|---|---|
| memory_allocated_unused_bytes | 运行时预分配但未使用的内存 |
| memory_atom_bytes | 原子占用内存 |
| memory_binary_bytes | 共享二进制数据占用内存 |
| memory_code_bytes | 代码占用内存 |
| memory_connection_channels_bytes | 连接通道占用内存 |
| memory_connection_other_bytes | 连接其他部分占用内存 |
| memory_connection_readers | 连接读取进程占用内存 |
| memory_connection_writers_bytes | 连接写入进程占用内存 |
| memory_mgmt_db_bytes | 管理数据库占用内存 |
| memory_mnesia_bytes | Mnesia数据库占用内存 |
| memory_msg_index_bytes | 消息索引占用内存 |
| memory_other_ets_bytes | 其他ETS表占用内存 |
| memory_other_proc_bytes | 其他进程占用内存 |
| memory_other_system_bytes | 其他系统内存 |
| memory_plugins_bytes | 插件占用内存 |
| memory_queue_procs_bytes | 队列主进程占用内存 |
| memory_queue_slave_procs_bytes | 队列从进程占用内存 |
| memory_reserved_unallocated_bytes | 内核预分配但未使用的内存 |
| memory_total_allocated_bytes | 总分配内存 |
| memory_total_rss_bytes | 总RSS内存 |
| memory_total_erlang_bytes | Erlang总内存 |
建议:同时使用两者以获得更全面的监控(参考https://github.com/kbudde/rabbitmq_exporter/issues/156#issuecomment-631979910%EF%BC%89
原因:默认启用了RabbitMQ 3.6.8+的扩展功能,旧版本不支持。
解决:对于RabbitMQ <3.6.8,设置环境变量:
bashRABBIT_CAPABILITIES=compat
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务