1.自动删除es索引
# 创建存放脚本的目录
~]# mkdir Filebeat && cd Filebeat
~]# vim file.sh
#!/bin/bash
# 定义所有索引
index2="nginx_access_logs|nginx_error_log|web_app_logs|web_monitorlog|job_app_logs|api_app_logs|api_monitorlog|workflow_all_log"
# 查看所有索引
# 判断域名是否配置hosts(这里的ip需配置自己的LB,我这里是172.17.0.50)
if ! cat /etc/hosts | grep kibana.tke.com &> /dev/null ;then
echo "172.17.0.50 kibana.tke.com" >> /etc/hosts
else
echo -e "\033[92m+ 开始创建kibana索引 +\n\033[0m"
fi
curl -s -XGET 'http://es.tke.com/_cat/indices' > a.txt
# 过滤出现有的索引
remove=$(cat a.txt | grep -E "$index2" | awk '{print $3}')
# 循环删除
for i in $remove
do
curl -XDELETE "http://es.tke.com/${i}"
done
rm -rf a.txt
##-----------------------------------------------
# 周期性计划任务
~]# crontab -e
* * * */3 * bash /data/Filebeat/file.sh
# 没有域名的写法
#!/bin/bash
# 定义所有索引
index2="nginx_access_logs|nginx_error_log|web_app_logs|web_monitorlog|job_app_logs|api_app_logs|api_monitorlog|workflow_all_log"
## 注意如果没有域名则需要指定ip
ip=192.168.1.1
# 查看所有索引
curl -s -XGET "http://$ip:9200/_cat/indices" > a.txt
## 对应的下面需要换成ip:9200
# 过滤出现有的索引
remove=$(cat a.txt | grep -E "$index2" | awk '{print $3}')
# 循环删除
for i in $remove
do
curl -XDELETE "http://$ip:9200/${i}"
done
rm -rf a.txt
2.自动创建kibana索引
## 这里统一用的是域名,如果没有则需要自己定义ip
~]# vim file2.sh
#!/bin/bash
# 定义所有索引
INDEX='nginx_access_logs|nginx_error_log|web_app_logs|web_monitorlog|job_app_logs|api_app_logs|api_monitorlog|workflow_all_log'
# 定义url地址
URL=https://kibana.tke.com
# 定义日志文件
LOG=/root/index.log
# 判断域名是否配置hosts(这里的ip需配置自己的LB,我这里是172.17.0.50)
if ! cat /etc/hosts | grep kibana.tke.com &> /dev/null ;then
echo "172.17.0.50 kibana.tke.com" >> /etc/hosts
else
echo -e "\033[92m+ 开始创建kibana索引 +\n\033[0m"
fi
# 过滤出现有的索引,这里如果没有域名则需要手动过滤出IP替换
## 需要指定ip
curl -s -XGET 'http://es.tke.com/_cat/indices' > a.txt
index2=$(cat a.txt | grep -E "$INDEX" | awk '{print $3}')
# 循环创建
for i in $index2
do
curl -s -k -f -XPOST -H 'Content-Type: application/json' -H 'kbn-xsrf: anything' \
"${URL}/api/saved_objects/index-pattern/$i" -d"{\"attributes\":{\"title\":\"$i\",\"timeFieldName\":\"@timestamp\"}}" >> $LOG
done
# 注意改脚本需手动
|