场景1:需要按日期分索引的
索引ID理论上随机生成
步骤
1. 创建ILM滚动规则
PUT _ilm/policy/demo_ilm_policy
{
"policy": {
"phases": {
"hot": {
"min_age": "0ms",
"actions": {
"rollover": {
"max_size": "30gb",
"max_age": "2d"
}
}
},
"delete": {
"min_age": "7d",
"actions": {
"delete": {
"delete_searchable_snapshot": true
}
}
}
}
}
}
该规则的意思是 索引大小到达30GB 或者索引创建时间达到7天则滚动下一个索引,删除7天后的数据
2. 创建index_template
PUT _index_template/demo
{
"index_patterns": [
"demo-*"
],
"template": {
"settings": {
"index": {
"refresh_interval": "5s",
"number_of_shards": "5",
"number_of_replicas": "0",
"lifecycle": {
### 这里最重要
"name": "demo_ilm_policy",
"rollover_alias": "demo"
}
}
},
"mappings": {
"properties": {
"message": {
"type": "text"
}
}
},
"aliases": {}
}
}
3. 创建首个索引
将索引名做URL编码
https://tool.chinaz.com/tools/urlencode.aspx
PUT %3Cdemo-%7Bnow%2Fd%7Byyyy.MM.dd%7C%2B08%3A00%7D%7D-000001%3E
{
"aliases": {
"demo": {
"is_write_index": true
}
}
}
创建索引 demo-2022.01.11-000001
4. SLM备份设置(备选)
和管理员拿到备份的 repository 名称
PUT _slm/policy/filebeat
{
"name": "<demo-{now/d-1d{yyyy.MM.dd|+08:00}}>",
"schedule": "0 30 17 * * ?",
"repository": "dev_backup",
"config": {
"indices": [
"<demo-{now/d-1d{yyyy.MM.dd|+08:00}}-*>"
],
"ignore_unavailable": true,
"include_global_state": false
},
"retention": {
"expire_after": "60d",
"min_count": 7,
"max_count": 60
}
}
对索引 demo-* 按天做 snapshot
因为schedule是以UTC时间执行的,所以设置每天 17:30 (UTC)执行,也就是凌晨1:30分执行。
保留最近 60 天备份,最少保留 7 个备份,最多保留 60 个备份。
5. 写入与查询
写入与查询都使用别名 demo 来操作
PUT demo/_doc/1
{
"message":"1212313"
}
GET demo/_search
场景2:不需要按日期分索引的
索引ID允许指定生成,
如果ID需要使用ID查询的话,集群只能同时存在一个索引
步骤
1. 创建index_template
PUT _index_template/demo
{
"index_patterns": [
"demo-000*"
],
"template": {
"settings": {
"index": {
"refresh_interval": "5s",
"number_of_shards": "5",
"number_of_replicas": "0"
}
},
"mappings": {
"properties" : {
"message" : {
"type" : "text"
}
}
},
"aliases": {}
}
}
2. 创建首个索引
PUT demo-000001
{
"aliases": {
"demo": {
"is_write_index": true
}
}
}
3. 写入与查询
写入与查询都使用别名 demo 来操作
PUT demo/_doc/1
{
"message":"1212313"
}
GET demo/_search
评论区