Grafanaのデータソースとして指定しているAmazon OpenSearch Service(Elasticsearch 7.10)をOpenSearch 1.0にアップグレードしてみた

2021.09.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。大阪オフィスの林です。

Grafanaのデータソースとして指定したAmazon OpenSearch Service(Elasticsearch 7.10Amazon OpenSearch Service(OpenSearch 1.0にアップグレードした際のグラフデータの表示について挙動を確認してみました。検証の環境は下記エントリで作成したものを使っていき、アップグレード前後でGrafanaで見えていたグラフデータの表示について挙動を見ていきたいと思います。

結論

  • 現状、アップグレード後もGrafana側では特に設定変更等を必要とせずグラフ化出来ている。(ように見えている)
  • ただし、OpenSearchの公式プラグインも用意されているのでアップグレード後はOpenSearchのプラグインを使って接続した方がベターと思われる。

やってみた

互換性モードを有効化してアップグレードした場合

互換性モードについて

互換性モードについてはこちらをご確認ください。互換性モードについて簡単に説明させて頂くと、一部のElasticSearch OSSクライアントとプラグインは、お互いが接続する前にバージョンをチェックする仕様を持つものもあり、互換性モードを有効にしてアップグレードをおこなうと、そういった仕様を持つ一部のクライアントやプラグインに対して、OpenSearchにアップグレードした後も、バージョンをElasticsearch 7.10として報告するように設定することができます。上記のような仕様を持つクライアントおよびプラグインに対して、アップグレードによる不具合の抑制を支援する機能を互換性モードと呼んでいるそうです。今回の検証ではアップグレード後の動作に影響してきそうな互換性モードを有効化にした場合と無効化にした場合とで挙動を見ていこうと思います。(結論、有効化・無効化に関係なくアップグレード後も特に設定変更等を必要とせずグラフ化されました)

それではやっていきます。アップグレード前のドメインとしてAmazon OpenSearch Service(Elasticsearch 7.10)を使っていきます。

Grafana側の設定は下記の通りで、作成済みのAmazon OpenSearch Service(Elasticsearch 7.10)のエンドポイントを指定しています。

アップグレード前はもちろん正常にグラフ化できています。

Amazon OpenSearch Serviceに戻り、対象のドメインから「アクション」-「ドメインのアップグレード」を選択します。

アップグレード先のバージョンに「OpenSearch 1.0」が表示されており、「互換性モードの有効化」にチェックが入っている状態で、オペレーションから「アップグレードの適格性の確認」を選択し「送信」を選択します。※「互換性モードの有効化」のチェックを外した状態の検証は後半でやっていきます。本手順では「アップグレードの適格性の確認」を実施してから「アップグレード」を行います。

「アップグレードの確認」で「続行」を選択します。

ステータスが「アップグレード処理」となるので少し待ちます。

ステータスが「アクティブ」になったことを確認し、「アップグレードステータス」のリンクを選択します。

「成功」となっていることを確認します。

同じ手順でアップグレードしています。対象のドメインから「アクション」-「ドメインのアップグレード」を選択します。

「互換性モードの有効化」が選択された状態で、オペレーションから「アップグレード」を選択し「送信」を選択します。

「アップグレードの確認」で「続行」を選択します。

ステータスが「アップグレード処理」となるので少し待ちます。

「アップグレードステータス」のリンクを選択します。

暫く待ちます。※ミニマム(インスタンス:t3.small.search、EBS:10GiB、データノード数:1、専用マスターノード:0)で構成している環境で、完了まで約30分程度掛かりました。

アップグレード中に何回かログを記録してみましたが、引き続きログが可視化出来ているように見えます。

まだアップグレード進行中です。

もう一度ログを記録してみましたが、引き続きログが可視化出来ているように見えます。

アップグレードが成功しました。

ドメインのステータスが「アクティブ」で、バージョンがAmazon OpenSearch Service(OpenSearch 1.0に変わっています。

特に設定は変更せず、ログを記録してみましたが、引き続きログが可視化出来ているように見えます。

インデックスのローテーション後に再度ログを記録してみましたが、引き続きログが可視化出来ているように見えます。

互換性モードを無効化してアップグレードした場合

次は「互換性モードの有効化」のチェックを外して動作を見てみたいと思います。

Grafana側の設定は先ほどと同様下記の通りで、作成済みのAmazon OpenSearch Service(Elasticsearch 7.10)のエンドポイントを指定しています。

アップグレード前はもちろん正常にグラフ化できています。

Amazon OpenSearch Serviceに戻り、対象のドメインから「アクション」-「ドメインのアップグレード」を選択します。

アップグレード先のバージョンに「OpenSearch 1.0」が表示されており、「互換性モードの有効化」にチェックが入っていない状態で、オペレーションから「アップグレードの適格性の確認」を選択し「送信」を選択します。

「アップグレードの確認」で「続行」を選択します。

ステータスが「アップグレード処理」となるので少し待ちます。

ステータスが「アクティブ」になったことを確認し、「アップグレードステータス」のリンクを選択します。

「成功」となっていることを確認します。

同じ手順でアップグレードしています。対象のドメインから「アクション」-「ドメインのアップグレード」を選択します。

「互換性モードの有効化」のチェックを外した状態で、オペレーションから「アップグレード」を選択し「送信」を選択します。

「アップグレードの確認」で「続行」を選択します。

ステータスが「アップグレード処理」となるので少し待ちます。

アップグレード進行中です。

アップグレード中に何回かログを記録してみましたが、引き続きログが可視化出来ているように見えます。

アップグレードが成功しました。

特に設定は変更せず、ログを記録してみましたが、引き続きログが可視化出来ているように見えます。

OpenSearchのプラグインを使って接続してみる

GrafanaのElasticsearchのプラグインでは、Amazon OpenSearch Service(Elasticsearch 7.10からAmazon OpenSearch Service(OpenSearch 1.0へアップグレードしても、特にGrafana側で設定変更する必要なく、アップグレード後もグラフ化が出来ました。ただ、OpenSearchにElasticsearchのプラグインで接続しているのは少々気になるので、最後にOpenSearchのプラグインを使ってアップグレード後のドメインに接続してグラフ化するところまで見て検証を終えたいと思います。

OpenSearchプラグインを読み込みながらGrafanaのDockerコンテナを起動します。grafana-opensearch-datasourceがOpenSearchのプラグインとなります。

docker run -d \
  -p 3000:3000 \
  --name=grafana \
  -e "GF_INSTALL_PLUGINS=grafana-opensearch-datasource" \
  grafana/grafana

左メニューの歯車マークから「Data sources」を選択します。

「Add data source」を選択します。

検索ボックスから「opensearch」を検索し「select」を選択します。

URLにAmazon OpenSearch ServiceのエンドポイントURLを入力し、環境に応じてIndex name Time field name Versionに環境に応じた値を入力/選択します。今回の検証ではIndex nameawswaf*Time field nametimestampVersion1.0.xを指定します。

画面を下部の「Save & test」を選択し、エラーとならないことを確認します。※エラーとなる場合、Amazon OpenSearch Serviceに接続できていないか、IndexやTimeStampのパラメータが誤っている可能性があります。

ダッシュボードを作成します。Data sourceにOpenSearchを選択しグラフ化するデータを追加します。

グラフ化出来ました。上のグラフが、もともとElasticsearchのプラグインでアップグレード後のAmazon OpenSearch Service(OpenSearch 1.0に接続して表示しているグラフで、下のグラフがOpenSearchのプラグインでアップグレード後のAmazon OpenSearch Service(OpenSearch 1.0に接続して表示しているグラフです。※同じ内容でグラフ化できています。

まとめ

今回検証した範囲ではAmazon OpenSearch Service(Elasticsearch 7.10からAmazon OpenSearch Service(OpenSearch 1.0へアップグレードしても、特にGrafana側で設定変更することなく、引き続きグラフ表示することが出来ました。ただし、使用している機能や設定等によっては影響が出る可能性ももちろんありますので、本エントリの内容は参考程度に受け取って頂き、アップグレード前の事前検証は十分に実施して頂ければと思います。

以上、大阪オフィスの林がお送りしました!