CloudWatch アラームを使用して Amazon Elasticsearch Service クラスターをモニタリングするにはどうすればよいですか?

最終更新日: 2020 年 8 月 21 日

Amazon Elasticsearch Service (Amazon ES) クラスターの安定性の問題をモニタリングしたいと考えています。Elasticsearch クラスターを効果的にモニタリングするにはどうすればよいですか?

解決方法

重要: Elasticsearch のバージョンが異なると、_index API の呼び出しを処理するために異なるスレッドプールが使用されます。Elasticsearch 1.5 および 2.3 では、インデックススレッドプールを使用します。Elasticsearch 5.x、6.0、および 6.2 では、バルクスレッドプールを使用します。Elasticsearch バージョン 6.3 以降では、書き込みスレッドプールを使用します。現在、Amazon ES コンソールには、バルクスレッドプールのグラフは含まれていません。

Elasticsearch クラスターの状態を監視するには、推奨される Amazon CloudWatch アラームと次のアラームを設定します。

LeaderReachableFromNode:
Statistic = Maximum
Value = ‘=0’
Frequency = 1 period
Period = 1 minute
Issue: Leader node is down

KibanaHealthyNodes:
Statistic = Average
Value = ‘=0’
Frequency = 1 period
Period = 1 minute
Issue: kibana is unhealthy

DiskQueueDepth:
Statistic = Average
Value = ‘>=100'
Frequency = 1 period
Period = 5 minutes
Issue: Disk Queue Depth is the number of I/O requests that are queued at a time against the storage. This could indicate a surge in requests or Amazon EBS throttling, resulting in increased latency.

ThreadpoolIndexQueue and ThreadpoolSearchQueue:
Statistic = Maximum
Value = ‘>=20’
Frequency = 1 period
Period = 1 minute
Issue: Indicates that there are requests getting queued up, which can be rejected. To verify the request status, check the CPU Utilization and Threadpool Index or Search rejects.

Elasticsearch クラスターの Amazon CloudWatch アラームを設定するには、以下の手順を実行します。

1.    CloudWatch コンソールを開きます。

2.    [アラーム] タブに移動します。

3.    [アラームの作成] を選択します。

4.    [メトリクスの選択] を選択します。

5.    メトリクスについて [ES] を選択します。

6.    [ドメインごとのメトリクス] および [クライアントあたりのメトリクス] を選択します。

7.    メトリクスを選択し、[次へ] をクリックします。

8.    CloudWatch アラームについて、以下の設定を行います。

Statistic = Maximum
Period to 1 minute
Threshold type = Static
Alarm condition = Greater than or equal to
Threshold value = 1

9.    [その他の設定] タブを選択します。

10.    次の設定を更新します。

Datapoints to alarm = Frequency stated above
Missing data treatment = Treat missing data as ignore (maintain the alarm state)

11.    [次へ] を選択します。

12.    アラームで実行するアクションを選択し、[次へ] をクリックします。

13.    アラームの名前を設定し、[次へ] をクリックします。

14.    [アラームの作成] を選択します。

注意: CPUUtilization または JVMMemoryPressure に対してアラームがトリガーされた場合は、次のメトリクスをチェックして、受信リクエストと一致するスパイクがあるかどうかを確認します。

IndexingRate

SearchRate

ElasticsearchRequests