メッセージサービス(MNS)ログ機能はメッセージ操作ログを特定のロギングバケットにプッシュします。 コンソールでログをログサービスにプッシュし、そのリージョンのキュー/トピックのログ機能を有効にするように設定できます。 MNS はキュー/トピックメッセージの操作ログを特定のロギングバケットにプッシュします。 ロギングパケット

  • Logging Bucket に対応する Log Service プロジェクトまたは Logstore を削除するか、MNS に付与された権限を取り消すと、 ログを Log Service に正常にプッシュすることはできません。
  • ログの遅延時間がおよそ 5 分です。
  • Logging Bucket は、各リージョンごとに構成されています。 リージョン内のログ機能が有効になっているキュー/トピックのすべてのメッセージ操作ログは、この Logging Bucket にプッシュされます。
  • 各キュー/トピックのログ機能を個別に有効にするかどうかを設定できます。 この機能はデフォルトで無効になります。

注意事項

  • Logging Bucket に対応する Log Service プロジェクトまたは Logstore を削除するか、MNS に付与された権限を取り消すと、 ログを Log Service に正常にプッシュすることはできません。
  • ログの遅延時間がおよそ 5 分です。
  • Logging Bucket は、各リージョンごとに構成されています。 リージョン内のログ機能が有効になっているキュー/トピックのすべてのメッセージ操作ログは、この Logging Bucket にプッシュされます。
  • 各キュー/トピックのログ機能を個別に有効にするかどうかを設定できます。 この機能はデフォルトで無効になります。

前提

  1. ログサービスとメッセージサービス MNS を有効化済み。
  2. メッセージサービスログは、対応するリージョンのログサービスプロジェクトにのみプッシュすることができます。 適切なリージョンにプロジェクトと Logstore を作成したことを確実にしてください。

手順

  1. キュートピックのログ機能を有効にします。

    キューのログ機能を例にとります。

    1. MNS コンソールで、左側のメニューでキューをクリックして、リージョンを選択します。
    2. ログ収集しようとするキューの右側にある設定変更をクリックします。
    3. 表示されるキューの変更ダイアログボックスで、ログの有効化スイッチをオンにします。
    • この機能はデフォルトで無効になります。 ログが収集されるすべてのキューでこの機能が有効になっていることを確実にしてください。
    • Topic のログ機能を有効にする手順は Queue の機能と似ていますので、前の手順に従って Topic のログ機能を有効にしてください。
  2. ログクエリページに入ります。

    MNS コンソールで、左側のメニューでログ管理をクリックします。

  3. リージョンを選択します。

    ページの上側でキュー/トピックの存在するリージョンを選択します。 アクション列の設定をクリックします。

  4. 承認及びログサービスプロジェクトを確認します。
    • 初めて MNS ログプッシュを設定する場合は、クイック認証ページのプロンプトに従います。

    • 適切なプロジェクトとログストアがない場合は、ログサービスコンソールのログサービスコンソールに移動し、ページプロンプトに従ってプロジェクトとログストアを作成します。 詳細は、準備を参照してください。

  5. プッシュの構成。

    リージョンの右側の設定をクリックします。 LogServiceへのログのプッシュ タブで、対応するプロジェクトと Logstore 名を選択します。

    • 承認をキャンセルしたり、リソースアクセス管理(RAM)の役割を削除しないでください。 そうでなければ、MNS ログは正常に LogService にプッシュすることができません。
    • Logging Bucket と LogServiceプロジェクトが同一リージョンにあることを確実にしてください。
    • プロジェクトと Logstore を作成後、MNS コンソールの設定ページに戻り、更新をクリックして新しいプロジェクトと Logstore を確認します。

    構成を完了して OK をクリックします。

Logフォーマット

キューメッセージ操作ログ

キューメッセージ操作ログはメッセージの送信、メッセージの消費、メッセージの削除など、キューメッセージが操作されたときに生成されます。

一つのメッセージ操作ログには複数のフィールドが含まれています。 メッセージ操作ログに含まれるフィールドは、操作によって異なります。

ログフィールド説明

各フィールの説明は次の表の通りです。

フィールド 意味
Time 操作が行われる時刻。
MessageId この操作で処理されるメッセージの ID。
QueueName この操作に対応しているキューの名前。
AccountId この操作に対応しているキューのアカウント。
Remoteaddress この操作を実行するクライアントのアドレス。
NextVisibleTime この操作が完了した後のメッセージの次の可視時間。
ReceiptHandleInRequest この操作が実行されたときに渡された ReceiptHandle パラメータ。
ReceiptHandleInResponse この操作が完了したときに返された ReceiptHandle パラメータ。
各操作のフィールド説明

異なる操作のログには、異なるフィールドが含まれています。 次の表に、各操作に含まれるフィールドの一覧を示します。

操作 Time QueueName AccountId MessageId RemoteAddress NextVisibleTime ReceiptHandleInResponse ReceiptHandleInRequest
SendMessage/BatchSendMessage - -
PeekMessage/BatchPeekMessage - - -
ReceiveMessage/BatchReceiveMessage -
ChangeMessageVisibility
DeleteMessage/BatchDeleteMessage -

トピックメッセージ操作ログ

トピックメッセージ操作ログは、メッセージのパブリッシュやプッシュなどのトピックメッセージ操作が行われる時点で生成されます。

以下のセクションでは、トピックメッセージ操作ログの各フィールドの意味と、各操作に含まれるフィールドについて説明します。

ログフィールド説明

一つのメッセージ操作ログには複数のフィールドが含まれています。 次の表に、各フィールドの説明を示します。

フィールド 意味
Time 操作が行われる時刻。
MessageId この操作で処理されるメッセージのID。
TopicName この操作に対応するトピックの名前。
SubscriptionName この操作に対応するサブスクリプションの名前。
AccountId この操作に対応するトピックのアカウント。
RemoteAddress この操作を実行するクライアントのアドレス。
NotifyStatus MNS がユーザーにメッセージをプッシュしたときにユーザーが返したステータスコードまたは対応するエラー情報。
各操作のフィールドの説明

異なる操作のログには、異なるフィールドが含まれています。 次の表に、各操作に含まれるフィールドの一覧を示します。

操作 Time MessageId TopicName SubscriptionName AccountId RemoteAddress NotifyStatus SubscriptionName
PublishMessage - - -
Notify -
NotifyStatus

NotifyStatus はプッシュメッセージのログにのみ含まれるフィールドです。 このフィールドは、MNS がエンドポイントにメッセージをプッシュできない理由を調べるのに役立ちます。

さまざまな NotifyStatus 値に応じて、 次の表に示す推奨事項に従ってトラブルシューティングを実行できます。

エラーコード 説明 トラブルシューティング方法
2xx メッセージのプッシュに成功しました。 -
その他のHTTPステータスコード メッセージがエンドポイントにプッシュされた後、エンドポイントは 2xx 以外の状況コードを返します。 エンドポイントの処理ロジックを確認してください。
InvalidHost サブスクリプション内で指定されたエンドポイントが無効です。 curl または telnet を使用して、サブスクリプション内のエンドポイントが有効かどうかを確認してください。
ConnectTimeout サブスクリプションで指定されたエンドポイントへの接続がタイムアウトしました。 curl または telnet を使用して、サブスクリプションのエンドポイントがアクセス可能かどうかを確認してください。
ConnectFailure サブスクリプションで指定されたエンドポイントへの接続に失敗しました。 curl または telnet を使用して、サブスクリプションのエンドポイントがアクセス可能かどうかを確認してください。
UnknownError 未知のエラー。 MNS テクニカルサポートにお問い合わせください。