日志管理
日志管理功能能夠將云消息隊列 RabbitMQ 版實例的消息操作日志自動推送至您的日志服務的LogStore。當消息發送、消費或確認過程中出現異常時,您可以在日志服務查詢并分析消息的操作日志,進行異常診斷。
前提條件
創建云消息隊列 RabbitMQ 版實例。具體操作,請參見實例管理。
開通日志服務并創建Project和Logstore。具體操作,請參見資源管理概述。
根據控制臺提示創建RabbitMQ服務關聯角色
AliyunServiceRoleForAmqpLogDelivery
并授權,用于將日志推送到您的日志服務中。
如果您刪除Project、Logstore,或者將授予云消息隊列 RabbitMQ 版的權限取消,日志將無法正常推送。
計費說明
云消息隊列 RabbitMQ 版
使用日志管理功能時,云消息隊列 RabbitMQ 版不收取費用。
日志服務
云消息隊列 RabbitMQ 版日志被推送到日志服務后,日志服務會根據存儲空間、流量、請求數等進行收費。更多信息,請參見按使用功能計費模式計費項。
日志格式
日志格式說明
參數 | 描述 |
Action | 操作對應的請求方法。取值和描述請參見Action請求方法。 |
Code | 狀態碼。 取值如下:
|
Info | 請求成功時不顯示,顯示時表示錯誤狀態碼信息。 |
InstanceId | 云消息隊列 RabbitMQ 版實例的ID。您可以在云消息隊列 RabbitMQ 版控制臺的實例詳情頁面或概覽頁面查看。 |
Queue | 訂閱或者消息對應的Queue。
|
Property | 消息的屬性。取值和描述如下:
|
RemoteAddress | 發起該操作的客戶端地址。
說明 Action為SendDlqMessage時,不記錄該字段。 |
ReqUid | 賬號ID。
說明 Action為SendDlqMessage時,不記錄該字段。 |
ResourceName | 資源名稱。
說明 Action為ConnectionOpen、ConnectionClose、ChannelOpen或ChannelClose時,不記錄該字段。 |
VHost | Vhost名稱。您可以在云消息隊列 RabbitMQ 版控制臺的Vhost管理頁面查看。 |
ConnectionId | 服務端用于唯一標識Connection。 說明 Action為SendDlqMessage時,不記錄該字段。 |
ChannelId | 客戶端生成的Channel ID,用于標識當前Connection下的唯一Channel。 說明 Action為ConnectionOpen和ConnectionClose時,為null。 |
microtime | 請求發生時間,單位:微秒。 |
_source_ | 該參數為日志服務SLS(Log Service)的保留字段。如果您想了解該字段的含義,請參見保留字段。 |
__tag__:__receive_time__ | 該參數為日志服務SLS的保留字段。如果您想了解該字段的含義,請參見保留字段。 |
__topic__ | 該參數為日志服務SLS的保留字段。如果您想了解該字段的含義,請參見保留字段。 |
Action請求方法
請求方法 | 說明 |
ConnectionOpen | 開啟連接。 |
ConnectionClose | 關閉連接。 |
ChannelOpen | 開啟Channel。 |
ChannelClose | 關閉Channel。 |
QueueDeclare | 創建Queue。 |
QueueDelete | 刪除Queue。 |
ExchangeDeclare | 創建Exchange。 |
ExchangeDelete | 刪除Exchange。 |
ExchangeBind | 綁定路由到Exchange。 |
ExchangeUnBind | 解除源Exchange到目標Exchange的綁定。 |
QueueBind | 綁定路由到Queue。 |
QueueUnbind | 解除源Exchange到目標Queue的 |
SendMessage | 生產者生產消息。 |
PushMessage | 服務端推送消息。 |
BasicGet | 客戶端拉取消息。 |
BasicAck | ACK消息。 |
BasicConsume | 訂閱Queue。 |
BasicReject | Reject消息。 |
BasicRecover | Recover消息。 |
BasicNack | Nack消息。 |
BasicQos | 設置Consumer的流控。 |
QueuePurge | 清空Queue中所有消息。 |
DeleteMessage | 客戶端調用BasicAck,服務端確認消息被成功刪除。 |
SendDlqMessage | 發送死信消息。 |
操作步驟
為云消息隊列 RabbitMQ 版實例配置LoggingBucket,將日志推送到日志服務。
登錄云消息隊列 RabbitMQ 版控制臺,然后在左側導航欄選擇實例列表。
在實例列表頁面的頂部菜單欄選擇地域,然后在實例列表中,單擊目標實例名稱。
在左側導航欄,單擊日志管理。
可選:在RabbitMQ服務關聯角色頁面,單擊授權。
如果您已授予云消息隊列 RabbitMQ 版訪問日志服務權限,請跳過此步驟。
在日志管理頁面,從Project 名稱列表,選擇已創建的Project,從Logstore 名稱列表,選擇已創建的Logstore,然后單擊啟用。
在索引字段中手動添加
__tag__:__receive_time__
字段,并設置別名為timestamp,如下圖所示。