Elasticsearch のスローログ設定の確認

Elasticsearch/OpenSearch で必要な検索・インデックス作成のスローログを有効にし、実際の収集を確認してください。

説明

スローログは、処理に時間がかかる検索やインデックス作成のリクエストを調べるために役立ちます。運用に必要なログがないと、性能問題の原因を特定しにくくなります。INDEX_SLOW_LOGS はインデックス作成、SEARCH_SLOW_LOGS は検索のスローログ配信に使用します。

CloudWatch への配信設定だけではシャードのスローログは生成されません。インデックスごとのしきい値も設定する必要があり、既定値の -1 は該当するロギングを無効にします。

想定される影響

  • 遅い検索やインデックス作成の原因を調べにくくなる場合があります。
  • 性能問題への対応に時間がかかる場合があります。
  • 運用上のボトルネックの早期発見が難しくなる場合があります。

対処方法

  • log_publishing_options で必要なスローログの種類を有効にし、CloudWatch ロググループとサービスの書き込み権限を設定してください。
  • インデックスごとのしきい値をワークロードに合わせて設定し、実際のログ収集を確認してください。引き続き必要なアプリケーションログも維持してください。
  • ログ内の機密情報を考慮してアクセス権限と保存期間を制限し、収集量と費用を確認してください。

例

ログの種類を比較する抜粋です。ドメインの必須設定、ロググループのリソースポリシー、インデックスごとのしきい値は省略しています。環境で必要なログ配信ブロックを併せて構成してください。

変更前

hcl
resource "aws_elasticsearch_domain" "example" {
  log_publishing_options {
    cloudwatch_log_group_arn = aws_cloudwatch_log_group.example.arn
    log_type                 = "ES_APPLICATION_LOGS"
    enabled                  = true
  }
}

変更後

hcl
resource "aws_elasticsearch_domain" "example" {
  log_publishing_options {
    cloudwatch_log_group_arn = aws_cloudwatch_log_group.example.arn
    log_type                 = "INDEX_SLOW_LOGS"
    enabled                  = true
  }
}

補足:

  • 変更前: ES_APPLICATION_LOGS の配信設定であり、検索やインデックス作成のスローログ設定ではありません。
  • 変更後: インデックス作成のスローログ配信を有効にします。検索スローログと、ログ生成に必要なしきい値は別途設定する必要があります。

参考資料