Alibaba Cloud Elasticsearch では、Elasticsearch コンソールでキーワードと時間範囲を指定して、Elasticsearch クラスタの特定のログをクエリできます。ログを使用して、クラスタの問題を特定し、クラスタの運用と保守を効率的に実行できます。このトピックでは、ログをクエリする方法と、一般的なログの種類について説明します。
制限事項
[アクセスログ] は、カーネルバージョンが V1.0.2 以降の Elasticsearch V6.7.0 クラスタと Elasticsearch V7.10 クラスタに対してのみ有効にできます。
Elasticsearch コンソールでは、次のリージョンの V7.X 以降の Elasticsearch クラスタの [監査ログ] のみを表示できます。
国または地域
リージョン
中国
中国 (北京)、中国 (杭州)、中国 (上海)、中国 (張家口)
アジア太平洋
シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、日本 (東京)
ヨーロッパ & アメリカ
米国 (バージニア北部)、米国 (シリコンバレー)、ドイツ (フランクフルト)、英国 (ロンドン)
手順
Alibaba Cloud Elasticsearch コンソール にログインします。
左側のナビゲーションウィンドウで、[Elasticsearch クラスタ] をクリックします。
目的のクラスタに移動します。
上部のナビゲーションバーで、クラスタが属するリソースグループと、クラスタが存在するリージョンを選択します。
[Elasticsearch クラスタ] ページで、クラスタを見つけて ID をクリックします。
表示されるページの左側のナビゲーションウィンドウで、[ログ] をクリックします。その後、クラスタのログを表示できます。
Alibaba Cloud Elasticsearch は、Elasticsearch クラスタに対して、クラスタログ、低速検索ログ、低速インデックス作成ログ、ガベージコレクション (GC) ログ、アクセスログ、監査ログなどのログを提供します。次の表は、各ログの種類とその使用シナリオを示しています。ログの詳細については、「一般的なログの種類」をご参照ください。
ログの種類
説明
使用シナリオ
[クラスタログ]
この種類のログは、Elasticsearch クラスタのヘルスステータスと、クラスタで実行された読み取りおよび書き込み操作に関する情報を記録します。たとえば、書き込み操作のログには、インデックスの作成、インデックスマッピングの更新、書き込みキューがいっぱいになったときに生成されるログが含まれ、読み取り操作のログには、クエリキューとクエリの例外について生成されるログが含まれます。
Elasticsearch クラスタ内の各ノードのステータスを表示する場合、またはノード間のネットワーク接続、フル GC、インデックスの作成または削除、クエリで報告されたエラーなど、クラスタで実行された読み取りおよび書き込み操作に関する情報を表示する場合は、クラスタのクラスタログを表示できます。
重要ビジネスでエラーが発生した場合は、最初にクラスタログとクラスタの モニタリングデータ を表示して、パフォーマンスまたは構成の問題のトラブルシューティングを行うことをお勧めします。
[低速検索ログ]
この種類のログは、低速の読み取り操作に関する情報を記録します。読み取り操作の完了に必要な時間が特定のしきい値を超えると、読み取り操作は低速の読み取り操作と見なされ、システムは低速検索ログに操作に関する情報を表示します。しきい値は、Elasticsearch クラスタのシナリオベースのインデックステンプレートで構成されます。デフォルトでは、テンプレートの構成は最適であるため、テンプレートを直接適用できます。Elasticsearch クラスタのシナリオベースのインデックステンプレートの詳細については、「クラスタのインデックステンプレートを変更する」をご参照ください。
ビジネスで読み取り操作の完了に長時間を要する場合は、低速検索ログを表示して問題のトラブルシューティングを行うことができます。
完了に長時間を要する読み取り操作は、より多くのクラスタリソースを消費します。クラスタに対して多数の低速ログが生成される場合は、クラスタのリソース使用量と負荷を確認して、ボトルネック問題の原因となっている項目を特定します。次に、項目に基づいてクラスタのリソースを補充するか、aliyun-qos プラグインを使用して クラスタの調整を行い、クラスタの安定性を確保します。
[低速インデックス作成ログ]
この種類のログは、低速の書き込み操作に関する情報を記録します。書き込み操作の完了に必要な時間が特定のしきい値を超えると、書き込み操作は低速の書き込み操作と見なされ、システムは低速インデックス作成ログに操作に関する情報を表示します。しきい値は、Elasticsearch クラスタのシナリオベースのインデックステンプレートで構成されます。デフォルトでは、テンプレートの構成は最適であるため、テンプレートを直接適用できます。Elasticsearch クラスタのシナリオベースのインデックステンプレートの詳細については、「クラスタのインデックステンプレートを変更する」をご参照ください。
ビジネスで書き込み操作の完了に長時間を要する場合は、低速インデックス作成ログを表示して問題のトラブルシューティングを行うことができます。
完了に長時間を要する書き込み操作は、より多くのクラスタリソースを消費します。クラスタに対して多数の低速ログが生成される場合は、クラスタのリソース使用量と負荷を確認して、ボトルネック問題の原因となっている項目を特定します。次に、項目に基づいてクラスタのリソースを補充するか、aliyun-qos プラグインを使用して クラスタの調整を行い、クラスタの安定性を確保します。
[GC ログ]
この種類のログは、Elasticsearch クラスタの GC に関する情報を記録します。GC ログには、JVM ヒープメモリ使用量によってトリガーされた GC に関する情報が含まれています。Old GC、Concurrent Mark Sweep (CMS) GC、Full GC、Minor GC メカニズムに基づく GC 情報など、GC の詳細を取得できます。
Elasticsearch クラスタでパフォーマンスのボトルネックが発生した場合は、クラスタの GC ログを表示して GC の詳細を取得し、GC 操作の完了に長時間を要しているか、頻繁に実行されているかを確認できます。このような GC 操作が存在する場合は、できるだけ早くクラスタのリソースを補充するか、aliyun-qos プラグインを使用して クラスタの調整を行い、クラスタの安定性を確保します。
重要デフォルトでは、Alibaba Cloud Elasticsearch クラスタは CMS ガベージコレクタを使用します。クラスタ内の各データノードに保存されているデータの量が 32 GB 以上の場合は、G1 ガベージコレクタを使用して GC 効率を向上させることをお勧めします。詳細については、「ガベージコレクタを構成する」をご参照ください。
[アクセスログ]
この種類のログは、Elasticsearch クラスタへのアクセスに関する情報を記録します。Elasticsearch クラスタのアクセスログには、RestSearchAction API を使用して開始されたリクエストの詳細(リクエストの URI、リクエスト本文のサイズ、リクエストが開始された時刻など)が含まれています。
重要Elasticsearch コンソールでは、カーネルバージョンが V1.0.2 以降の Elasticsearch V6.7.0 クラスタと Elasticsearch V7.10 クラスタの [アクセスログ] のみを表示できます。
Elasticsearch アクセスログは、SQL クエリ、複数クエリ、スクロールクエリ、および一部の Kibana 可視化ツールによってトリガーされるクエリなどのクエリシナリオをサポートしていません。
クラスタのクエリと書き込みリクエストに関するより完全な情報を取得する場合は、クラスタの監査ログインデックス作成機能を有効にすることをお勧めします。詳細については、「監査ログインデックス作成機能を構成する」をご参照ください。
Elasticsearch クラスタにクエリリクエストを送信するクライアントを管理する場合は、クラスタの [アクセスログ] を表示できます。
[監査ログ]
この種類のログは、Elasticsearch クラスタで実行される操作(作成、削除、変更、クエリ操作など)の監査に関する情報を記録します。
重要Elasticsearch コンソールでは、「制限事項」に記載されているリージョンの V7.X 以降の Elasticsearch クラスタの監査ログのみを表示できます。上記のクラスタ以外の Elasticsearch クラスタの場合は、[クラスタ構成] ページの [YML 構成] セクションで、クラスタの監査ログインデックス作成機能を有効にできます。その後、クラスタの監査ログは、クラスタ内のインデックスに書き込まれます。これらのインデックスには、.security_audit_log-* という形式で名前が付けられます。クラスタの Kibana コンソールでこのようなインデックスをクエリして、監査ログを表示できます。詳細については、「YML ファイルを構成する」をご参照ください。
Elasticsearch クラスタの監査ログを表示する前に、Elasticsearch コンソールのクラスタの [ログ] ページで [ログ構成] をクリックし、[監査ログ収集] スイッチをオンにする必要があります。
デフォルトでは、システムは次の種類の監査イベントからログを収集します:access_denied、anonymous_access_denied、authentication_failed、connection_denied、tampered_request、run_as_denied、run_as_granted。ログを収集する監査イベントの種類を変更する場合は、Elasticsearch クラスタの YML 構成ファイルで xpack.security.audit.logfile.events.include パラメータを変更する必要があります。詳細については、「監査ログインデックス作成機能を構成する」をご参照ください。
Elasticsearch クラスタにアクセスしたときに ID の検証に失敗した場合、クラスタへの接続が拒否された場合、クラスタのアクセスイベントを表示する必要がある場合、または疑わしいイベントが存在するかどうかを確認する必要がある場合は、クラスタの監査ログに基づいて問題のトラブルシューティングを行うか、目的の操作を実行できます。データアクセス許可またはユーザーセキュリティ構成の変更は、疑わしいイベントである可能性があります。
[ログ] ページのタブで、クエリ文字列を入力し、開始時刻と終了時刻を選択して、[検索] をクリックします。
[検索] をクリックすると、クエリ文字列に一致するログが表示されます。
過去 7 日間に生成されたログをクエリできます。デフォルトでは、ログは時間の降順で表示されます。
Lucene クエリ構文がサポートされています。詳細については、「クエリ文字列構文」をご参照ください。
クエリ文字列の
ANDは大文字にする必要があります。終了時刻を指定しない場合、現在のシステム時刻が終了時刻として使用されます。開始時刻を指定しない場合、開始時刻は終了時刻の 1 時間前になります。
この例では、次の条件を満たすログが [クラスタログ] タブでクエリされます。level フィールドの値が INFO で、host フィールドの値が 172.16.xx.xx で、content フィールドの値に health キーワードが含まれています。この場合、クエリ文字列は
host:172.16.xx.xx AND content:health AND level:infoです。重要Alibaba Cloud Elasticsearch は、クエリごとに最大 10,000 件のログを返すことができます。
返されたログに表示したいログが含まれていない場合は、指定した時間範囲を短縮して別のクエリを実行できます。
ログには最大 10,000 文字を表示できます。
一般的なログの種類
クラスタログ
[クラスタログ] タブには、クラスタの操作ログが表示されます。各操作ログには、時刻、ノードの IP アドレス、コンテンツなどの情報が含まれています。

パラメータ | 説明 |
[時刻] | ログが生成された時刻。 |
[ノードの IP アドレス] | ログを生成したノードの IP アドレス。 |
[コンテンツ] | ログの詳細。次のフィールドが含まれています。
|
スローログ
スローログには、低速検索ログと低速インデックス作成ログが含まれます。読み取りまたは書き込み操作の完了に必要な時間が特定のしきい値を超えると、操作に対してスローログが生成されます。[低速検索ログ] タブには低速検索ログが表示され、[低速インデックス作成ログ] タブには低速インデックス作成ログが表示されます。デフォルトでは、スローログ収集は有効になっています。クラスタで負荷の不均衡、読み取りまたは書き込みの例外、またはデータ処理の低速化の問題が発生した場合は、スローログに基づいて問題のトラブルシューティングを行うことができます。
デフォルトでは、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 コンソールにログイン し、次のコマンドを実行してスローログの構成を変更します。
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"}
スローログの構成が変更された後、読み取りまたは書き込み操作の完了に必要な時間が指定されたしきい値を超えた場合は、[ログ] ページの [低速検索ログ] タブまたは [低速インデックス作成ログ] タブで関連ログをクエリして、問題のトラブルシューティングを行うことができます。
GC ログ
デフォルトでは、GC ログ収集は有効になっています。各 GC ログには、時刻、ノードの IP アドレス、コンテンツなどの情報が含まれています。詳細については、「クラスタログ」をご参照ください。
アクセスログ
[アクセスログ] タブには、RestSearchAction API を使用して開始されたリクエストの詳細が表示されます。詳細には、リクエストされたノードの名前、ノードの IP アドレス、リクエスト本文のサイズ、リクエストコンテンツ、リクエストが開始された時刻、リクエストの送信に使用された IP アドレス、URI などが含まれます。
Elasticsearch コンソールでは、Elasticsearch V6.7.0 クラスタと V7.10 クラスタの [アクセスログ] のみを表示できます。
クラスタのクエリと書き込みリクエストに関するより完全な情報を取得する場合は、クラスタの監査ログインデックス作成機能を有効にすることをお勧めします。詳細については、「監査ログインデックス作成機能を構成する」をご参照ください。

監査ログ
Elasticsearch コンソールでは、「制限事項」に記載されているリージョンの V7.X 以降の Elasticsearch クラスタの監査ログのみを表示できます。
[監査ログ] タブには、Elasticsearch クラスタで実行される操作(作成、削除、変更、クエリ操作など)について生成された監査ログが表示されます。デフォルトでは、監査ログ収集は無効になっています。監査ログ収集を有効にして監査ログを表示するには、次の手順を実行します。
Elasticsearch クラスタの [ログ] ページで、右側の [ログ構成] をクリックします。
[ログ構成] ダイアログボックスで、[監査ログ収集] をオンにします。
重要[監査ログ収集] をオンにすると、[ログ] ページの [監査ログ] タブでクラスタの監査ログを表示できます。ログを収集する監査イベントの種類を変更する場合は、クラスタの YML 構成ファイルで xpack.security.audit.logfile.events.include パラメータを変更します。詳細については、「監査ログインデックス作成機能を構成する」をご参照ください。
[監査ログ収集] をオンまたはオフにすると、システムはクラスタを再起動します。システムは、ローリング再起動方式を使用してクラスタを再起動します。再起動する前に、クラスタが [標準] 状態(緑色で表示)であり、クラスタ内の各インデックスの各プライマリシャードに少なくとも 1 つのレプリカシャードがあり、クラスタのリソース使用率が高くないことを確認してください。上記のすべての条件が満たされている場合、クラスタは再起動中もサービスを提供し続けることができます。ただし、この操作はオフピーク時に実行することをお勧めします。
リスク警告を読み、チェックボックスをオンにして、[OK] をクリックします。
システムはクラスタを再起動します。再起動の進行状況は、タスク ダイアログボックスで確認できます。クラスタが再起動されると、システムは監査ログの収集を開始します。
重要監査ログはクラスタのディスク容量を占有します。監査ログによって占有されるディスク容量が過度に大きい場合、クラスタのパフォーマンスに影響を与える可能性があります。クラスタの監査ログを表示する必要がない場合は、[ログ構成] ダイアログボックスで [監査ログ収集] をオフにすることができます。
[ログ] ページで、[監査ログ] タブをクリックして、クラスタの監査ログを表示します。
