首页 > 其他 > 详细

ES7中,冷热分离和索引生命周期的简单实践

时间:2021-08-19 17:20:19      阅读:26      评论:0      收藏:0      [点我收藏+]

一个简单的需求:将实时写入的索引写入到高性能但容量较小的节点,将不更新的历史索引转移到大容量性能不高的节点,并删除一段时间之前的索引。

配置两个节点(hot/warn)的ES集群

在配置文件中给ES节点打标签:

node.attr.node_type: hot
node.attr.node_type: warn

效果:

GET /_cat/nodeattrs?v&h=node,attr,value
node       attr              value
es-node-01 node_type         hot
es-node-02 node_type         warn
......

配置索引模板

创建message-logs-*索引模板,并设置索引落到 hot 节点

PUT/_template/template_message_logs {
  "index_patterns": ["message-logs-*"],
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 0,
    "routing.allocation.require.node_type": "hot"
  }
}

配置定时任务

## 每天1点将前一天的日志转移到warn节点
00 01 * * * curl -XPUT -H ‘Content-Type: application/json‘ "http://127.0.0.1:9200/message-logs-$(date +\%Y\%m\%d -d‘1 day ago‘)/_settings?pretty" -d ‘{"index.routing.allocation.require.node_type": "warn"}‘ >/dev/null 2>&1

## 每天2点将7天前的日志删除
00 02 * * * curl -XDELETE "http://127.0.0.1:9200/message-logs-$(date +\%Y\%m\%d -d‘7 day ago‘)" >/dev/null 2>&1

这样message-logs-yyyymmdd索引就实现了冷热分离。当天的索引写入hot节点,定时任务将前一天的所以转移到warn节点,超过7天的自动删除。
看看效果:
技术分享图片


ES7中,冷热分离和索引生命周期的简单实践

原文:https://www.cnblogs.com/wshenjin/p/15161861.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!