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