系统层面
- CPU
- user, system, iowait & idle percentages
- MEM
- used, buffered, cached & free percentages
- Virtual Memory
- dirty page flushes, writeback volume
- Disk I/O
- operations & amount of data transferred per unit time, time to service operations
- Free disk space
- node data directory
- File descriptors
- beam.smp vs. max system limit
- TCP connections
- ESTABLISHED, CLOSE_WAIT, TIME_WAIT
- Network throughput
- bytes received, bytes sent, maximum network throughput
- Network latency
- between all RabbitMQ nodes in a cluster as well as to/from clients
Rabbitmq层面
集群监控
可以从任一节点获取集群监控数据
API:GET /api/overview
| 指标 | JSON field name |
|---|---|
| 集群名称 | cluster_name |
| 集群范围的消息速率 | message_stats |
| 连接总数 | object_totals.connections |
| channel总数 | object_totals.channels |
| 队列总数 | object_totals.queues |
| 消费者总数 | object_totals.consumers |
| 消息总数(ready+unacked) | queue_totals.messages |
| 准备交付的消息数量 | queue_totals.messages_ready |
| 未确认的消息数量 | queue_totals.messages_unacknowledged |
| 最近发布的消息数量 | message_stats.publish |
| 消息发布的速率 | message_stats.publish_details.rate |
| 最近发送给消费者的消息数量 | message_stats.deliver_get |
| 消息交付速率 | message_stats.deliver_get.rate |
节点监控
获取节点信息的API:
GET /api/nodes/{node} 返回单个节点的状态
GET /api/nodes 返回所有集群成员的统计信息
| 指标 | JSON field name |
|---|---|
| 使用的内存总量memory used | mem_used |
| 内存使用阈值 | mem_limit |
| 当内存使用超过阈值时将触发报警memory alarm | mem_alarm |
| 剩余磁盘空间阈值 | disk_free_limit |
| 当空闲磁盘空间低于配置的限制时,将触发报警 | disk_free_alarm |
| 可用文件描述符总数 | fd_total |
| 当前使用的文件描述符 | fd_used |
| 尝试打开的文件描述符数量 | io_file_handle_open_attempt_count |
| socket可用 | sockets_total |
| 已经使用的socket数量 | sockets_used |
| Message store disk reads | message_stats.disk_reads |
| Message store disk writes | message_stats.disk_writes |
| Inter-node communication links | cluster_links |
| GC runs | gc_num |
| gc回收的字节 | gc_bytes_reclaimed |
| erlang进程限制 | proc_total |
| 已经使用erlang进程 | proc_used |
| 正在运行的队列 | run_queue |
单个队列监控
API地址: GET /api/queues/{vhost}/{qname}
| 指标 | JSON field name |
|---|---|
| 内存 | memory |
| 消息总数(ready+unacknowledged) | messages |
| 准备交付的消息数量 | messages_ready |
| 未确认的消息数量 | messages_unacknowledged |
| 最近发布的消息数量 | message_stats.publish |
| 消息发布速度 | message_stats.publish_details.rate |
| 最近交付的消息数量 | message_stats.deliver_get |
| 消息交付速度 | message_stats.deliver_get.rate |
| 其他消息状态 this document | message_stats |
健康检查
集群中是否有资源报警 rabbitmq-diagnostics -q alarms
查看 rabbitmq是否正常运行(没有stop_app或pause)rabbitmq-diagnostics check_running
检查当前节点是否有报警,如果有,将以非零状态退出 rabbitmq-diagnostics check_local_alarms