はじめに
Elasticソリューションアーキテクトの関屋です。
Elastic Cloudでは、データを格納するノードを選択できます。基本(必須)のHot Tier以外に、よりコストの安いWarm/Cold/FrozenのTierを選択的に設けることができます。
しかし、Warm/Cold/Frozenはそれらのノードを立ち上げただけではデータはデフォルトではそちらに移動してくれません。
Index Lifecycle Management (ILM)を使ってライフサイクルを設定する必要があります。
ILMですが、インデックスの作られ方によって、状況は少し異なります。
- Filebeat, Metricbeat, Elastic Agentなどを使ってデータを集めている場合は、自動的にILMポリシーが作成されていて、それがインデックスに割り当てられていると思います。
- ElasticsearchのAPIなど、その他の方法を使っている場合、ILMポリシーは割り当てらていないです。ILMポリシーを作成し、割り当てる必要があります。
本記事はこの1. のケースの場合の設定手順について説明します。
前提: 事前に使用したいTierをElastic Cloudの管理画面で作成してください。あるいはオートスケールを有効にしておくと、Tierが必要となったときに自動的に作成されます。
手順
今回は扱うログのインデックスはこちらの2つです。
logs-elastic_agent.filebeat-defaultのデータストリームの中に、末尾が0000001と0000002のインデックスがあります。000001が最初に作られたインデックスです。0000001にデータが溜まり、ロールオーバー条件を満たすとロールオーバー行われ、0000002が作成されます。そして0000002が今度は新たに書き込みされる対象のインデックスとなります。
このようなケースでは、0000001のロールオーバーされたインデックスがWarm/Cold/Frozen のTierに移動できます。
0000001のインデックスのリンクをクリックすると、ILMの状態が確認できます。Current phaseがhot
と確認できます。また、ロールオーバー済みの移動可能なインデックスはCurrent actionがcomplete
となっているので、それも確認しましょう。
logs
のLifecycle Policyのリンクをクリックすると、ILMポリシーの設定画面にいきます。デフォルトではずっとHotに保存され続ける設定となっています。
ここで変更を行い、今回は試しにWarmを有効化しました。またMove data into phase when:は0
daysにしました。つまり、ロールオーバーされたインデックスは0日後(すぐに)Warmに移動するという意味です。
ILMポリシーの変更を保存し、さきほどの末尾0000001のインデックスが、すぐにCurrent phaseがwarm
になりました。移動が完了するまでに少し時間が必要ですが、Current actionがcomplete
になっていれば、移動が完了しています。
ちなみに、末尾が0000002のインデックスですが、こちらはRolloverされていない、Write可能なインデックスですので、やはりhotのままです。