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

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

OpenSearch Dashboards は、Amazon OpenSearch Service (Amazon Elasticsearch Service の後継サービス) ドメインで赤色のステータスを表示し続けます。これが発生するのはなぜですか? また、これをトラブルシューティングするにはどうすればよいですか?

簡単な説明

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

  • Amazon Elastic Compute Cloud (Amazon EC2) インスタンスまたは Amazon Elastic Block Store (Amazon EBS) ボリュームの問題が原因のノード障害。ノードのクラッシュの詳細については、Amazon 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 つの専用リーダーノードを割り当てることです。クラスターの安定性向上の詳細については、Get started with Amazon OpenSearch Service: Use dedicated leader instances to improve cluster stability を参照してください。

スケールアップ

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

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

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

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

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

例えば、インデックスに 24 個のシャードがあり、データノードが 8 個ある場合、ノードあたり 3 つのシャードが存在することになります。必要なシャード数の詳細については、Get started with Amazon OpenSearch Service: How many shards do I need? を参照してください。

バージョンを確認する

重要: 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 アラームおよび Improve the operational efficiency of Amazon OpenSearch Service domains with automated alarms using Amazon CloudWatch を参照してください。

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

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