Alibaba Cloud Elasticsearch にはログクエリ機能が備わっており、キーワードおよび時間範囲でログを検索できます。これにより、クラスターの問題を迅速に特定し、運用とメンテナンスを簡素化できます。本トピックでは、ログのクエリ方法と利用可能なログタイプについて説明します。
制限事項
-
アクセスログ:この機能は、バージョン 6.7.0(マイナーエンジンバージョン ≥ 1.0.2)またはバージョン 7.10 以降で実行されている Elasticsearch インスタンスでのみ利用可能です。
-
監査ログ:以下のリージョンでバージョン 7.x 以降を実行しているインスタンスの場合にのみ、コンソールで監査ログを表示できます。
国または地域
リージョン
中国
中国 (北京)、中国 (杭州)、中国 (上海)、中国 (張家口)
アジア太平洋
シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、日本 (東京)
ヨーロッパおよびアメリカ
米国 (バージニア)、米国 (シリコンバレー)、ドイツ (フランクフルト)、イギリス (ロンドン)
操作手順
Alibaba Cloud Elasticsearch コンソール にログインします。
左側のナビゲーションメニューで、Elasticsearch クラスター を選択します。
対象のクラスターに移動します。
上部のナビゲーションバーで、クラスターが属するリソースグループとクラスターが配置されているリージョンを選択します。
Elasticsearch クラスターページで、対象のクラスターを見つけ、その ID をクリックします。
-
左側のナビゲーションウィンドウで、ログをクリックして、クラスターのランタイムログを表示します。
Alibaba Cloud Elasticsearch は、次のログタイプをサポートしています:メインログ、検索スローログ、インデックススローログ、GC ログ、ES アクセスログおよび監査ログ。以下の表に、これらのログタイプとそのユースケースを示します。詳細については、「ログの詳細」をご参照ください。
ログタイプ
説明
ユースケース
インスタンスログ
クラスターのヘルスステータスや、インデックスのクエリおよび書き込みに関するログを記録します。たとえば、書き込みログには、インデックス作成、マッピング更新、書き込みキューの過負荷などのイベントが含まれます。クエリログには、クエリキューのステータスやクエリ例外などのイベントが含まれます。
メインログを使用して、ノードのランタイムステータス、クエリおよび書き込みアクティビティ、ノード接続性、Full GC イベント、インデックスの作成または削除、クラスターレベルのクエリエラーを確認します。
重要クライアント側で問題が発生した場合は、まずメインログと「クラスターモニタリング」を確認し、クラスター内のパフォーマンスボトルネックや構成上の問題を除外してください。
スロー検索ログ
スロークエリを記録します。クエリの実行時間が指定されたしきい値を超えると、その情報がログに記録されます。スロークエリのしきい値は、シナリオ固有の設定テンプレートのインデックステンプレートに最適なデフォルト値として事前設定されています。ユーザーはテンプレートを適用するだけで済みます。詳細については、「インデックステンプレートの構成」をご参照ください。
クエリの実行時間が予想よりも長くなる場合は、検索スローログを確認して調査します。
スロークエリはクラスターリソースをより多く消費します。大量のスローログが見られる場合は、クラスターリソースと負荷を確認してボトルネックを特定し、その後、対応するリソースを拡張するか、aliyun-qos プラグインを使用してレート制限を適用し、クラスターの安定性を確保します。
スローインデックスログ
スローな書き込み操作を記録します。書き込み操作の実行時間が指定されたしきい値を超えると、その情報がログに記録されます。スロー書き込みのしきい値は、シナリオ固有の設定テンプレートのインデックステンプレートに最適なデフォルト値として事前設定されています。ユーザーはテンプレートを適用するだけで済みます。詳細については、「インデックステンプレートの構成」をご参照ください。
書き込み操作の実行時間が予想よりも長くなる場合は、インデックススローログを確認して調査します。
スローな書き込み操作はクラスターリソースをより多く消費します。大量のスローログが見られる場合は、クラスターリソースと負荷を確認してボトルネックを特定し、その後、対応するリソースを拡張するか、aliyun-qos プラグインを使用してレート制限を適用し、クラスターの安定性を確保します。
GC ログ
JVM ヒープメモリ使用量によってトリガーされたガベージコレクションイベントを記録します。GC ログには、Old GC、CMS GC、Full GC、Minor GC など、さまざまなコレクションメカニズムに関する詳細情報が含まれます。
クラスターでパフォーマンスボトルネックが発生した場合は、GC ログを確認して、詳細なコレクション情報や長時間実行される/頻繁に発生する GC イベントを調べます。このようなイベントが存在する場合は、クラスターリソースを拡張するか、aliyun-qos プラグインを使用してレート制限を適用し、クラスターの安定性を確保します。
重要デフォルトでは、Alibaba Cloud Elasticsearch クラスターは CMS ガベージコレクターを使用します。32 GB 以上のメモリを搭載したデータノードでは、G1 ガベージコレクターを使用して GC 効率を向上させることを推奨します。詳細については、「ガベージコレクターの構成」をご参照ください。
アクセスログ
クラスターのアクセスログを記録します。これらのログには、Elasticsearch クラスターが受信した
restSearchAction関連リクエストの詳細(URI、本文サイズ、リクエスト時刻など)が表示されます。重要-
バージョン 6.7.0(マイナーエンジンバージョン ≥ 1.0.2)またはバージョン 7.10 以降を実行しているインスタンスの場合にのみ、コンソールでアクセスログを表示できます。
-
ES アクセスログは、SQL クエリ、マルチサーチクエリ、スクロールクエリ、および一部の Kibana 可視化ツールによってトリガーされるクエリのログをサポートしていません。
-
クエリおよび書き込みリクエストに関するより包括的な情報を取得するには、監査ログを有効にしてください。詳細については、「監査ログ収集の構成」をご参照ください。
アクセスログを使用して、どのクライアントが Elasticsearch クラスターにクエリリクエストを送信しているかを特定します。
監査ログ
X-Pack Security 監査機能に基づき、Elasticsearch インスタンス内のセキュリティ関連イベントを記録します。作成、削除、更新、クエリ操作のほか、ユーザー認証の成功・失敗、権限変更などのイベントがログに記録されます。
重要-
監査ログは、「制限事項」に記載されているリージョンでバージョン 7.x 以降を実行しているインスタンスの場合にのみ、コンソールで表示できます。その他のインスタンスでは、YML 構成で監査ログを有効にする必要があります。有効にすると、監査ログは現在の Elasticsearch クラスター内のインデックスに書き込まれます。Kibana コンソールで .security_audit_log-* で始まるインデックスをクエリすることで、監査ログを表示できます。詳細については、「YML パラメーターの構成」をご参照ください。
-
コンソールで監査ログを表示するには、まず ログ設定をクリックして、監査ログ収集を有効にする必要があります。
-
デフォルトでは、次のイベントタイプが収集されます:access_denied, anonymous_access_denied, authentication_failed, connection_denied, tampered_request, run_as_denied, run_as_granted。収集するイベントタイプを変更するには、クラスターの YML ファイル内の
xpack.security.audit.logfile.events.includeパラメーターを修正します。詳細については、「監査ログ収集の構成」をご参照ください。
監査ログを使用して、ユーザー認証の成功および失敗をレビューしたり、認証失敗および接続拒否をトラブルシューティングしたり、データアクセスイベントをモニタリングしたり、データアクセス権限やユーザーのセキュリティ構成の変更など、不審なアクティビティを調査したりできます。
-
-
ログページで、検索ボックスにクエリ条件を入力し、開始時刻と終了時刻を選択して、検索をクリックします。
Alibaba Cloud Elasticsearch は、クエリに基づいてログクエリページにログ結果を返し、表示します。
-
過去 7 日間の連続したログをクエリできます。デフォルトでは、ログは時系列の逆順で表示されます。
-
クエリ構文は Lucene に基づいています。詳細については、「Query string syntax」をご参照ください。
-
クエリ内の
AND演算子は大文字である必要があります。 -
終了時刻を指定しない場合、現在時刻がデフォルトになります。開始時刻を指定しない場合、終了時刻の 1 時間前がデフォルトになります。
たとえば、content にキーワード health を含み、level が info で、host が 172.16.xx.xx のメインログをクエリするには、次のクエリを使用します:
host:172.16.xx.xx AND content:health AND level:info。重要-
1 回のクエリで返されるログエントリの最大数は 10,000 件です。
返された 10,000 件のエントリに必要な情報が含まれていない場合は、クエリの時間範囲を狭めてください。
-
1 つのログエントリに表示できる最大文字数は 10,000 文字です。
-
ログの詳細
メインログ
メインログには、クラスターのランタイムログ(生成時刻、ソースノードの IP アドレス、ログ内容など)が表示されます。
|
パラメーター |
説明 |
|
時間 |
ログが生成された時刻。 |
|
ノード IP |
ログを生成したノードの IP アドレス。 |
|
コンテンツ |
ログの詳細。主に level、host、time、および content で構成されます。
|
スローログ
スローログはデフォルトで有効になっており、指定された時間しきい値を超えるインデックス(インデックススローログ)およびクエリ(検索スローログ)操作のログを表示します。これらのログをクエリして、クラスター負荷の不均等、読み取り/書き込み例外、データ処理の遅延などの問題を分析します。
デフォルトでは、Alibaba Cloud Elasticsearch のスローログは 5~10 秒かかる読み取りおよび書き込み操作を記録しますが、このしきい値はトラブルシューティングに適さないほど高すぎる可能性があります。インスタンス作成後、次のいずれかの方法でログ記録のしきい値を下げ、より多くのログデータをキャプチャできます。
-
クラスター作成後、シナリオ固有の設定テンプレートがデフォルトで有効になり、クラスターに自動的に適用されます。その中のインデックステンプレートの構成でスローログ設定が定義されています。汎用シナリオのデフォルトスローログ構成は次のとおりです。
"settings": { "index": { "search": { "slowlog": { "level": "info", "threshold": { "fetch": { "warn": "200ms", "trace": "50ms", "debug": "80ms", "info": "100ms" }, "query": { "warn": "500ms", "trace": "50ms", "debug": "100ms", "info": "200ms" } } } }, "refresh_interval": "10s", "unassigned": { "node_left": { "delayed_timeout": "5m" } }, "indexing": { "slowlog": { "level": "info", "threshold": { "index": { "warn": "200ms", "trace": "20ms", "debug": "50ms", "info": "100ms" } }, "source": "1000" } } } }説明シナリオが なし の場合、テンプレート構成を有効にして送信し、クラスターにデフォルトのスローログ設定を適用する必要があります。詳細については、「シナリオ固有の設定テンプレートの変更」をご参照ください。
-
インスタンスの Kibana コンソールにログインし、次のコマンドを実行してスローログ構成を変更します。詳細については、「Kibana コンソールへのログイン」をご参照ください。
PUT _settings{ "index.indexing.slowlog.threshold.index.warn" : "200ms", "index.indexing.slowlog.threshold.index.trace" : "20ms", "index.indexing.slowlog.threshold.index.debug" : "50ms", "index.indexing.slowlog.threshold.index.info" : "100ms", "index.search.slowlog.threshold.fetch.warn" : "200ms", "index.search.slowlog.threshold.fetch.trace" : "50ms", "index.search.slowlog.threshold.fetch.debug" : "80ms", "index.search.slowlog.threshold.fetch.info" : "100ms", "index.search.slowlog.threshold.query.warn" : "500ms", "index.search.slowlog.threshold.query.trace" : "50ms", "index.search.slowlog.threshold.query.debug" : "100ms", "index.search.slowlog.threshold.query.info" : "200ms"}
この変更を行うと、構成されたしきい値を超える読み取りまたは書き込みタスクのログが スローログ タブに表示されます。
スローログページには、時間、[ノードIP]、およびコンテンツの3つの列を持つテーブル形式でログレコードが表示されます。コンテンツ列には、構造化されたキーと値のフォーマットでログの詳細が表示されます。たとえば、インデックス作成スローログレコードには[index.indexing.slowlog.index]、インデックス名 .monitoring-kibana-6-2021.10.09、持続時間 took[177.9ms]、レベル info が表示されます。
GC ログ
GC ログはデフォルトで有効になっており、生成時刻、ソースノードの IP アドレス、ログ内容を含みます。詳細については、「メインログ」をご参照ください。
ログビューには、次の内容を持つ 2 つの GC ログレコードが表示されます(いずれも 2021-10-09T11:17:18、ノード IP 10.15.xxx)。
-
GC(173) Pause Young (Allocation Failure) 478M->194M(1417M) 9.591ms:ヤング GC ポーズ。ヒープメモリが 478M から 194M に回収され、持続時間は 9.591ms。 -
GC(173) ParNew: 301481K->10599K(335040K):ParNew コレクターがヤングジェネレーションを 301481K から 10599K に回収。
ES アクセスログ
アクセスログには、Elasticsearch クラスターが受信した restSearchAction 関連リクエストの詳細(クラスターノードおよび IP アドレス、本文サイズ、リクエスト内容、リクエスト時刻、クライアント IP アドレス、URI など)が表示されます。
-
バージョン 6.7.0(マイナーエンジンバージョン ≥ 1.0.2)またはバージョン 7.10 以降を実行しているインスタンスの場合にのみ、コンソールでアクセスログを表示できます。
-
クエリおよび書き込みリクエストに関するより包括的な情報を取得するには、監査ログを有効にしてください。詳細については、「監査ログ収集の構成」をご参照ください。
監査ログ
監査ログは、「制限事項」に記載されているリージョンでバージョン 7.x 以降を実行しているインスタンスの場合にのみ、コンソールで表示できます。
X-Pack Security 監査機能に基づき、監査ログには Elasticsearch クラスター内のセキュリティ関連イベント(ユーザー認証の成功および失敗、権限変更、データアクセス権限付与、作成・削除・更新・クエリ操作など)が記録されます。監査ログを使用すると、クラスター内のユーザー認証レコードおよび操作動作を追跡できます。この機能はデフォルトで無効になっています。監査ログを有効にして表示するには、次の手順を実行します。
-
ログページで、右側のログ設定をクリックします。
-
ログ設定ダイアログボックスで、監査ログの収集スイッチをオンにします。
重要-
監査ログの収集を有効にすると、現在のページでクラスターの監査ログをクエリできるようになります。収集するイベントタイプを変更するには、クラスター構成に移動して
xpack.security.audit.logfile.events.includeパラメーターを修正します。詳細については、「監査ログ収集の構成」をご参照ください。 -
監査ログの収集の有効化または無効化により、クラスターが再起動されます。Alibaba Cloud Elasticsearch はローリングリスタートを使用します。クラスターが緑色の状態で、すべてのインデックスに少なくとも 1 つのレプリカがあり、リソース使用率が過剰でない場合、再起動中もクラスターは利用可能になります。ただし、この操作はピーク時以外の時間帯に実行することを推奨します。
-
-
プロンプトを読み、OKをクリックします。
確認後、クラスターが再起動します。進行状況は「タスクリスト」で確認できます。クラスターの再起動後、監査ログ収集が有効になります。
重要監査ログデータはディスク領域を消費し、パフォーマンスに影響を与える可能性があります。監査ログを表示する必要がなくなった場合は、同じ方法で監査ログの収集機能を無効にできます。
-
ログページで、監査ログタブをクリックして、監査ログを表示します。
監査ログは、時間、ノード IP、および コンテンツ の 3 列でテーブル形式に表示されます。内容エリアには、次の監査フィールドがキーと値の形式で表示されます。
audit_user_roles:ユーザーロールaudit_action:監査アクションaudit_event_action:イベント結果(例:access_granted)audit_origin_type:オリジンタイプ(例:transport)audit_user_name:ユーザー名audit_request_name:リクエスト名audit_node_id、host、audit_hostnameなどのノード情報