基于es的内存和性能考虑、定时清除日志势在必行
一、编写es清除脚本
1、创建.sh文件(touch /gfkdata/elk/delete-elk.sh)
注意:.sh的首行必须是 #!/bin/sh
# 获取7天以前的日期
DATA=`date -d "1 week ago" +%Y.%m.%d`
#当前日期
time=`date`
# 打印语句
echo "删除"$DATA "的索引"
#删除7天前的日志 (--user elastic:123456 是密码验证,没有设置xpack的这段可以省略)
curl --user elastic:123456 -XGET "http://127.0.0.1:9200/_cat/indices/?v"|grep $DATA
if [ $? == 0 ];then
curl --user elastic:123456 -XDELETE "http://127.0.0.1:9200/*-${DATA}"
echo "于 $time 清理 $DATA 索引!"
fi
2、更改shell脚本权限
# 给shell脚本所有权限
sudo chmod 777 delete-elk.sh
# 给shell基本执行的权限
sudo chmod u+x delete-elk.sh
3、执行清除脚本文件
./delete-elk.sh
执行结果如下(我是数据都删完了 所以没有删除):
二、linux定时任务执行es日志清除脚本
crond :linux下用来周期性执行某种任务的守护进程
cron:服务名称、代表一个服务
crontab文件:crontab文件中,每一行都代表一个任务,每行的每个字段代表一段设置
1、检查是否安装了crontab软件
rpm -qa|grep crontab
2、安装crontab
sudo yum -y install crontab
3、crontab服务相关命令(root权限启动:sudo service crond satrt)
/sbin/service crond start # 服务启动
/sbin/service crond stop # 服务关闭
/sbin/service crond restart # 重启服务
/sbin/service crond reload # 重新载入配置
/sbin/service crond status # 服务是否运行
注意:如果以上无法启动,请按照括号中内容启动
4、定时任务配置
crontab -e # 编辑定时任务
crontab -l # 查看定时任务
定时任务:
# 每分钟执行一次
* * * * * /gfkdata/elk/delete-elk.sh
# 每晚9.30执行定时任务
30 21 * * * /gfkdata/elk/delete-elk.sh
5、查看linu下定时任务的log
# 实时查看log
sudo tail -f /var/log/cron