使用elk时,为了避免日志单个index过大,一般都会将日志按大小/日期作切割,增加查询的效率,elk自身提供了lifecycle作轮询,但是使用lifecycle管理必须要求index必须以-/d+格式结尾,在此之前,作者一直使用logstash中output配置
index => "logstash-%{+YYYY.MM.dd}"
来达到和lifecyle一样的目的。这种用法无法使用index的四个阶段,研究了很久的官网手册,在这里分享一下index配置lifecycle的方法。
第一步:创建index,添加索引别名,设置别名可以写入到索引。
PUT /%3Cyou_want_index_name-%7Bnow%2Fd%7D-000001%3E
{
"aliases": {
"you_want_alias_name": { "is_write_index": true }
}
}
第二步:在kibana中创建相应policy,设置自己各个阶段想要保持的天数
第三步: 创建对应模板,将新的index自动添加到lifecycle中
PUT /_template/you_want_template_name
{
"index_patterns" : ["your_index_name-*"],
"order" : 1,
"settings" : {
"index" : {
"lifecycle" : {
"name" : "your_policy_name-policy",
"rollover_alias" : "your_alias_name"
},
"refresh_interval" : "5s"
}
}
}
第四步:配置logstash output.conf
output {
elasticsearch {
hosts => ["your_elasticsearch_address"]
user => "your_user_name"
password => "your_passwd"
ilm_enabled => true
ilm_rollover_alias => "your_alias_name"
ilm_pattern => "your_index_name-{now/d}-000001"
ilm_policy => "your_policy_name-policy"
}
}
经过以上四步配置,即可实现index使用lifecycle管理