ELK 清理ES 索引数据
这个是清理前十天的索引信息,只保留十天的索引日志 目前我是手动执行的脚本、如有需要可以自行添加定时任务
#!/bin/bash #sticsearch的基本信息 ES_HOST="127.0.0.1" ES_PORT="9200" ES_USER="elastic" ES_PASS="slastic" # 获取当前日期的前20天的日期格式 TWENTY_DAYS_AGO=$(date -d "10 days ago" +%Y.%m.%d) # 函数:删除指定的Elasticsearch索引 function delete_index { local index_name=$1 echo "Deleting index: $index_name" curl -s -u "$ES_USER:$ES_PASS" -XDELETE "http://$ES_HOST:$ES_PORT/$index_name" } # 列出所有索引,并检查每个索引是否需要删除 curl -s -u "$ES_USER:$ES_PASS" "http://$ES_HOST:$ES_PORT/_cat/indices?v" | while read -r line; do # 假设索引名称格式是类似 logstash-2023.10.23 这样的 index_name=$(echo "$line" | awk '{print $3}') index_date=$(echo "$index_name" | grep -oP '\d{4}\.\d{2}\.\d{2}') # 检查索引日期是否早于20天前 if [[ "$index_date" && "$index_date" < "$TWENTY_DAYS_AGO" ]]; then delete_index "$index_name" fi done
标签:ELK,name,index,索引,PASS,date,日志,ES From: https://www.cnblogs.com/JIKes/p/18228071