はじめに
Index Lifecycle Management(ILM)の補足記事です。
Beatsでの対応
Beatsでは、Elasticsearch Outputに設定を追加してあげると、ILMのポリシーをElasticsearchに送り込むことができます。
設定方法
このへんに書いてあるのでやってみます。
output.elasticsearch:
hosts: ["localhost"]
ilm.enabled: true
ilm.pattern: "{now/d}-000001"
簡単ですね。
ilm.pattern
の値を{now{YYYY.MM.dd|Asia/Tokyo}}-000001
な感じに書くこともできます。これだと、Rollover時にAsia/Tokyo
の時間をつけてくれます。
#でも、+09:00
ってかけないんですよねぇ。Date Mathだと書けるのに。
ポリシーのロード
# filebeat setup --ilm-policy
Loaded Index Lifecycle Management (ILM) policy
では、ILM UIを見てみましょう。
「beats default policy」という名前で登録されているのがわかります。
#画面は6.7のものですが、気にしないことにします。⇒6.7.0は、また色が戻るみたいです。
データの投入の準備
準備として、テンプレートを登録します。
setup.template:
enabled: true
が設定ファイルにあることを確認してから。
# filebeat setup --temlate
Loaded index template
確認してみます。
GET _template/filebeat-6.6.0
{
"filebeat-6.6.0" : {
"order" : 1,
"index_patterns" : [
"filebeat-6.6.0-*"
],
"settings" : {
"index" : {
"lifecycle" : {
"name" : "beats-default-policy",
"rollover_alias" : "filebeat-6.6.0"
},
(省略)
ちゃんとILMの設定が入ってますね。
データの投入
filebeatを起動してデータを投入してみます。
投入状況の確認
ILMのUIを見てみます。
Linked indicesが1になってますね。
では、Index Managent UIを見てみます。filebeat-*の詳細を見てみると、ちゃんと適用されているのがわかります。
おわりに
ちゃんと連動できてますね。すばらしい!
自前のIndex名にした場合については今回はやってませんが、ドキュメントには書いてあります。
Logstashも対応しているので、そのうちに試してみましょう。