使用elkstack作为日志分析工具,采集nginx访问日志,项目log日志,心跳检测日志,服务器度量日志等,每天产生大量索引(Index),占用磁盘空间。对于过期数据需要进行删除来释放磁盘空间。
<!-- more -->
使用官网_delete_by_query进行删除
curl -u 用户名:密码 -H'Content-Type:application/json' -d'{
"query": {
"range": {
"@timestamp": {
"lt": "now-7d",
"format": "epoch_millis"
}
}
}
}
' -XPOST "http://127.0.0.1:9200/*-*/_delete_by_query?pretty"
解释
-u
是格式为userName:password
,使用Basic Auth
进行登录。如果elasticsearch
没有使用类似x-pack
进行安全登录,则不需要加-u参数
-H
是指定文档类型是json格式
-XPOST
是指定用POST
方式请求
-d
是指定body
内容
{
"query": {
"range": { //范围
"@timestamp": {
//时间字段
"lt": "now-7d",//lt是小于(<),lte是小于等于(<=),gt是大于(>),gte是大于等于(>=),now-7d是当前时间减7天
"format": "epoch_millis"
}
}
}
}
定时删除
$ crontab -e