全部產品
Search
文件中心

ApsaraMQ for RabbitMQ:日誌管理

更新時間:Dec 27, 2024

日誌管理功能能夠將雲訊息佇列 RabbitMQ 版執行個體的訊息作業日誌自動推送至您的Simple Log Service的LogStore。當訊息發送、消費或確認過程中出現異常時,您可以在Simple Log Service查詢並分析訊息的動作記錄,進行異常診斷。

前提條件

  • 建立雲訊息佇列 RabbitMQ 版執行個體。具體操作,請參見執行個體管理

  • 開通Simple Log Service並建立Project和Logstore。具體操作,請參見資源管理概述

  • 根據控制台提示建立RabbitMQ服務關聯角色AliyunServiceRoleForAmqpLogDelivery並授權,用於將日誌推送到您的Simple Log Service中。

重要

如果您刪除Project、Logstore,或者將授予雲訊息佇列 RabbitMQ 版的許可權取消,日誌將無法正常推送。

計費說明

  • 雲訊息佇列 RabbitMQ 版

    使用日誌管理功能時,雲訊息佇列 RabbitMQ 版不收取費用。

  • Simple Log Service

    雲訊息佇列 RabbitMQ 版日誌被推送到Log Service後,Log Service會根據儲存空間、流量、請求數等進行收費。更多資訊,請參見按使用功能計費模式計費項目

日誌格式

日誌格式說明

參數

描述

Action

操作對應的要求方法。取值和描述請參見Action要求方法

Code

狀態代碼。 取值如下:

  • 200:請求成功。

  • 541:服務端內部錯誤。

  • 503:無效的命令。

  • 530:不允許的操作。

  • 404:資源不存在。

  • 406:預檢查失敗。

  • 403:許可權錯誤。

Info

請求成功時不顯示,顯示時表示錯誤狀態代碼資訊。

InstanceId

雲訊息佇列 RabbitMQ 版執行個體的ID。您可以在雲訊息佇列 RabbitMQ 版控制台的執行個體詳情頁面或概覽頁面查看。

Queue

訂閱或者訊息對應的Queue。

  • Action為PushMessage、BasicGet和DeleteMessage時,為訂閱的Queue。

  • Action為BasicReject時,為被拒絕的訊息對應的Queue。

  • Action為BasicNack時,為Nack訊息對應的Queue。

Property

訊息的屬性。取值和描述如下:

  • consumerTag:用於標識Queue的訂閱者。

  • deliveryTag:服務端標識某個Channel上的唯一訊息。

    說明

    Action為PushMessage、BasicGet、DeleteMessage或SendDlqMessage時,記錄該欄位。

RemoteAddress

發起該操作的用戶端地址。

  • Action為SendMessage時,為Producer用戶端地址。

  • Action為PushMessage時為Consumer用戶端地址:

  • Action為BasicAck時,為Consumer用戶端地址。

  • Action為DeleteMessage時,為Consumer用戶端地址。

說明

Action為SendDlqMessage時,不記錄該欄位。

ReqUid

帳號ID。

  • 如果您使用RAM使用者收發訊息,則為RAM使用者ID。

  • 如果您使用阿里雲帳號(主帳號)收發訊息,則為阿里雲帳號ID。

說明

Action為SendDlqMessage時,不記錄該欄位。

ResourceName

資源名稱。

  • messageId:使用SDK發送訊息時設定的Message ID。

  • exchange:Exchange名稱。您可以在雲訊息佇列 RabbitMQ 版控制台的Exchange管理頁面查看。

  • routingKey:您在使用SDK發送訊息時設定的Routing Key。

說明

Action為ConnectionOpen、ConnectionClose、ChannelOpen或ChannelClose時,不記錄該欄位。

VHost

Vhost名稱。您可以在雲訊息佇列 RabbitMQ 版控制台的Vhost管理頁面查看。

ConnectionId

服務端用於唯一標識Connection。

說明

Action為SendDlqMessage時,不記錄該欄位。

ChannelId

用戶端產生的Channel ID,用於標識當前Connection下的唯一Channel。

說明

Action為ConnectionOpen和ConnectionClose時,為null。

microtime

請求發生時間,單位:微秒。

_source_

該參數為Log ServiceSLS(Log Service)的保留欄位。如果您想瞭解該欄位的含義,請參見保留欄位

__tag__:__receive_time__

該參數為Log ServiceSLS的保留欄位。如果您想瞭解該欄位的含義,請參見保留欄位

__topic__

該參數為Log ServiceSLS的保留欄位。如果您想瞭解該欄位的含義,請參見保留欄位

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的x0005綁定。

SendMessage

生產者生產訊息。

PushMessage

服務端推送訊息。

BasicGet

用戶端拉取訊息。

BasicAck

ACK訊息。

BasicConsume

訂閱Queue。

BasicReject

Reject訊息。

BasicRecover

Recover訊息。

BasicNack

Nack訊息。

BasicQos

設定Consumer的流控。

QueuePurge

清空Queue中所有訊息。

DeleteMessage

用戶端調用BasicAck,服務端確認訊息被成功刪除。

SendDlqMessage

發送死信訊息。

操作步驟

雲訊息佇列 RabbitMQ 版執行個體配置LoggingBucket,將日誌推送到Simple Log Service

  1. 登入雲訊息佇列 RabbitMQ 版控制台,然後在左側導覽列選擇实例列表

  2. 实例列表頁面的頂部功能表列選擇地區,然後在執行個體列表中,單擊目標執行個體名稱。

  3. 在左側導覽列,單擊日志管理

  4. 可選:RabbitMQ服务关联角色頁面,單擊授权

    如果您已授予雲訊息佇列 RabbitMQ 版訪問Simple Log Service許可權,請跳過此步驟。

  5. 日志管理頁面,從Project 名称列表,選擇已建立的Project,從Logstore 名称列表,選擇已建立的Logstore,然後單擊启用

  6. 登入Log Service控制台,開啟日誌索引並配置日誌欄位索引。具體操作請參見建立索引

  7. 在索引欄位中手動添加__tag__:__receive_time__欄位,並設定別名為timestamp,如下圖所示。image

實踐教程