脚本
我在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]#
脚本里面最后也会把情况推送到邮箱
评论区