Amazon OpenSearch Service のドメインで OpenSearch Dashboards のステータスが赤色になっているのはなぜですか?

最終更新日: 2021 年 7 月 30 日

Amazon OpenSearch Service のドメインで OpenSearch Dashboards のステータスが赤色のままになっています。これが発生するのはなぜですか。また、これをトラブルシューティングするにはどうすればよいですか。

簡単な説明

OpenSearch Dashboards は、OpenSearch Service クラスターのすべてのノードですべてのヘルスチェックに合格すると、緑色のステータスを表示します。ヘルスチェックが失敗すると、OpenSearch Dashboards は赤色のステータスになります。OpenSearch Dashboards は、OpenSearch Service が赤色のクラスターステータスになっている場合にも赤色のステータスを表示します。OpenSearch Dashboards のステータスは、以下の理由で赤になる場合があります。

  • Amazon Elastic Compute Cloud (Amazon EC2) インスタンスまたは Amazon Elastic Block Store (Amazon EBS) ボリュームの問題が原因で発生したノード障害。ノードのクラッシュの詳細については、OpenSearch Service ノードがクラッシュしたのはなぜですか? を参照してください。
  • ノードのメモリが不足している。
  • OpenSearch Service を新しいバージョンにアップグレードしている。
  • OpenSearch Dashboards と OpenSearch Service のバージョン間の互換性がない。
  • 単一ノードクラスターは負荷が高い状態で、専用リーダーノードなしで実行している。専用リーダーノードに到達できない可能性もある。OpenSearch Service がクラスターの安定性を高める方法の詳細については、Dedicated leader nodes を参照してください。

解決方法

OpenSearch Service ドメインの OpenSearch Dashboards の赤色のステータスを解決するには、以下の方法の 1 つ、または複数を使用します。

注意: クラスターにサーキットブレーカー例外が表示される場合は、まずサーキットブレーカーの制限を引き上げます。サーキットブレーカーの例外がない場合は、サーキットブレーカーの制限を引き上げる前に他の方法をお試しください。

クエリを調整する

重い集約などの複雑なクエリを実行している場合は、クエリを調整してパフォーマンスを最大化します。集計クエリに使用するフィールドデータまたはデータ構造によって、ヒープメモリ消費の急上昇が発生する可能性があります。

次の API コールを確認して急上昇の原因を特定し、os-endpoint をドメインのエンドポイントに置き換えます。

$curl os-endpoint/_nodes/stats/breaker?pretty
$curl "os-endpoint/_nodes/stats/indices/fielddata?level=indices&fields=*"

メモリ使用量の管理の詳細については、Elasticsearch ウェブサイトの Tune for search speed を参照してください。

専用リーダーノードを使用する

ベストプラクティスは、OpenSearch Service ドメインごとに 3 つの専用リーダーノードを割り当てることです。クラスターの安定性向上の詳細については、OpenSearch Service 入門: 専用のリーダーインスタンスを使用してクラスターの安定性を向上させる を参照してください。

スケールアップ

ドメインをスケールアップするには、ノード数を増やすか、より多くのメモリを保持する Amazon EC2 インスタンスタイプを選択します。スケーリングの詳細については、OpenSearch Service ドメインをスケールアップまたはスケールアウトするにはどうすればよいですか?を参照してください。

シャードディストリビューションを確認する

シャードが取り込んでいるインデックスを確認し、すべてのデータノードに均等に分散されていることを確認します。シャードが不均等に分散されている場合、1 つ以上のデータノードのストレージ容量が不足している可能性があります。

次の式を用いて、シャードが均等に分散されていることを確認します。

Total number of shards = shards per node * number of data nodes

例えば、インデックスに 24 個のシャードがあり、データノードが 8 個ある場合、ノードあたり 3 つのシャードが存在することになります。必要なシャード数の詳細については、Amazon OpenSearch サービス入門: 必要なシャードはいくつですか?を参照してください。

バージョンを確認する

重要: OpenSearch Dashboards と OpenSearch Service のバージョンは互換性がある必要があります。

次の API コールを実行して、バージョンに互換性があることを確認し、os-endpoint をご使用のドメインエンドポイントに置き換えます。

$curl os-endpoint/.kibana/config/_search?pretty

注: コマンドの失敗は、OpenSearch Dashboards とサポートされている OpenSearch Service のバージョンの間の互換性の問題を示唆している可能性があります。互換性のある OpenSearch Dashboards と Elasticsearch のバージョンの詳細については、Elasticsearch ウェブサイトの Set up を参照してください。

リソースをモニタリングする

特定のしきい値を超えてリソースが使われたときに通知する Amazon CloudWatch アラームをセットアップします。例えば、JVM メモリプレッシャーに対してアラームを設定する場合、プレッシャーが 100% に達する前に措置を講じます。CloudWatch アラームの詳細については、推奨される CloudWatch アラームおよび CloudWatch を使用した自動アラームによる OpenSearch サービスドメインの運用効率の向上 を参照してください。

サーキットブレーカーの制限を引き上げる

クラスターのメモリ不足を防ぐには、親ブレーカーまたはフィールドデータサーキットブレーカーの制限を引き上げてみてください。フィールドデータサーキットブレーカーの制限の詳細については、Elasticsearch ウェブサイトの「サーキットブレーカーの設定r」を参照してください。