系统层面
- 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