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