Amazon Web Services ブログ

Amazon Elasticsearch Service エラーログの表示

本日、Amazon Elasticsearch Service(Amazon ES)は、Amazon CloudWatch Logs へのエラーログ出力のサポートを発表しました。 この新機能は、エラーログをキャプチャする機能が提供され、サービスの運用中に発生したエラーや警告に関する情報にアクセスできます。 これらの詳細な情報はトラブルシューティングに役立ちます。 この情報を使用して、Amazon ES の利用者と協力してドメイン上のエラーまたは警告を引き起こすシナリオのパターンを特定できます。

この機能へのアクセスは、ドメインが作成されるとすぐに有効になります。

ログを自由にオン/オフすることができ、支払いは CloudWatch の利用した分のみの料金です。

ドメインのエラーログの配信を設定する

アクティブなドメインのエラーログを有効にするには、AWS Management Console にサインインし [Elasticsearch Service ]を選択します。 Amazon ES コンソールで、一覧からドメイン名を選択しダッシュボードを開きます。 次に[Logs]タブを選択します。

このペインでは、検索のスローログ、インデックススローログ、およびエラーログを CloudWatch Logs のロググループに出力するように Amazon ES ドメインを設定します。 スローログの設定に関する詳細は、AWS データベースブログのブログ記事Viewing Amazon Elasticsearch Service Slow Logsを参照してください。

エラーログの設定で、[セットアップ]を選択します。

新しいロググループを作成するか既存のロググループを使用するかを選択できます。 次のようなパスとしてロググループの名前を付けることをお勧めします。

/aws/aes/domains/mydomain/application-logs/

このようなネーミングのスキームを使用すると、CloudWatch アクセスポリシーを簡単に適用できます。このポリシーでは次のような特定のパスのすべてのロググループに権限を付与できます。

/aws/aes/domains

CloudWatch ロググループにログを配信するには、Amazon ES が CloudWatch Logs にログ出力できるように Amazon ES のポリシーを指定する必要があります。 新しいポリシーを作成するか既存のポリシーを選択するかを選択できます。 あなたはそのままポリシーを受け入れることができます。 また、ロググループ名がパスの場合はリソースを広げることができます。例えば次のようにします。

arn:aws:logs:us-east-1:123456789012:log-group:/aws/aes/domains/*

すべてのドメインでこのポリシーを再利用できます。

ドメインのポリシーを保存したら、[有効にする]を選択するとセットアップが完了します。 ドメインが CloudWatch Logs にエラーログを送信できるようになりました。

エラーログの出力を有効にしたので、エラーログのモニタリングを開始できます。

取得されるイベントの種類

Elasticsearch は、Apache Log4j 2 を TRACE、DEBUG、INFO、WARN、ERROR、および FATAL(最小から最大)の組み込みログレベルで使用します。 エラーログを有効にすると、WARN、ERROR、および FATAL のログ行が CloudWatch に出力されます。重要度の低いログレベル(INFO、DEBUG、TRACE)は利用できません。

これに基づいて、次のリストに強調されているようなイベントの詳細を見つけることができます。

  • 設定されている highlight.max_analyzed_offset パラメータの制限を超えたことに基づいて拒否する
  • 要求に苦しいスクリプトのコンパイルの問題
  • 無効なリクエストと無効なクエリのフォーマットに関する詳細情報
  • ガベージコレクションのサイクル
  • 書き込みブロックの詳細情報
  • スナップショットの実施中に発生した問題

ログデータを表示する

ログデータを表示するには、AWS Management Console にサインインし、CloudWatch コンソールを開きます。 左側のナビゲーションペインで、[Logs] タブを選択します。 グループのリストでロググループを見つけてロググループを開きます。 ロググループ名は、Amazon ES ウィザードでログの設定をした時の名前です。

ロググループ内には、多数のログストリームが表示されます。

Amazon ES は、エラーログの設定中に es-test-log-stream を作成して、確実に CloudWatch Logs に書き込むことができるようにします。 このストリームに含まれるテストメッセージは1つだけです。

アプリケーションエラーログは30分以内に到着し、ログデータのソースを示すために es-application-logs の前に16進数の長い名前が付いています。 最後のイベント時刻に基づいてイベントを表示するには、これらのいずれかを選択します。

タイムスタンプ順に各イベントの個別エントリが表示されます。 イベントログエントリの細かい詳細から粗い詳細に切り替えるには、CloudWatch Logs コンソールの右上のトグルを使用します。 フォーマットは、タイムスタンプ、警告の軌跡、エラーまたは警告を生成したノード、およびこのスタックトレースで表れているような詳細なクレンジングされたテキスト。

まとめ

エラーログ機能を有効にすることで、Amazon ES ドメインに関する問題をより詳細に把握し、ドメイン設定に関する問題を特定できます。 さらに、CloudWatch Logs と Amazon ES の統合を使用して、アプリケーションエラーログを別の Amazon ES ドメインに送信し、Amazon ES ドメインのパフォーマンスを監視することもできます。

翻訳はソリューションアーキテクトの上原誠が行いました。原文は Viewing Amazon Elasticsearch Service Error Logsです。


著者について

 

Kevin Fallis は検索技術を専門とする AWS ソリューションアーキテクトです。