ES基于时间索引

最近更新时间:2018-10-15 10:09:44

ES基于时间索引

在日志分析的场景下,通常不需要保存所有的日志数据,而只需保留近期一段时间的日志数据,超过一定时间后对应的数据可以删除掉,这就涉及到基于时间索引的技巧。

索引名中增加日期后缀

在logstash中可以在conf中设置为索引增加日期后缀

  elasticsearch {

    hosts => "host:9200"

    index => "log-%{+YYYY-MM-dd}"

  }

定时删除过期的文件

使用ES的Delete by Query接口来删除过期的文件。

/usr/bin/curl -H'Content-Type:application/json' -d'{"query":{"range":{"@timestamp":{"lt":"now-${DELTA}d","format":"epoch_millis"}}}}' -XPOST "http://${SERVER_PORT}/${INDEX_PRFIX}*/_delete_by_query?pretty"

${DELTA}:为具体的天数,例如7,表示删除7天前的日志

${SERVER_PORT}:为ES的服务地址+端口

${INDEX_PRFIX}:为索引的前缀

将此命令添加到Crontab中即可按照创建日期定时删除过期的索引。

金山云,开启您的云计算之旅

立即注册