7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Upgrade Assistantを使ってElastic Stackをバージョンアップ

Last updated at Posted at 2022-04-19

Elastic Stackの8.0がリリースされてから少し経ちましたが、そろそろ7系から8系にアップグレードしようかと考えている方々も多いのではないでしょうか?そこで、メジャーアップグレード時の心強い味方、Upgrade Assistantを使って、8系へのバージョンアップについて触れておきたいと思います。

こちらの情報は記事投稿時(2022年4月)の話です。

8系の新機能って?

8.0のGAは今年の2月ですが、Elastic Stack周りでざっくり言うと、以下のような機能になります。

ダウンロードしてインストールすると最初に戸惑うのは、Stack Securityがデフォルトで有効化されたことかもしれません。最早、TLSも認証もデフォルトです。また、NLP周りは@ijokarumawak@githubさんの記事がとても参考になります。

Upgrade Assistantってなに?

さて、本題のUpgrade Assistantですが、Elastic Stackのメジャーアップグレードを行う時に、名前の通り色々とアシストしてくれる機能です。Kibanaの Stack Management > Upgrade Assistant から開くことができます。

使ってみよう

実際にUpgrade Assistantをクリックすると、次のような画面が開きます。ここでは、Elastic Cloud上のElastic Stackデプロイメントを例に取って、ステップ毎に見ていきましょう。
Upgrade_Assistant_FirstPage.png

1. Back up your data

どんなアップグレードでも、何はともあれバックアップから、です。Elastic Cloudの場合、デフォルトスナップショットが取得されるので、最新の取得時間が表示されます。もし、直近でもう一度取得したい場合は、Create snapshot をクリックすると、スナップショット取得の画面が新たに開くので、そこでスナップショットを取得しましょう。
Upgrade_Assistant_Snapshot.png

2. Migrate system indices

ここでは、System indices、つまり"."で始まる".kibana-"のようなElasticsearchやKibanaが内部的に使うIndexが、8系に移行できるかどうかのチェックを行い、必要であれば移行に必要な処理が行われます。通常は、直ぐに Migration complete のチェックが付きます。

3. Review deprecated settings and resolve issues

このステップの裏側では、ElasticsearchのClusterやNode、Indexレベル、さらにKibanaのSettingsをチェックしています。Indexについては、8系へのアップグレードの前提として、既に7.17にバージョンアップされていることが前提になるので、Reindexは基本必要ありません。但し、6系で作成したIndexをスナップショットからリストアしたりしていると、8系と互換性がないのでReindexが必要となる場合もあります。ちなみに、6系 > 7系の時のUpgrade Assistantでは、5系で作成したIndexのReindex機能があったのですが、7系 > 8系では、その機能はなくなってました。必要に応じてDev ToolからReindexしましょう。画面ではKibanaからバッチでまとめてReindexするAPIが、Experimentalながらもガイドされるので、興味があれば試してみてください。

Issueがある場合は、その数が表示されるのでクリックして確認します。
Upgrade_Assistant_Deprecation_Settings.png

Elasticsearch、KibanaそれぞれIssueをクリックすると、その詳細や解決方法がガイドされるので、それに従って対応します。
Deprecation_Settings.png

例えば、Setting [index.max_adjacency_matrix_filters] is deprecated をクリックしてみましょう。
Deprecation_Settings_Resolution.png

この場合、Remove deprecated settings ボタンをクリックすると該当の設定が削除されて、次のように Deprecated settings removed にチェックが付きました。
Deprecation_Settings_Resolved.png

もう一方の Setting node.attributes.data is not recommended は、ここでは放置でOKです。Warning Issue の大半は非推奨設定の指摘なので、あまり目くじらを立てる必要はないのですが、この辺りは、そのクラスタの辿ってきた歴史に応じて、様々な設定が施されているはずなので、詳しくは公式ドキュメントを参照するようにしてみて下さい。

ちなみに、Elastic Cloudの場合、変更できるClusterやNodeの設定は限定されているので、Critical Issue を目にすることは滅多にないと思いますが、例えばオンプレで、Stack Securityを無効にしていると、こんな風にレポートされます。8系では冒頭でも書いた通り、有効にしておく必要があるからですね。Critical Issueは、実際のアップグレード前に解決する必要があります。
Deprecation_Settings_OnPrem.png
このステップでチェックしているのは、あくまでClusterやNode、Indexの設定レベルです。アプリケーションから非推奨のAPIを叩いているかも?といったことは次のステップになります。

4. Address API deprecation

非推奨のAPIを使ったアプリケーションからのアクセスがないかチェックします。例えば、以下のように非推奨のAPIをDev Toolから叩いてみます。

GET _cat/nodes?local

Deprecation logにログが出力されるので、以下のように教えてくれます。
Upgrade_Assistant_Deprecation_Log.png

ここでは、ある期間におけるDeprecation logを検索して表示してくれています。ひとつ気をつけないといけないことは、あくまで一定期間でのありなしを表示しているので、その期間に該当するAPIによるアクセスがなければ表示されないということです。実際の詳細は、LogアプリDiscover で確認することができます。アプリケーションの対応後、再度テストをして、Deprecation logが出なくなったことを確認したりといった使い方ができますね。
Deprecation_Log_Logs.png

5. Upgrade to Elastic 8.x

Elastic Cloudの場合は、Upgrade on Cloudをクリックすれば、Cloud UIにナビゲートされて、後は良しなにアップグレードしてくれます。

Upgrade_Deployment.png

オンプレの場合は、マニュアルでアップグレードプロセスを実行する必要がありますが、そこは挫けずに頑張りましょう。

まとめ

メジャーアップグレードというと、ついつい気後れしてしまいがちですが、こうしたアシスタント機能を使うことで事前の確認を効率化して、作業漏れを防ぐことができます。Elastic Stackも8系になって、さらに新しい機能がどんどんリリースされてきますので、ぜひUpgrade Assistantを活用して、8系へアップグレードしていきましょう。アップグレード時の注意点は、公式ドキュメントを参考にしてみて下さい。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?