环境说明:
centos 7.6 elasticsearch 7.12 kibana 7.12
创建随日期而变动的索引:date math
以前研究过ES的快照策略,以为创建索引也可以直接使用这种格式,但是实际上并不行。在ES中创建花式索引也是有一套规则的。
官网链接:https://www.elastic.co/guide/en/elasticsearch/reference/7.x/date-math-index-names.html
在查阅了官方文档后,发现了ES中还有date math。下面是一些基础的用法。
日期数学表达式的解析与语言环境无关。因此,不能使用公历以外的任何其他日历。
您必须将日期数学名称括在尖括号中。如果在请求路径中使用名称,则特殊字符必须是 URI 编码的。例如:
# PUT /<my-index-{now/d}>
curl -X PUT "localhost:9200/%3Cmy-index-%7Bnow%2Fd%7D%3E?pretty"
创建完成后的索引格式在kibana查看就是
<my-index-当日日期> ---> <my-index-2021.08.13>
日期数学字符的百分比编码(用于日期舍入的特殊字符必须按如下方式进行URI编码)
< | %3C |
---|
> | %3E | / | %2F | { | %7B | } | %7D | | | %7C | + | %2B | : | %3A | , | %2C |
操作
ES
按照现有环境删除stdout索引
curl -X DELETE "192.168.184.129:9200/stdout"
创建roll索引
curl -X PUT "192.168.184.128:9200/%3Cstdout-%7Bnow%2Fd%7D-000001%3E?pretty"
增加索引的别名
curl -X POST "192.168.184.129:9200/_aliases?pretty" -H 'Content-Type: application/json' -d'
{
"actions" : [
{ "add" : { "index" : "stdout-2021.08.13-000001", "alias" : "stdout" } }
]
}
'
PS:这里的索引创建后命名格式为<stdout-{now/d}-000001>
Kibana
这里可以看到咱们刚刚看到的索引和别名
创建索引模板
剩下的都可以不填,一路快进到模板创建完成。(索引设置和映射会在模板绑定策略和索引的时候自动填充)
创建索引生命周期策略
删除阶段
完成后保存策略。中间还有温阶段和冷阶段,可以按照需求进行设置,这里因为没有需求就没有设置。
将策略绑定模板
这里的滚动更新索引的别名就填写设置好的别名就可以了。
策略绑定索引
查看索引状态
这里由于我们生命周期只设置了一分钟,所以可以稍等一会查看索引rollover的结果
这里可以看到索引rollover已经complete,这时原本设置的别名也已经rollover给"继承者"了
这里如果需要索引写入的时候,可以直接设置为别名。比如从filebeat或logstash收集到ES中时,指定索引就可以写stdout。会默认写入到最新的那个。
这里如果需要索引写入的时候,可以直接设置为别名。比如从filebeat或logstash收集到ES中时,指定索引就可以写stdout。会直接写入到最新的那个。
|