AWS OpenSearch¶
AWS OpenSearch。接続数、リクエスト数、レイテンシー、スロークエリなどを含みます。
設定¶
Func のインストール¶
Guance の統合 - 拡張 - マネージド版 Func の開通を推奨します。必要な前提条件はすべて自動でインストールされるため、そのままスクリプトのインストールを続けてください。
Func を自前でデプロイする場合は、Func を自前でデプロイ を参照してください
インストールスクリプト¶
注意: 要件を満たす Amazon AK を事前に用意してください(簡単のため、グローバル読み取り専用権限
ReadOnlyAccessを直接付与しても構いません)
マネージド版の開通スクリプト¶
- Guance コンソールにログインします
- 【統合】メニューをクリックし、【クラウドアカウント管理】を選択します
- 【クラウドアカウントを追加】をクリックし、【AWS】を選択して画面に必要な情報を入力します。すでにクラウドアカウント情報を設定済みの場合は、この手順は省略できます
- 【テスト】をクリックし、テスト成功後に【保存】をクリックします。テストに失敗した場合は、関連する設定情報が正しいか確認してから再度テストしてください
- 【クラウドアカウント管理】の一覧で追加済みのクラウドアカウントを確認できます。該当するクラウドアカウントをクリックして詳細ページに入ります
- クラウドアカウント詳細ページの【統合】ボタンをクリックし、
未インストール一覧でAWS OpenSearchを見つけて、【インストール】ボタンをクリックし、表示されるインストール画面でインストールします。
手動開通スクリプト¶
-
Func コンソールにログインし、【スクリプトマーケット】をクリックして Guance スクリプトマーケットに入り、
integration_aws_open_searchを検索します -
【インストール】をクリックした後、対応するパラメータとして AWS AK ID、AK Secret、およびアカウント名を入力します。
-
【起動スクリプトをデプロイ】をクリックすると、システムが自動的に
Startupスクリプトセットを作成し、対応する起動スクリプトを自動で設定します。 -
有効化後、「管理 / 自動トリガー設定」で該当する自動トリガー設定を確認できます。【実行】をクリックすると、定期実行を待たずにただちに 1 回実行できます。少し待てば、実行タスクの記録と対応するログを確認できます。
検証¶
- 「管理 / 自動トリガー設定」で、該当タスクに対応する自動トリガー設定が存在するか確認し、あわせてタスク記録とログを確認して異常がないかチェックします
- Guance の「インフラ / カスタム」で資産情報が存在するか確認します
- Guance の「メトリクス」で対応する監視データがあるか確認します
メトリクス¶
AWS OpenSearch を設定すると、デフォルトのメトリクスセットは以下のとおりです。設定により、さらに多くのメトリクスを収集できます AWS クラウド監視メトリクスの詳細
クラスタメトリクス¶
Amazon OpenSearch Service は、クラスタに対して以下のメトリクスを提供します。
| メトリクス | 説明 |
|---|---|
ClusterStatus.green |
値が 1 の場合、すべてのインデックスシャードがクラスタ内のノードに割り当てられていることを示します。関連統計データ: Maximum |
ClusterStatus.yellow |
値が 1 の場合、すべてのインデックスのプライマリシャードがクラスタ内のノードに割り当てられているが、少なくとも 1 つのインデックスではレプリカシャードがそうでないことを示します。詳細は黄色のクラスタ状態を参照してください。関連統計データ: Maximum |
ClusterStatus.red |
値が 1 の場合、少なくとも 1 つのインデックスのプライマリシャードとレプリカシャードがクラスタ内のノードに割り当てられていないことを示します。詳細は赤色のクラスタ状態を参照してください。関連統計データ: Maximum |
Shards.active |
アクティブなプライマリパーティションとレプリカパーティションの合計数。関連統計データ: 最大値、合計 |
Shards.unassigned |
クラスタ内のノードに割り当てられていないパーティション数。関連統計データ: 最大値、合計 |
Shards.delayedUnassigned |
ノードへの割り当てがタイムアウト設定により遅延しているパーティション数。関連統計データ: 最大値、合計 |
Shards.activePrimary |
アクティブなプライマリパーティション数。関連統計データ: 最大値、合計 |
Shards.initializing |
初期化中のパーティション数。関連統計データ: 合計 |
Shards.relocating |
再配置中のパーティション数。関連統計データ: 合計 |
Nodes |
OpenSearch Service クラスタ内のノード数。専用マスター UltraWarm ノードとノードを含みます。詳細はAmazon OpenSearch Service での設定変更を参照してください。関連統計データ: Maximum |
SearchableDocuments |
クラスタ内のすべてのデータノードにわたる検索可能ドキュメントの総数。関連統計データ: 最小値、最大値、平均値 |
CPUUtilization |
クラスタ内データノードの CPU 使用率の割合。Maximum は CPU 使用率が最も高いノードを示します。Average はクラスタ内のすべてのノードを表します。このメトリクスは個別ノードにも使用できます。関連統計データ: Maximum、Average |
ClusterUsedSpace |
クラスタの使用済みスペース合計。正確な値を取得するには 1 分間の遅延を考慮してください。OpenSearch Service コンソールでは GiB 単位で表示されます。Amazon CloudWatch コンソールでは MiB で表示されます。関連統計データ: Minimum、Maximum |
ClusterIndexWritesBlocked |
クラスタが受信書き込みリクエストを受け付けているか、またはブロックしているかを示します。値が 0 の場合はリクエストを受け付けていることを示し、値が 1 の場合はブロックしていることを示します。一般的な要因には FreeStorageSpace の不足や JVMMemoryPressure の過大などがあります。緩和するには、ディスク容量を増やすか、クラスタを拡張することを検討してください。関連統計データ: Maximum |
FreeStorageSpace |
クラスタ内各データノードの空き容量。Sum はクラスタの総空き容量を示しますが、正確な値を取得するには 1 分間の遅延を考慮してください。Minimum と Maximum は、それぞれ空き容量が最小・最大のノードを示します。このメトリクスは個別ノードにも使用できます。OpenSearchClusterBlockException は、このメトリクスが 0 に達するとサービス側でスローされます。回復するには、インデックスを削除するか、より大きいインスタンスを追加するか、既存インスタンスに EBS ベースのストレージを追加する必要があります。詳細は、空きストレージ不足を参照してください。OpenSearch Service コンソールでは GiB 単位で表示されます。Amazon CloudWatch コンソールでは MiB で表示されます。 |
JVMMemoryPressure |
クラスタ内すべてのデータノードで使用されている Java ヒープの最大割合。OpenSearch Service はインスタンス RAM の半分を Java ヒープに使用し、最大ヒープサイズは 32 GiB です。インスタンス RAM は最大 64 GiB まで垂直スケールでき、その後はインスタンス追加による水平スケールが可能です。Amazon OpenSearch Service の推奨 CloudWatch アラームを参照してください。関連統計データ: Maximum 注意: サービスソフトウェア R20220323 でこのメトリクスのロジックが変更されました。詳細はリリースノートを参照してください。 |
JVMGCYoungCollectionCount |
「旧世代」ガベージコレクションの実行回数。十分なリソースを持つクラスタでは、この数値は小さいまま維持され、頻繁には増加しません。関連ノード統計データ: Maximum 関連クラスタ統計データ: Sum、Maximum、Average |
JVMGCOldCollectionTime |
クラスタが「旧世代」ガベージコレクションの実行に費やした時間(ミリ秒)。関連ノード統計データ: Maximum 関連クラスタ統計データ: Sum、Maximum、Average |
JVMGCYoungCollectionTime |
クラスタが「若い世代」ガベージコレクションの実行に費やした時間(ミリ秒)。関連ノード統計データ: Maximum 関連クラスタ統計データ: Sum、Maximum、Average |
JVMGCOldCollectionCount |
「若い世代」ガベージコレクションの実行回数。大量の実行が継続的に増加するのは、クラスタ操作として正常です。このメトリクスはノードレベルでも取得されます。関連ノード統計データ: Maximum 関連クラスタ統計データ: Sum、Maximum、Average |
IndexingLatency |
ノード内のすべてのインデックス操作において、分 N と分 (N-1) の間に要した総時間(ミリ秒)の差分。 |
IndexingRate |
1 分あたりのインデックス操作数。 |
SearchLatency |
ノード内のすべての検索において、分 N と分 (N-1) の間に要した総時間(ミリ秒)の差分。 |
SearchRate |
データノード上のすべてのシャードにおける 1 分あたりの検索リクエスト総数。 |
SegmentCount |
データノード上のセグメント数。セグメント数が多いほど、各検索にかかる時間は長くなります。OpenSearch は、より小さいセグメントをより大きいセグメントに結合することがあります。関連ノード統計データ: 最大値、平均値 関連クラスタ統計データ: Sum、Maximum、Average |
SysMemoryUtilization |
使用中のインスタンスメモリの割合。このメトリクス値が高いのは正常で、通常はクラスタの問題を示しません。潜在的な性能・安定性問題をより適切に示す指標としては、JVMMemoryPressure メトリクスを参照してください。関連ノード統計データ: Minimum、Maximum、Average 関連クラスタ統計データ: Minimum、Maximum、Average |
OpenSearchDashboardsConcurrentConnections |
OpenSearch ダッシュボードのアクティブな同時接続数。この数が常に高い場合は、クラスタの拡張を検討してください。関連ノード統計データ: Maximum 関連クラスタ統計データ: Sum、Maximum、Average |
OpenSearchDashboardsHeapTotal |
OpenSearch ダッシュボードに割り当てられているヒープメモリ量(MiB)。異なる EC2 インスタンスタイプは、正確なメモリ割り当てに影響する場合があります。関連ノード統計データ: Maximum 関連クラスタ統計データ: Sum、Maximum、Average |
OpenSearchDashboardsHeapUsed |
OpenSearch ダッシュボードが使用しているヒープメモリの絶対量(MiB)。関連ノード統計データ: Maximum 関連クラスタ統計データ: Sum、Maximum、Average |
OpenSearchDashboardsHeapUtilization |
OpenSearch ダッシュボードで使用されている利用可能ヒープメモリの最大割合。この値が 80% を超える場合は、クラスタの拡張を検討してください。関連ノード統計データ: Maximum 関連クラスタ統計データ: Minimum、Maximum、Average |
OpenSearchDashboardsResponseTimesMaxInMillis |
OpenSearch ダッシュボードがリクエストに応答するのに要した最大時間(ミリ秒)。リクエストの応答に常に長時間かかる場合は、インスタンスタイプのサイズを大きくすることを検討してください。関連ノード統計データ: Maximum 関連クラスタ統計データ: 最大値、平均値 |
OpenSearchDashboardsOS1MinuteLoad |
OpenSearch ダッシュボードの 1 分間平均 CPU 負荷。理想的には CPU 負荷は 1.00 未満に保つべきです。一時的なスパイクは問題ありませんが、このメトリクスが常に 1.00 を上回る場合は、インスタンスタイプのサイズを大きくすることを推奨します。関連ノード統計データ: Average 関連クラスタ統計データ: Average、Maximum |
OpenSearchDashboardsRequestTotal |
OpenSearch ダッシュボードに送信された HTTP リクエストの総数。システムが遅い場合、またはダッシュボードのリクエストが大量に見られる場合は、インスタンスタイプのサイズを大きくすることを検討してください。関連ノード統計データ: 合計 関連クラスタ統計データ: Sum |
ThreadpoolForce_mergeQueue |
force merge スレッドプール内のキュー待ちタスク数。キューサイズが常に大きい場合は、クラスタの拡張を検討してください。関連ノード統計データ: Maximum 関連クラスタ統計データ: Sum、Maximum、Average |
ThreadpoolForce_mergeRejected |
force merge スレッドプール内の拒否されたタスク数。この数値が継続的に増加する場合は、クラスタの拡張を検討してください。関連ノード統計データ: Maximum 関連クラスタ統計データ: Sum |
ThreadpoolForce_mergeThreads |
force merge スレッドプールのサイズ。関連ノード統計データ: Maximum 関連クラスタ統計データ: Average、Sum |
ThreadpoolSearchQueue |
検索スレッドプール内のキュー待ちタスク数。キューサイズが常に大きい場合は、クラスタの拡張を検討してください。検索キューの最大サイズは 1000 です。関連ノード統計データ: Maximum 関連クラスタ統計データ: Average、Sum |
ThreadpoolSearchRejected |
検索スレッドプール内の拒否されたタスク数。この数値が継続的に増加する場合は、クラスタの拡張を検討してください。関連ノード統計データ: Maximum 関連クラスタ統計データ: Sum |
ThreadpoolSearchThreads |
検索スレッドプールのサイズ。関連ノード統計データ: Maximum 関連クラスタ統計データ: Average、Sum |
Threadpoolsql-workerQueue |
SQL 検索スレッドプール内のキュー待ちタスク数。キューサイズが常に大きい場合は、クラスタの拡張を検討してください。関連ノード統計データ: Maximum 関連クラスタ統計データ: Sum、Maximum、Average |
Threadpoolsql-workerRejected |
SQL 検索スレッドプール内の拒否されたタスク数。この数値が継続的に増加する場合は、クラスタの拡張を検討してください。関連ノード統計データ: Maximum 関連クラスタ統計データ: Sum |
Threadpoolsql-workerThreads |
SQL 検索スレッドプールのサイズ。関連ノード統計データ: Maximum 関連クラスタ統計データ: Average、Sum |
ThreadpoolWriteQueue |
書き込みスレッドプール内のキュー待ちタスク数。関連ノード統計データ: Maximum 関連クラスタ統計データ: Average、Sum |
ThreadpoolWriteRejected |
書き込みスレッドプール内の拒否されたタスク数。関連ノード統計データ: Maximum 関連クラスタ統計データ: Average、Sum |
ThreadpoolWriteThreads |
書き込みスレッドプールのサイズ。関連ノード統計データ: Maximum 関連クラスタ統計データ: Average、Sum |
CoordinatingWriteRejected |
前回の OpenSearch Service プロセス起動以降、インデックス圧力によりコーディネーターノード上で発生した拒否の総数。関連ノード統計データ: Maximum 関連クラスタ統計データ: Average、Sum このメトリクスはバージョン 7.1 以降で利用できます。 |
ReplicaWriteRejected |
前回の OpenSearch Service プロセス起動以降、インデックス圧力によりレプリカシャード上で発生した拒否の総数。関連ノード統計データ: Maximum 関連クラスタ統計データ: Average、Sum このメトリクスはバージョン 7.1 以降で利用できます。 |
PrimaryWriteRejected |
前回の OpenSearch Service プロセス起動以降、インデックス圧力によりプライマリシャード上で発生した拒否の総数。関連ノード統計データ: Maximum 関連クラスタ統計データ: Average、Sum このメトリクスはバージョン 7.1 以降で利用できます。 |
ReadLatency |
EBS ボリューム上の読み取り操作のレイテンシー(秒)。このメトリクスは個別ノードにも使用できます。関連統計データ: 最小値、最大値、平均値 |
ReadThroughput |
EBS ボリューム上の読み取り操作のスループット(バイト/秒)。このメトリクスは個別ノードにも使用できます。関連統計データ: 最小値、最大値、平均値 |
ReadIOPS |
EBS ボリューム上の読み取り操作に対する 1 秒あたりの入出力 (I/O) 操作数。このメトリクスは個別ノードにも使用できます。関連統計データ: 最小値、最大値、平均値 |
WriteIOPS |
EBS ボリューム上の書き込み操作に対する 1 秒あたりの入出力 (I/O) 操作数。このメトリクスは個別ノードにも使用できます。関連統計データ: 最小値、最大値、平均値 |
WriteLatency |
EBS ボリューム上の書き込み操作のレイテンシー(秒)。このメトリクスは個別ノードにも使用できます。関連統計データ: 最小値、最大値、平均値 |
BurstBalance |
ある EBS ボリュームのバースト可能ストレージバケットに残っている入出力(I/O)クレジットの割合。値が 100 の場合、そのボリュームに蓄積されたクレジット数が最大に達していることを示します。この割合が 70% を下回る場合は、EBS バーストキャパシティ残量不足を参照してください。gp3 ボリュームタイプのドメイン、およびボリュームサイズが 1000 GiB を超える gp2 ボリュームのドメインでは、バーストバランスは 0 のままです。関連統計データ: 最小値、最大値、平均値 |
CurrentPointInTime |
ノード内のアクティブな PIT 検索コンテキスト数。 |
TotalPointInTime |
ノード起動以降に期限切れとなった PIT 検索コンテキスト数。 |
HasActivePointInTime |
値が 1 の場合、ノード起動以降にノード上でアクティブな PIT コンテキストが存在することを示します。値が 0 の場合は存在しません。 |
HasUsedPointInTime |
値が 1 の場合、ノード起動以降にノード上で期限切れの PIT コンテキストが存在することを示します。値が 0 の場合は存在しません。 |
AsynchronousSearchInitializedRate |
過去 1 分間に初期化された非同期検索数。 |
AsynchronousSearchRunningCurrent |
現在実行中の非同期検索数。 |
AsynchronousSearchCompletionRate |
過去 1 分間に正常完了した非同期検索数。 |
AsynchronousSearchFailureRate |
直近 1 分間に完了した失敗した非同期検索数。 |
AsynchronousSearchPersistRate |
過去 1 分間に永続化された非同期検索数。 |
AsynchronousSearchRejected |
ノード起動以降に拒否された非同期検索の総数。 |
AsynchronousSearchCancelled |
ノード起動以降にキャンセルされた非同期検索の総数。 |
SQLRequestCount |
_SQL API へのリクエスト数。関連統計データ: 合計 |
SQLUnhealthy |
値が 1 の場合、SQL プラグインが 5xx 応答コードを返すか、無効なクエリ DSL を OpenSearch に渡して特定リクエストに応答することを示します。その他のリクエストは引き続き成功します。値が 0 の場合は直近で失敗していないことを示します。値 1 が継続する場合は、クライアントからプラグインへのリクエストの問題を調査してください。関連統計データ: Maximum |
SQLDefaultCursorRequestCount |
SQLRequestCount に似ていますが、ページネーションリクエストのみをカウントします。関連統計データ: 合計 |
SQLFailedRequestCountByCusErr |
クライアント側の問題により失敗した _SQL API へのリクエスト数。たとえば、IndexNotFoundException により HTTP ステータスコード 400 を返して失敗する場合があります。関連統計データ: 合計 |
SQLFailedRequestCountBySysErr |
サーバー側の問題または機能制限により失敗した _SQL API へのリクエスト数。たとえば、VerificationException により HTTP ステータスコード 503 を返して失敗する場合があります。関連統計データ: 合計 |
OldGenJVMMemoryPressure |
クラスタ内すべてのデータノード上で「旧世代」に使用されている Java ヒープの最大割合。このメトリクスはノードレベルでも取得されます。関連統計データ: Maximum |
OpenSearchDashboardsHealthyNodes(以前は KibanaHealthyNodes と呼ばれていました) |
OpenSearch ダッシュボードのヘルスチェック。最小値、最大値、平均値がすべて 1 に等しい場合、ダッシュボードは正常に動作しています。10 ノードあり、最大値が 1、最小値が 0、平均値が 0.7 の場合、7 ノード (70%) が正常で、3 ノード (30%) が正常ではないことを意味します。関連統計データ: 最小値、最大値、平均値 |
InvalidHostHeaderRequests |
無効な(または欠落した)Host ヘッダーを含む OpenSearch クラスタ宛ての HTTP リクエスト数。有効なリクエストには、Host ヘッダー値としてドメインホスト名を含みます。OpenSearch Service は、制限付きアクセスポリシーを持たないパブリックアクセスドメインへの無効なリクエストを拒否します。すべてのドメインに制限付きアクセスポリシーを適用することを推奨します。このメトリクスの値が大きい場合は、OpenSearch クライアントがリクエストにドメインのホスト名(IP アドレスではなく)を含めていることを確認してください。関連統計データ: 合計 |
OpenSearchRequests(previously ElasticsearchRequests) |
OpenSearch クラスタに送信されたリクエスト数。関連統計データ: 合計 |
2xx, 3xx, 4xx, 5xx |
指定された HTTP 応答コード(2xx、3xx、4xx、5xx)を返したドメインへのリクエスト数。関連統計データ: 合計 |
オブジェクト¶
収集された AWS OpenSearch オブジェクトのデータ構造です。オブジェクトデータは「インフラ - カスタム」で確認できます
{
"measurement": "aws_opensearch",
"tags": {
"name" : "df-prd-es",
"EngineVersion" : "Elasticsearch_7.10",
"DomainId" : "5882XXXXX135/df-prd-es",
"DomainName" : "df-prd-es",
"ClusterConfig" : "{ドメイン内のインスタンスタイプとインスタンス数の JSON データ}",
"ServiceSoftwareOptions": "{サービスソフトウェアの現在の状態の JSON データ}",
"region" : "cn-northwest-1",
"RegionId" : "cn-northwest-1"
},
"fields": {
"EBSOptions": "{指定されたドメインの Elastic Block Store データの JSON データ}",
"Endpoints" : "{インデックスおよび検索リクエスト送信用のドメインエンドポイントのマッピング JSON データ}",
"message" : "{インスタンスの JSON データ}"
}
}
注意:
tagsとfields内のフィールドは、今後の更新により変更される場合があります 注意 1:tags.nameの値はインスタンス ID であり、一意識別子として使用されます 注意 2: このスクリプトではtags.nameに対応するデータフィールドはDomainNameです。本スクリプトを使用する際は、複数の AWS アカウント間で重複するDomainName値が存在しないよう注意してください。 注意 3:tags.ClusterConfig、tags.Endpoint、tags.ServiceSoftwareOptions、fields.message、fields.EBSOptions、fields.Endpointsは、いずれも JSON シリアライズ後の文字列です