Alibaba Cloud Elasticsearch のログ機能を使用すると、キーワードを入力し、時間範囲を指定して特定のログを検索できます。これにより、クラスターの問題を迅速に特定し、クラスターの運用保守 (O&M) をサポートします。このトピックでは、ログのクエリ方法と一般的なログの種類について説明します。
制限事項
ES アクセスログ:アクセスログ機能は、バージョン 6.7 (マイナーエンジンバージョン 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 情報を取得して、時間のかかる、または頻繁な GC イベントがないか確認できます。そのようなイベントが存在する場合は、クラスターリソースを拡張するか、aliyun-qos プラグインを使用してトラフィックを制限し、クラスターの安定性を確保します。
重要デフォルトでは、Alibaba Cloud Elasticsearch クラスターは CMS ガベージコレクタを使用します。データノードのメモリが 32 GB 以上の場合は、G1 ガベージコレクタを使用して GC 効率を向上させます。詳細については、「ガベージコレクタの設定」をご参照ください。
ES アクセスログ
クラスターアクセスログ。これらのログは、Elasticsearch クラスターが受信した restSearchAction リクエストに関する詳細情報 (URI、本文サイズ、リクエスト時間など) を提供します。
重要コンソールで ES アクセスログを表示できるのは、バージョン 6.7.0 (マイナーエンジンバージョン 1.0.2 以降) または 7.10 を実行しているインスタンスのみです。
ES アクセスログは、SQL クエリ、マルチクエリ、スクロールクエリ、および Kibana の一部の可視化ツールによってトリガーされるクエリのシナリオには対応していません。
クエリおよび書き込みリクエストに関するより完全な情報を取得するには、監査ログを有効にします。詳細については、「監査ログの設定」をご参照ください。
ES アクセスログを表示して、どのクライアントが Elasticsearch クラスターにクエリリクエストを送信しているかを特定します。
監査ログ
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 は条件に基づいてログクエリ結果を返し、ログクエリページに表示します。
Alibaba Cloud Elasticsearch では、過去 7 日間の連続したログをクエリできます。デフォルトでは、ログは逆時系列で表示されます。
Lucene ベースのクエリ構文がサポートされています。詳細については、「クエリ文字列構文」をご参照ください。
検索条件の
ANDオペレーターは、大文字でなければなりません。終了時刻を空のままにすると、現在の時刻が使用されます。開始時刻を空のままにすると、終了時刻の 1 時間前の時刻が使用されます。
たとえば、content にキーワード health が含まれ、level が info で、host が 172.16.xx.xx であるメインログをクエリするには、次の検索条件を使用します:
host:172.16.xx.xx AND content:health AND level:info。重要Alibaba Cloud Elasticsearch は最大 10,000 件のログエントリを返すことができます。
返された 10,000 件のログエントリに必要なコンテンツが含まれていない場合は、クエリの時間範囲を狭めてください。
Alibaba Cloud Elasticsearch の単一のログエントリは、最大 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"}
設定が変更された後、読み取りまたは書き込みタスクが設定された時間より長くかかった場合、[スローログ] タブで対応するログを見つけることができます。
GC ログ
GC ログはデフォルトで有効になっています。ログが生成された時刻、生成されたノードの IP アドレス、およびログの内容が含まれます。詳細については、「メインログ」をご参照ください。
ES アクセスログ
アクセスログには、Elasticsearch クラスターが受信した restSearchAction リクエストに関する詳細情報が表示されます。これには、クラスターノードと IP アドレス、本文サイズ、リクエスト内容、リクエスト時間、リクエストを開始したクライアントの IP アドレス、および URI が含まれます。
コンソールで ES アクセスログを表示できるのは、バージョン 6.7.0 または 7.10 を実行しているインスタンスのみです。
クエリおよび書き込みリクエストに関するより完全な情報を取得するには、監査ログを有効にします。詳細については、「監査ログの設定」をご参照ください。

監査ログ
コンソールで監査ログを表示できるのは、「制限事項」に記載されているリージョンでバージョン 7.x 以降を実行しているインスタンスのみです。
監査ログには、Elasticsearch インスタンスでの作成、削除、更新、クエリなどの操作に対して生成されたログが表示されます。この機能はデフォルトで無効になっています。次の手順で有効にして監査ログを表示できます:
[ログ検索] ページで、右側の [ログ設定] をクリックします。
[ログ設定] ダイアログボックスで、[監査ログ収集] スイッチをオンにします。
重要[監査ログ収集] を有効にすると、現在のページでクラスターの監査ログをクエリできます。収集する監査イベントタイプを変更するには、クラスター設定ページに移動して xpack.security.audit.logfile.events.include パラメーターを変更します。詳細については、「監査ログの設定」をご参照ください。
[監査ログ収集] を有効または無効にすると、クラスターの再起動がトリガーされます。Alibaba Cloud Elasticsearch クラスターはローリングリスタート方式で再起動されます。クラスターが正常 (緑色) 状態で、各インデックスに少なくとも 1 つのレプリカがあり、リソース使用率が過度に高くない場合、クラスターは再起動中もサービスを提供し続けることができます。ただし、この操作はオフピーク時に実行することを推奨します。
プロンプトが表示されたら、[確認] をクリックします。
確認後、クラスターが再起動します。再起動中、タスクリストで進捗を確認できます。クラスターが正常に再起動した後、監査ログ収集が有効になります。
重要監査ログ情報はディスク領域を消費し、パフォーマンスに影響を与える可能性があります。監査ログを表示する必要がない場合は、同様の方法で [監査ログ収集] 機能を無効にできます。
[ログ検索] ページで、[監査ログ] タブをクリックして監査ログを表示します。
