すべてのプロダクト
Search
ドキュメントセンター

Simple Message Queue (formerly MNS):ログ管理

最終更新日:Jun 03, 2026

Simple Message Queue (SMQ) のログ管理機能は、メッセージリクエストログを Simple Log Service (SLS) にプッシュします。これにより、SLS でリクエストログをクエリして分析し、本番環境の問題をトラブルシューティングできます。

ユースケース

メッセージの送受信に関する一般的な問題:

  • メッセージはキューに正常に送信されましたが、コンシューマークライアントが受信できません。メッセージはどこに行ったのでしょうか?

  • 特定のメッセージを消費したのは誰ですか? 何回消費されましたか?

  • コンシューマークライアントがクラッシュしました。消費に失敗したメッセージは、いつ再度消費できるようになりますか?

  • メッセージがトピックに発行されましたが、長時間経ってもエンドポイントが受信できません。遅延の原因は何ですか?

SMQ のログ管理は、これらの問題に対応します:

  • SLS にログをプッシュし、コンソールで完全なメッセージトレースを表示できます。

  • 公式サイトで提供されているクエリツールを使用できます。パラメーターを指定して、メッセージ処理ログを表示できます。

課金

  • SMQ のログ管理機能に追加料金はかかりません。

  • SMQ がログを SLS にプッシュすると、 SLS はストレージスペース、トラフィック、およびリクエスト数に基づいて課金します。詳細は課金概要をご参照ください。

キューログのフォーマット

キューメッセージのオペレーション (送信、消費、削除) は、ログエントリを生成します。含まれるフィールドは、オペレーションによって異なります。

  • ログフィールド

    キューログエントリには、次のフィールドが含まれる場合があります。

    フィールド

    説明

    Time

    オペレーションのタイムスタンプ。

    MessageId

    一意のメッセージ ID。

    QueueName

    対象キュー名。

    AccountId

    キュー所有者のアカウント ID。

    RemoteAddress

    クライアントの IP アドレス。

    NextVisibleTime

    メッセージが再び可視になる時刻。

    ReceiptHandleInRequest

    クライアントから提供された ReceiptHandle

    ReceiptHandleInResponse

    クライアントに返される ReceiptHandle

    ProcessTime

    オペレーションの処理時間。

    RequestId

    リクエスト ID。

    Action

    アクション。例:DeleteMessageSendMessage

  • オペレーション別のフィールド

    次の表は、各オペレーションに含まれるフィールドを示しています。

    オペレーション

    Time

    QueueName

    AccountId

    MessageId

    RemoteAddress

    NextVisibleTime

    ReceiptHandleInResponse

    ReceiptHandleInRequest

    SendMessage/BatchSendMessage

    あり

    あり

    あり

    あり

    あり

    あり

    なし

    なし

    PeekMessage/BatchPeekMessage

    あり

    あり

    あり

    あり

    あり

    なし

    なし

    なし

    ReceiveMessage/BatchReceiveMessage

    あり

    あり

    あり

    あり

    あり

    あり

    あり

    なし

    ChangeMessageVisibility

    あり

    あり

    あり

    あり

    あり

    あり

    あり

    あり

    DeleteMessage/BatchDeleteMessage

    あり

    あり

    あり

    あり

    あり

    あり

    なし

    あり

トピックログのフォーマット

トピックのメッセージオペレーション (パブリッシュとプッシュ) は、ログエントリを生成します。含まれるフィールドは、オペレーションによって異なります。

  • ログ フィールド

    トピック ログエントリには、次のフィールドが含まれる場合があります。

    フィールド

    説明

    Time

    オペレーションのタイムスタンプ。

    MessageId

    一意のメッセージ ID。

    TopicName

    対象トピック名。

    SubscriptionName

    サブスクリプション名。

    AccountId

    トピック所有者のアカウント ID。

    RemoteAddress

    クライアント IP アドレス。

    通知ステータス

    SMQ がメッセージをプッシュする際に、エンドポイントから返されたステータスコードまたはエラー。

    ProcessTime

    オペレーションの処理時間。

    MessageTag

    メッセージタグ。

    RequestId

    リクエスト ID。

    Action

    PublishMessageNotify などのアクション。

  • オペレーション別フィールド

    次の表に、各オペレーションに含まれるフィールドを示します。

    オペレーション

    Time

    MessageId

    TopicName

    SubscriptionName

    AccountId

    RemoteAddress

    通知ステータス

    MessageTag

    PublishMessage

    Yes

    Yes

    Yes

    No

    Yes

    Yes

    No

    No

    Notify

    Yes

    Yes

    Yes

    Yes

    Yes

    No

    Yes

    Yes

  • 通知ステータス

    プッシュ ログの通知ステータス フィールドは、SMQ がメッセージの配信に失敗した理由を示します。次の値に基づいてトラブルシューティングしてください。

    エラーコード

    説明

    推奨アクション

    2xx

    メッセージは正常にプッシュされました。

    なし。

    Other HTTP status codes

    エンドポイントが 2xx 以外のステータスコードを返しました。

    エンドポイントの処理ロジックを確認してください。

    InvalidHost

    サブスクリプションのエンドポイントが無効です。

    curl または telnet を使用して、サブスクリプションのエンドポイントが有効でアクセス可能であることを確認してください。

    ConnectTimeout

    サブスクリプションのエンドポイントへの接続がタイムアウトしました。

    curl または telnet を使用して、サブスクリプションのエンドポイントにアクセスできることを確認してください。

    ConnectFailure

    サブスクリプションのエンドポイントへの接続に失敗しました。

    curl または telnet を使用して、サブスクリプションのエンドポイントにアクセスできることを確認してください。

    UnknownError

    不明なエラーが発生しました。

    SMQ のテクニカルサポートにお問い合わせください。

ログの操作

ログ管理を使用する前に、次のことを確認してください。

  • SLS でプロジェクトと Logstore を作成しておきます。 詳細については、「プロジェクトの管理」および「Logstore の作成」をご参照ください。

    SMQ サービスの操作ログは、同じリージョン内の SLS プロジェクトにのみプッシュできます。

  • AliyunMNSLoggingRole RAM ロールを使用して、ログをエクスポートするための権限を SMQ に付与しておきます。

    クラウドリソースアクセス権限付与」をクリックし、画面の指示に従って権限付与を完了してください。

    警告

    権限付与を取り消したり、RAM ロールを削除したりしないでください。 そうしないと、SMQ のログを SLS にプッシュできなくなります。

ロギングの有効化または無効化

キューロギングの有効化または無効化

  1. MNS コンソールにログインします。
  2. 左側のナビゲーションペインで、キュー をクリックします。

  3. トップメニューバーで、リージョンを選択します。

  4. キュー ページで、対象のキューを探します。 操作 列で、image > [Edit] を選択します。

  5. [Edit Queue Parameters] パネルで、[Enable Logging] スイッチをオンまたはオフにします。

    キュー ページで、対象のキューの [Logging] 列に「有効」または「無効」が表示されます。

トピックロギングの有効化または無効化

  1. MNS コンソールにログインします。
  2. 左側のナビゲーションペインで、トピック をクリックします。

  3. トップメニューバーで、リージョンを選択します。

  4. トピック ページで、対象のトピックを見つけ、操作 列の [Edit] をクリックします。

  5. [Edit Topic Parameters] パネルで、[Enable Logging] スイッチをオンまたはオフにします。

    トピック ページで、対象のトピックの [Logging] 列に「有効」または「無効」が表示されます。

SLS へのログのプッシュ

手順

  1. MNS コンソールにログインします。
  2. 左側のナビゲーションペインで、ログ管理 をクリックします。

  3. トップメニューバーで、リージョンを選択します。

  4. ログ管理 ページの [Select Target] タブで、Simple Log Service (SLS) を選択します。

  5. ターゲットの設定 タブで、[Project Name][Logstore Name] を選択し、[Enable] をクリックします。

    ログ管理 ページに、設定されたプロジェクトと Logstore が表示されます。

ログの表示

手順

  1. Log Serviceコンソールにログインします。

  2. [プロジェクト] セクションで、管理するプロジェクトをクリックします。

  3. [Log Storage > Logstores] タブで、ターゲットの Logstore をクリックします。

    image

  4. クエリステートメントを入力し、[Last 15 Minutes] をクリックして時間範囲を設定します。詳細については、「検索と分析のクイックスタート」をご参照ください。

ログ分析の例

キューメッセージトレースのクエリ

キューメッセージをトレースするには、キュー名とメッセージ ID を使用してクエリします: $QueueName and $MessageId。例: log and EED287A265726135146E6A9CADC8XXXX

結果には、送信から受信までのメッセージライフサイクルが表示されます。

image

トピックメッセージトレースのクエリ

トピックメッセージをトレースするには、トピック名とメッセージ ID を使用してクエリします: $TopicName and $MessageId。例: logtest and 8798453B65727FC6433E6AB4F746XXXX

結果には、パブリッシュから通知までのメッセージライフサイクルが表示されます。

image

送信済みキューメッセージのクエリ

キューに送信されたメッセージをクエリするには、キュー名と送信オペレーションを使用します: $QueueName and (SendMessage or BatchSendMessage)。例: log and (SendMessage or BatchSendMessage)

次の結果は、指定された時間範囲内にプロデューサーが log キューに 3 つのメッセージを送信したことを示します。View queue message send volume

パブリッシュ済みトピックメッセージのクエリ

トピックにパブリッシュされたメッセージをクエリするには、トピック名とパブリッシュオペレーションを使用します: $TopicName and PublishMessage。例: logtest and PublishMessage

次のクエリ結果は、指定された時間範囲内にプロデューサーから logtest トピックに 3 つのメッセージがパブリッシュされたことを示します。View topic message publish volume

コンシューム済みキューメッセージのクエリ

キューからコンシュームされたメッセージをクエリするには、キュー名とコンシュームオペレーションを使用します: $QueueName and (ReceiveMessage or BatchReceiveMessage)。例: log and (ReceiveMessage or BatchReceiveMessage)

次のクエリ結果は、指定された時間範囲内に log キューから 12 個のメッセージがコンシュームされたことを示します。View queue message consume volume

削除済みキューメッセージのクエリ

キューから削除されたメッセージをクエリするには、キュー名と削除オペレーションを使用します: $QueueName and (DeleteMessage or BatchDeleteMessage)。例: log and (DeleteMessage or BatchDeleteMessage)

次のクエリ結果は、指定された時間範囲内に log キューから 61 個のメッセージが削除されたことを示します。View queue message delete volume

クライアント別メッセージのクエリ

特定のクライアントが処理したメッセージをクエリするには、クライアントの IP アドレスを使用します: $ClientIP。例: 10.10.10.0

オペレーションタイプでフィルターするには、キーワードを組み合わせます。例: $ClientIP and (SendMessage or BatchSendMessage)

次のクエリ結果は、指定された時間範囲内にクライアントが 66 個のメッセージを処理したことを示します。View client message processing volume