AIOps 一场颠覆传统运维的盛筵
862
2022-11-04
ELK数据清理脚本
ELK为目前主流的日志分析系统,主要由三个组件组成,如下:
Elasticsearch :是一个搜索和分析引擎Logstash :服务器端数据处理管道,可以同时从多个数据源采集日志数据,并转换数据,最后将数据发送到Elasticsearch等存储库中。Kibana :提供可视化界面,可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化,更方便地查看日志信息。
ELK会每天产生一个日志索引,并通过kibana来进行展示,时间长了后就会产生大量的索引数据,如果不进行清理会占用大量的磁盘空间,因此需要定期对数据进行清理。
下面的例子为通过shell脚本方式对ELK数据进行清理,脚本主要功能如下:
根据提示输入要清理的年份根据提示输入要清理的月份
脚本内容如下:
#!/bin/bash: ' @function: clean elk log @author: gongguan @date: 2022-04-01 @说明: 本例子中只写出了2022年的,后续可以继续扩展到2023、2024年等,清理时候根据提示输入年份 和月份即可 @注意:函数要在脚本内容上方,否则调用会报错'cleanLog(){ for i in $(curl 'localhost:9200/_cat/indices?v' | awk '{print $3}') do result=$(echo $i | grep ''${month}'') if [ -n "${result}" ];then curl -XDELETE http://localhost:9200/${result} fi done}read -p "请输入要清楚的年份(2022/2023):" yearcase $year in2022) read -p "请输入要清除的月份(01/02/03....):" month case $month in 01) cleanLog ;; 02) cleanLog ;; 03) cleanLog ;; 04) cleanLog ;; 05) cleanLog ;; 06) cleanLog ;; 07) cleanLog ;; 08) cleanLog ;; 09) cleanLog ;; 10) cleanLog ;; 01) cleanLog ;; 12) cleanLog ;; *) echo "输入的月份不匹配" esac;;*) echo "年份不匹配,请重新输入.....";;esac
脚本说明:
第10-19行:通过for循环来遍历查询到的日志名字,并通过grep来搜索到指定的月份,判断是否存在内容,如果存在进行清理第20、23行:接收从命令行输入的年份以及月份第21行-最后:嵌套case结构,用来匹配年份以及月份
发表评论
暂时没有评论,来抢沙发吧~