elk存储日志你需要知道一些冷知识
名称解释
index template 索引模板是一种复用机制,当建立一个索引,自动匹配模板完成索引的基础部分搭建。
index pattern 索引模式 通过index模式进行匹配、把匹配到所有index定义一个组,在kibana中都是以index pattern为基本查询单位
index alias 索引别名 通过给index添加一个相同的别名,可以让不同名称的index使用相同的别名进行查询。类似 kibana中的 index pattern
index lifecycle policies 索引生命周期策略 把一个策略添加到索引模板,响应的索引就应用了生命周期策略。
综合练习示例
//索引模板基本结构
{
"priority": 0, //模板优先级
"index_patterns": "log-messge-*", //模板匹配的名称方式
"template":{
"settings": {...}, //索引设置
"mappings": {...}, //索引中字段的映射定义
"aliase": {...}, //索引别名
}
}
//创建一个索引模板
PUT _index_template/log_message_template
{
"index_patterns": "log_message_*", //索引名称匹配模式
"priority": 0, //0优先级最低
"template":{
//索引分片副本设置
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
},
//索引字段映射
"mappings": {
"properties": {
"china_id":{
"type": "keyword"
},
"create_at":{
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
},
"aliases": {
//设置索引别名
"log_messge": {}
}
},
"version": 0 //索引版本不会自动增加
}
添加索引
POST log_message_20210820/_doc
{
"china_id":"454535345",
"create_at": "2021-08-09 14:20:30"
}
POST log_message_20210819/_doc
{
"china_id":"899888888",
"create_at": "2021-08-09 13:15:18"
}
查看创建的索引的别名 (自动创建为模板设置的 log_message 好神奇)GET log_message_20210820/_alias
通过别名查询索引的结果 (客户端使用log_message这个别名就可以查询按日期创建的索引,so easy)GET log_messge/_search
//创建生命周期策略
PUT _ilm/policy/log_message_policy
{
"policy": {
"phases": {
"delete": {
"min_age": "3d", //设置三天后删除
"actions": {
"delete": {}
}
}
}
}
}
最后把策略应用到 log_message_template上,通过模板创建的索引在三天后就被删除了腾出空间迎接新日志。