侧边栏壁纸
博主头像
福福不服博主等级

孩子会穿过大雨,去懂人间的道理。

  • 累计撰写 92 篇文章
  • 累计创建 98 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Elasticsearch自动清理脚本

Monster
2023-11-23 / 0 评论 / 2 点赞 / 40 阅读 / 11833 字 / 正在检测是否收录...
温馨提示:
请确保在评论和互动中保持礼貌和尊重。避免使用侮辱性、歧视性或攻击性语言。我们鼓励建设性的讨论和意见交流。

脚本

我在data下创建的脚本文件就叫:vi /data/clear_log.sh,内容如下

#!/bin/sh
#获取时间
time=`date +'%Y-%m-%d %H:%M:%S'`
cipan=`df -h| grep sda3`
#查询磁盘使用率
liang=`df -h| grep sda3 |grep -v grep |awk '{print $5}'|tr -d "%"`

# 如果磁盘使用大于等于80%,清理并邮箱告警,保留最近3个月的数据
if [ $liang -ge 80 ]; then

# Elasticsearch 主机和端口
HOST="localhost"
PORT="9200"

# 索引名称前缀
INDEX_PREFIX="easyspeed-cloud-logs"

# 保留的月份数
MONTHS_TO_KEEP=3

# 计算删除的日期
DELETE_DATE=$(date -d "-${MONTHS_TO_KEEP} months" +%Y-%m-%d)

# 获取所有匹配索引的列表
INDEX_LIST=$(curl -s -XGET "http://${HOST}:${PORT}/_cat/indices/${INDEX_PREFIX}*" | awk '{print $3}')

# 遍历索引列表并删除早于指定日期的索引
for INDEX in $INDEX_LIST; do
  INDEX_DATE=$(echo "$INDEX" | awk -F'-' '{print $NF}')
  if [[ "$INDEX_DATE" < "$DELETE_DATE" ]]; then
    echo "Deleting index: $INDEX"
    curl -XDELETE "http://${HOST}:${PORT}/$INDEX"
  fi
done


#邮件通知
        echo -e "时间:${time} ,磁盘���用率达到${liang}%。\n----------------------------------------------\n${cipan}\n----------------------------------------------\n时间:`date +'%Y-%m-%d %H:%M:%S'`,清理已完成,当前磁盘使用率:[`df -h| grep sda3 |grep -v grep |awk '{print $5}'`]" | mail -s 'Elasticsearch[192.168.170.15]磁盘清理通知' it@xxxx.com
fi

定时任务

编辑定时任务

crontab -e

编辑频率和你的脚本路径

#每5分钟查询磁盘使用率,大于等于80就清理日志保留近3个月的日志
*/5 * * * * sh /data/clear_log.sh > /dev/null 2>&1

保存退出,-l可以查看定时任务列表

crontab -l

效果

我这里之前已经清理过了,所以没到80%,查看磁盘情况现在61%

[root@localhost data]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 5.8G     0  5.8G    0% /dev
tmpfs                    5.8G     0  5.8G    0% /dev/shm
tmpfs                    5.8G  544M  5.3G   10% /run
tmpfs                    5.8G     0  5.8G    0% /sys/fs/cgroup
/dev/mapper/centos-root   50G  4.2G   46G    9% /
/dev/sda3                1.5T  875G  561G   61% /data
/dev/sda1               1014M  194M  821M   20% /boot
/dev/mapper/centos-home   46G   33M   46G    1% /home
tmpfs                    1.2G     0  1.2G    0% /run/user/1000
tmpfs                    1.2G     0  1.2G    0% /run/user/0

筛选出所有索引

[root@localhost data]# curl -s -XGET "http://localhost:9200/_cat/indices/easyspeed-cloud-logs*" | awk '{print $3}'
easyspeed-cloud-logs-2023.09.30
easyspeed-cloud-logs-2023.10.22
easyspeed-cloud-logs-2023.10.23
easyspeed-cloud-logs-2023.10.20
easyspeed-cloud-logs-2023.10.21
easyspeed-cloud-logs-2023.10.15
easyspeed-cloud-logs-2023.10.16
easyspeed-cloud-logs-2023.10.13
easyspeed-cloud-logs-2023.10.14
easyspeed-cloud-logs-2023.10.19
easyspeed-cloud-logs-2023.10.17
easyspeed-cloud-logs-2023.10.18
easyspeed-cloud-logs-2023.09.20
easyspeed-cloud-logs-2023.09.21
easyspeed-cloud-logs-2023.10.11
easyspeed-cloud-logs-2023.09.22
easyspeed-cloud-logs-2023.09.23
easyspeed-cloud-logs-2023.10.12
easyspeed-cloud-logs-2023.09.24
easyspeed-cloud-logs-2023.10.10
easyspeed-cloud-logs-2023.09.25
easyspeed-cloud-logs-2023.09.26
easyspeed-cloud-logs-2023.09.27
easyspeed-cloud-logs-2023.09.28
easyspeed-cloud-logs-2023.09.29
easyspeed-cloud-logs-test
easyspeed-cloud-logs-2023.10.04
easyspeed-cloud-logs-2023.10.05
easyspeed-cloud-logs-2023.10.02
easyspeed-cloud-logs-2023.10.03
easyspeed-cloud-logs-2023.10.08
easyspeed-cloud-logs-2023.10.09
easyspeed-cloud-logs-2023.10.06
easyspeed-cloud-logs-2023.10.07
easyspeed-cloud-logs-2023.11.12
easyspeed-cloud-logs-2023.11.13
easyspeed-cloud-logs-2023.11.10
easyspeed-cloud-logs-2023.11.11
easyspeed-cloud-logs-2023.08.09
easyspeed-cloud-logs-2023.08.08
easyspeed-cloud-logs-2023.08.07
easyspeed-cloud-logs-2023.08.06
easyspeed-cloud-logs-2023.08.05
easyspeed-cloud-logs-2023.08.04
easyspeed-cloud-logs-2023.08.03
easyspeed-cloud-logs-2023.08.02
easyspeed-cloud-logs-2023.11.05
easyspeed-cloud-logs-2023.08.01
easyspeed-cloud-logs-2023.11.06
easyspeed-cloud-logs-2023.11.03
easyspeed-cloud-logs-2023.11.04
easyspeed-cloud-logs-2023.11.09
easyspeed-cloud-logs-2023.11.07
easyspeed-cloud-logs-2023.11.08
easyspeed-cloud-logs-2023.10.30
easyspeed-cloud-logs-2023.11.01
easyspeed-cloud-logs-2023.11.02
easyspeed-cloud-logs-2023.10.31
easyspeed-cloud-logs-2023.10.26
easyspeed-cloud-logs-2023.10.27
easyspeed-cloud-logs-2023.10.24
easyspeed-cloud-logs-2023.10.25
easyspeed-cloud-logs-2023.10.28
easyspeed-cloud-logs-2023.10.29
easyspeed-cloud-logs-2023.08.29
easyspeed-cloud-logs-2023.08.28
easyspeed-cloud-logs-2023.08.27
easyspeed-cloud-logs-2023.08.26
easyspeed-cloud-logs-2023.08.25
easyspeed-cloud-logs-2023.08.24
easyspeed-cloud-logs-2023.08.23
easyspeed-cloud-logs-2023.08.22
easyspeed-cloud-logs-2023.08.21
easyspeed-cloud-logs-2023.08.20
easyspeed-cloud-logs-2023.11.20
easyspeed-cloud-logs-2023.11.23
easyspeed-cloud-logs-2023.11.21
easyspeed-cloud-logs-2023.11.22
easyspeed-cloud-logs-2023.08.19
easyspeed-cloud-logs-2023.08.18
easyspeed-cloud-logs-2023.08.17
easyspeed-cloud-logs-2023.08.16
easyspeed-cloud-logs-2023.08.15
easyspeed-cloud-logs-2023.08.14
easyspeed-cloud-logs-2023.11.16
easyspeed-cloud-logs-2023.08.13
easyspeed-cloud-logs-2023.11.17
easyspeed-cloud-logs-2023.08.12
easyspeed-cloud-logs-2023.11.14
easyspeed-cloud-logs-2023.08.11
easyspeed-cloud-logs-2023.08.10
easyspeed-cloud-logs-2023.11.15
easyspeed-cloud-logs-2023.11.18
easyspeed-cloud-logs-2023.11.19
easyspeed-cloud-logs-2023.09.10
easyspeed-cloud-logs-2023.09.11
easyspeed-cloud-logs-2023.10.01
easyspeed-cloud-logs-2023.09.12
easyspeed-cloud-logs-2023.09.13
easyspeed-cloud-logs-2023.09.14
easyspeed-cloud-logs-2023.09.15
easyspeed-cloud-logs-2023.09.16
easyspeed-cloud-logs-2023.09.17
easyspeed-cloud-logs-2023.09.18
easyspeed-cloud-logs-2023.09.19
easyspeed-cloud-logs-2023.09.01
easyspeed-cloud-logs-2023.09.02
easyspeed-cloud-logs-2023.09.03
easyspeed-cloud-logs-2023.09.04
easyspeed-cloud-logs-2023.09.05
easyspeed-cloud-logs-2023.09.06
easyspeed-cloud-logs-2023.09.07
easyspeed-cloud-logs-2023.09.08
easyspeed-cloud-logs-2023.09.09
easyspeed-cloud-logs-2023.08.31
easyspeed-cloud-logs-2023.08.30

将脚本的判断条件从80%改成60%就执行清理脚本,直接手动执行脚本(为看效果)

今天是11.23,3个月就是8月,所以把8.23之前的索引都给干掉了

[root@localhost data]# sh clear_log.sh 
Deleting index: easyspeed-cloud-logs-2023.08.09
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.08
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.07
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.06
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.05
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.04
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.03
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.02
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.01
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.22
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.21
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.20
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.19
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.18
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.17
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.16
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.15
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.14
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.13
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.12
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.11
{"acknowledged":true}Deleting index: easyspeed-cloud-logs-2023.08.10

可以再筛选一下索引确认,没有8.23号之前的了

[rcurl -s -XGET "http://localhost:9200/_cat/indices/easyspeed-cloud-logs*" | awk '{print $3}'
easyspeed-cloud-logs-2023.09.30
easyspeed-cloud-logs-2023.10.22
easyspeed-cloud-logs-2023.10.23
easyspeed-cloud-logs-2023.10.20
easyspeed-cloud-logs-2023.10.21
easyspeed-cloud-logs-2023.08.29
easyspeed-cloud-logs-2023.08.28
easyspeed-cloud-logs-2023.08.27
easyspeed-cloud-logs-2023.08.26
easyspeed-cloud-logs-2023.08.25
easyspeed-cloud-logs-2023.08.24
easyspeed-cloud-logs-2023.10.15
easyspeed-cloud-logs-2023.10.16
easyspeed-cloud-logs-2023.08.23
easyspeed-cloud-logs-2023.10.13
easyspeed-cloud-logs-2023.10.14
easyspeed-cloud-logs-2023.10.19
easyspeed-cloud-logs-2023.10.17
easyspeed-cloud-logs-2023.10.18
easyspeed-cloud-logs-2023.11.20
easyspeed-cloud-logs-2023.09.20
easyspeed-cloud-logs-2023.09.21
easyspeed-cloud-logs-2023.10.11
easyspeed-cloud-logs-2023.09.22
easyspeed-cloud-logs-2023.11.23
easyspeed-cloud-logs-2023.09.23
easyspeed-cloud-logs-2023.10.12
easyspeed-cloud-logs-2023.11.21
easyspeed-cloud-logs-2023.09.24
easyspeed-cloud-logs-2023.10.10
easyspeed-cloud-logs-2023.11.22
easyspeed-cloud-logs-2023.09.25
easyspeed-cloud-logs-2023.09.26
easyspeed-cloud-logs-2023.09.27
easyspeed-cloud-logs-2023.09.28
easyspeed-cloud-logs-2023.09.29
easyspeed-cloud-logs-test
easyspeed-cloud-logs-2023.11.16
easyspeed-cloud-logs-2023.10.04
easyspeed-cloud-logs-2023.11.17
easyspeed-cloud-logs-2023.10.05
easyspeed-cloud-logs-2023.11.14
easyspeed-cloud-logs-2023.10.02
easyspeed-cloud-logs-2023.10.03
easyspeed-cloud-logs-2023.11.15
easyspeed-cloud-logs-2023.10.08
easyspeed-cloud-logs-2023.10.09
easyspeed-cloud-logs-2023.11.18
easyspeed-cloud-logs-2023.10.06
easyspeed-cloud-logs-2023.11.19
easyspeed-cloud-logs-2023.10.07
easyspeed-cloud-logs-2023.09.10
easyspeed-cloud-logs-2023.09.11
easyspeed-cloud-logs-2023.11.12
easyspeed-cloud-logs-2023.09.12
easyspeed-cloud-logs-2023.11.13
easyspeed-cloud-logs-2023.10.01
easyspeed-cloud-logs-2023.09.13
easyspeed-cloud-logs-2023.11.10
easyspeed-cloud-logs-2023.11.11
easyspeed-cloud-logs-2023.09.14
easyspeed-cloud-logs-2023.09.15
easyspeed-cloud-logs-2023.09.16
easyspeed-cloud-logs-2023.09.17
easyspeed-cloud-logs-2023.09.18
easyspeed-cloud-logs-2023.09.19
easyspeed-cloud-logs-2023.11.05
easyspeed-cloud-logs-2023.11.06
easyspeed-cloud-logs-2023.11.03
easyspeed-cloud-logs-2023.11.04
easyspeed-cloud-logs-2023.11.09
easyspeed-cloud-logs-2023.11.07
easyspeed-cloud-logs-2023.11.08
easyspeed-cloud-logs-2023.10.30
easyspeed-cloud-logs-2023.11.01
easyspeed-cloud-logs-2023.09.01
easyspeed-cloud-logs-2023.11.02
easyspeed-cloud-logs-2023.10.31
easyspeed-cloud-logs-2023.09.02
easyspeed-cloud-logs-2023.09.03
easyspeed-cloud-logs-2023.09.04
easyspeed-cloud-logs-2023.09.05
easyspeed-cloud-logs-2023.09.06
easyspeed-cloud-logs-2023.09.07
easyspeed-cloud-logs-2023.09.08
easyspeed-cloud-logs-2023.09.09
easyspeed-cloud-logs-2023.10.26
easyspeed-cloud-logs-2023.10.27
easyspeed-cloud-logs-2023.10.24
easyspeed-cloud-logs-2023.10.25
easyspeed-cloud-logs-2023.08.31
easyspeed-cloud-logs-2023.08.30
easyspeed-cloud-logs-2023.10.28
easyspeed-cloud-logs-2023.10.29

当然直接查看磁盘情况更直观,61%降到51%了

[root@localhost data]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 5.8G     0  5.8G    0% /dev
tmpfs                    5.8G     0  5.8G    0% /dev/shm
tmpfs                    5.8G  544M  5.3G   10% /run
tmpfs                    5.8G     0  5.8G    0% /sys/fs/cgroup
/dev/mapper/centos-root   50G  4.2G   46G    9% /
/dev/sda3                1.5T  718G  718G   51% /data
/dev/sda1               1014M  194M  821M   20% /boot
/dev/mapper/centos-home   46G   33M   46G    1% /home
tmpfs                    1.2G     0  1.2G    0% /run/user/1000
tmpfs                    1.2G     0  1.2G    0% /run/user/0
[root@localhost data]# 

脚本里面最后也会把情况推送到邮箱

2

评论区