ログ管理機能は、ApsaraMQ for RabbitMQ インスタンスの操作ログを Simple Log Service の Logstore に自動的にプッシュします。メッセージの送信、消費、または確認時に例外が発生した場合、Simple Log Service で操作ログをクエリおよび分析して、問題を診断できます。
前提条件
ApsaraMQ for RabbitMQ インスタンスを作成します。詳細については、「インスタンス管理」をご参照ください。
Simple Log Service をアクティブ化し、プロジェクトと Logstore を作成します。詳細については、「リソース階層」をご参照ください。
コンソールでのプロンプトに従って、
AliyunServiceRoleForAmqpLogDeliveryサービスリンクロールを作成して承認し、ログを Simple Log Service にプッシュします。
プロジェクトまたは Logstore を削除したり、ApsaraMQ for RabbitMQ に付与された権限を取り消したりすると、ログはプッシュできなくなります。
課金
ApsaraMQ for RabbitMQ
ApsaraMQ for RabbitMQ はログ管理機能に対して課金しません。
Simple Log Service
ApsaraMQ for RabbitMQ からのログが Simple Log Service にプッシュされると、ストレージ容量、トラフィック、およびリクエスト数に基づいて Simple Log Service によって課金されます。詳細については、「機能別の課金項目」をご参照ください。
ログ形式
ログ形式の説明
パラメーター | 説明 |
Action | 操作のリクエストメソッド。値と説明の詳細については、「Action リクエストメソッド」をご参照ください。 |
Code | 状態コード。有効な値:
|
Info | リクエストが成功した場合、このパラメーターは返されません。リクエストが失敗した場合、このパラメーターはエラーに関する情報を提供します。 |
InstanceId | ApsaraMQ for RabbitMQ インスタンスの ID。ApsaraMQ for RabbitMQ コンソールの [インスタンス詳細] または [概要] ページでインスタンス ID を表示できます。 |
Queue | サブスクリプションまたはメッセージに対応するキュー。
|
Property | メッセージのプロパティ。次のプロパティを使用できます:
|
RemoteAddress | 操作を開始したクライアントのアドレス。
説明 このフィールドは、Action が SendDlqMessage の場合は記録されません。 |
ReqUid | アカウント ID。
説明 このフィールドは、Action が SendDlqMessage の場合は記録されません。 |
ResourceName | リソースの名前。
説明 このフィールドは、Action が ConnectionOpen、ConnectionClose、ChannelOpen、または ChannelClose の場合は記録されません。 |
VHost | vhost の名前。ApsaraMQ for RabbitMQ コンソールの [Vhost 管理] ページで vhost 名を表示できます。 |
ConnectionId | サーバーによって割り当てられた、接続の一意の識別子。 説明 このフィールドは、Action が SendDlqMessage の場合は記録されません。 |
ChannelId | 現在の接続内でチャネルを一意に識別するためにクライアントによって生成されたチャネル ID。 説明 Action が ConnectionOpen または ConnectionClose の場合、値は null です。 |
microtime | リクエストが発生した時刻 (マイクロ秒単位)。 |
_source_ | これは Simple Log Service (SLS) の予約済みフィールドです。詳細については、「予約済みフィールド」をご参照ください。 |
__tag__:__receive_time__ | これは SLS の予約済みフィールドです。詳細については、「予約済みフィールド」をご参照ください。 |
__topic__ | これは SLS の予約済みフィールドです。詳細については、「予約済みフィールド」をご参照ください。 |
Action リクエストメソッド
リクエストメソッド | 説明 |
ConnectionOpen | 接続を開きます。 |
ConnectionClose | 接続を閉じます。 |
ChannelOpen | チャネルを開きます。 |
ChannelClose | チャネルを閉じます。 |
QueueDeclare | キューを作成します。 |
QueueDelete | キューを削除します。 |
ExchangeDeclare | exchange を作成します。 |
ExchangeDelete | exchange を削除します。 |
ExchangeBind | ルートを exchange にバインドします。 |
ExchangeUnBind | ソース exchange を宛先 exchange からアンバインドします。 |
QueueBind | ルートをキューにバインドします。 |
QueueUnbind | ソース exchange を宛先キューからアンバインドします。削除するバインディングには、コード |
SendMessage | プロデューサーがメッセージを送信します。 |
PushMessage | サーバーがメッセージをプッシュします。 |
BasicGet | クライアントがメッセージをプルします。 |
BasicAck | メッセージを確認応答します。 |
BasicConsume | キューにサブスクライブします。 |
BasicReject | メッセージを拒否します。 |
BasicRecover | メッセージの回復。 |
BasicNack | NACK メッセージ。 |
BasicQos | コンシューマーのフロー制御を設定します。 |
QueuePurge | キューからすべてのメッセージを削除します。 |
DeleteMessage | サーバーは、クライアントから Basic.Ack を受信した後にメッセージを削除します。 |
SendDlqMessage | メッセージをデッドレターキューに送信します。 |
手順
ApsaraMQ for RabbitMQ インスタンスを設定して、ログを Simple Log Service にプッシュします。
ApsaraMQ for RabbitMQ コンソールにログインします。左側のナビゲーションウィンドウで、インスタンスリスト をクリックします。
インスタンスリスト ページのトップナビゲーションバーで、管理するインスタンスが存在するリージョンを選択します。次に、インスタンスリストで、管理するインスタンスの名前をクリックします。
左側のナビゲーションウィンドウで、ログ管理 をクリックします。
[マイリソース] カードで、権限付与 をクリックします。
すでに ApsaraMQ for RabbitMQ に Simple Log Service へのアクセスを許可している場合は、このステップをスキップできます。
ログ管理 ページで、プロジェクト名 リストから作成したプロジェクトを選択し、ログストア名 リストから作成した Logstore を選択してから、有効化 をクリックします。
Simple Log Service コンソールにログインし、インデックスを有効にして、インデックスフィールドを設定します。詳細については、「インデックスの作成」をご参照ください。
__tag__:__receive_time__フィールドを手動で追加し、次の図に示すように、そのエイリアスを timestamp に設定します。