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