Amazon OpenSearch Service のドメインで OpenSearch Dashboards のステータスが赤色になっているのはなぜですか?
最終更新日: 2021 年 7 月 30 日
Amazon OpenSearch Service のドメインで OpenSearch Dashboards のステータスが赤色のままになっています。これが発生するのはなぜですか。また、これをトラブルシューティングするにはどうすればよいですか。
簡単な説明
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」(サーキットブレーカー) をご覧ください。
Amazon OpenSearch Service は、Amazon Elasticsearch Service の後継サービスです。