系統層面
- 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