Skip to content

イベント履歴

イベント履歴は、EMQXデプロイメントからの最近のクライアント接続、認証、およびサブスクリプションイベントを記録するトラブルシューティングツールです。接続失敗、予期しない切断、認証失敗、効果のないサブスクリプションの調査に利用できます。正確で多次元の検索には、EMQX Tablesを使用してください。

イベント履歴は、EMQX v6.1.3以降を実行しているDedicatedおよびDedicated Flexデプロイメントで利用可能です。ServerlessやBYOCデプロイメントではサポートされていません。

イベント履歴を使うタイミング

イベント履歴は、クライアントのライフサイクル中に発生するイベントの相関関係を把握するのに役立ちます。例えば、以下のような用途があります。

  • クライアントが接続に失敗した理由を調査するために、Client Connack および Authentication Completed イベントを確認する。
  • 予期しない切断の原因を調査するために、Client Disconnected イベントの理由を確認する。
  • クライアントが使用したトピックとQoSを検証するために、Session Subscribed および Session Unsubscribed イベントを確認する。
  • イベントのタイムスタンプを比較して、クライアントの接続、認証、サブスクリプション操作の順序を再構築する。

イベント履歴はデータ統合TPSを消費します。頻繁にクライアントが接続または再接続するデプロイメントは、より多くのイベントを生成し、より多くのTPSを消費します。イベント履歴を有効にする前に、デプロイメントに十分なデータ統合TPS容量があることを確認してください。

イベント履歴の有効化

イベント履歴を有効にする前に、以下を確認してください。

  • デプロイメントが稼働中であること。
  • デプロイメントがDedicatedまたはDedicated Flexであること。
  • デプロイメントがEMQX v6.1.3以降を実行していること。
  • デプロイメントに十分なデータ統合TPS容量があること。

イベント履歴を有効にする手順は以下の通りです。

  1. EMQX Cloudコンソールでデプロイメントを開きます。
  2. 左側のナビゲーションメニューで Diagnostics -> Event History をクリックします。
  3. Enable Now をクリックします。
  4. 確認ダイアログで Confirm をクリックします。

ページに Enabled ステータスが表示され、EMQXはサポートされているクライアントライフサイクルイベントの記録を開始します。追加のイベント設定は不要です。イベント履歴が有効化された後に発生したイベントのみが記録され、有効化前のイベントは遡って記録されません。

イベントの検索と確認

イベントの上限はデフォルトで100件です。クライアントや特定の種類のアクティビティに絞り込む場合はフィルターを利用してください。各クエリはデプロイメント内のすべてのEMQXノードのローカルイベントログを読み取り、最新の一致するイベントを集約します。

イベントのフィルター

以下のフィルターと結果上限が利用可能です。

フィルター一致方法上限
Client ID含む(大文字小文字区別)256文字
Username含む(大文字小文字区別)256文字
IP Address完全一致256文字
Topic含む(MQTTトピックフィルターの意味論は適用しない)256文字
Event Type完全一致リストからサポートされているイベントタイプを選択
イベント上限返される最大イベント数100(デフォルト)、5001,0005,00010,000

イベントを検索する手順:

  1. 1つ以上のフィルターを入力または選択します。すべてのフィルターを空欄にすると、すべてのサポートされているタイプの最近のイベントを検索します。
  2. 返す最大イベント数を選択します。
  3. 検索アイコンをクリックします。
  4. 返されたイベントを確認します。イベント横の展開アイコンをクリックすると詳細を確認できます。

すべてのフィルター値をクリアするにはクリアアイコンをクリックします。現在のフィルターで最新のスナップショットを取得するには更新アイコンをクリックします。

Filter and query events

結果の解釈

イベント一覧には以下の情報が表示されます。

  • Time: イベント発生時刻(秒単位の精度)とUTCオフセット。
  • Event Type: コンソール上のイベント名(例:Client ConnectedAuthentication CompletedSession Subscribed)。
  • Client ID: クライアント識別子。
  • IP Address: 利用可能な場合はクライアントのIPアドレスとポート。ポートがない場合はIPアドレスのみ表示。
  • Reason: 利用可能な場合の結果や理由。例えば認証イベントでは success、切断イベントでは internal_error のような理由が表示されます。

展開された詳細はイベントタイプによって異なります。UsernameTopicQoSConnected AtProtocol NameProtocol Versionなどが含まれます。空のフィールドやメインリストに既に表示されているフィールドは省略されます。

Inspect event details

クエリ結果はローカルページネーションを使用し、1ページあたり10件のイベントを表示します。ページを切り替えてもEMQXへの再クエリは行われません。新しい検索開始、フィルターのクリア、結果の更新を行うと新たなクエリが送信され、1ページ目に戻ります。

サポートされているイベントタイプ

Event Type リストには以下のクライアントライフサイクルイベントが含まれます。

コンソールイベントタイプ内部イベントタイプ説明
Client Connectedclient.connectedクライアントがEMQXに正常に接続した。
Client Disconnectedclient.disconnectedクライアントがEMQXから切断した。予期しない切断のトラブルシューティング時は Reason を確認する。
Client Connackclient.connackEMQXがクライアントにCONNACKパケットを送信した。
Authentication Completedclient.check_authn_completeクライアントの認証試行が完了した。結果は Reason で確認する。
Session Subscribedsession.subscribedクライアントがトピックをサブスクライブした。イベントを展開してトピックとQoSを確認できる。
Session Unsubscribedsession.unsubscribedクライアントがトピックのサブスクライブを解除した。イベントを展開してトピックとQoSを確認できる。

イベント履歴は $events/message/delivery_dropped のようなメッセージイベントは記録しません。

イベント履歴の無効化

イベント履歴を無効にするには:

  1. Event History ページを開きます。
  2. 右上の Disable をクリックします。
  3. 操作を確認します。

イベント履歴が無効化されると、EMQXは新しいイベントの記録を停止します。記録済みのイベントはすぐには削除されず、ディスクログのローテーションやEMQXノードの置き換えまでクエリ結果に表示される可能性があります。イベント履歴はいつでも再度有効化できます。

利用上の注意と制限

  • イベントは速やかにクエリしてください:イベント履歴はローカルディスクログを使用しており、固定の保持期間を保証しません。利用可能な期間はイベント量、ディスク空き容量、ログローテーションに依存します。
  • 各クエリはスナップショットとして扱う:イベント履歴はサーバー側ページネーションや時間範囲クエリをサポートしません。別々のクエリ結果は独立したスナップショットであり、連続性は保証されません。
  • 絞り込みフィルターを活用する:イベント履歴は最近のクライアント活動のトラブルシューティング向けです。正確で多次元の検索にはEMQX Tablesを使用してください。
  • 過剰なクエリを避ける:各デプロイメントは60秒間に最大30回のイベント履歴クエリをサポートします。失敗したリクエストもこの制限にカウントされます。制限を超えたリクエストは 429 Too Many Requests を返します。
  • 結果上限を守る:クエリは最大10,000件のイベントを返します。