#!/bin/sh
######################################################
# $Name: cron_create_dataview.sh
# $Function: 自动创建kibana数据视图
# $Author: cross
# $Create Date: 2022-03-31
# $change: none
######################################################
# 本例满足 xxx_yyy_2022.03.31 此种索引的数据视图创建 kibana版本 8.1.0
# 日志公共字段
namespace=【**】
# 日志索引列表,私有字段
log_list=(【**】 【**】 【**】)
# 当前日期
time_now=`date +%F | sed -e 's/-/\./g'`
# kibana用户
user=admin
passwd=【**】
echo -e "\n\n---------------------start------$(date +%F/%T)--------------------\n"
for log in ${log_list[@]};do
echo -e "\n##################现在开始创建索引视图:${namespace}_${log}_${time_now}##################\n"
data="{\"index_pattern\":{\"title\":\"${namespace}_${log}_${time_now}\",\"timeFieldName\":\"@timestamp\"}}"
req=`curl -s -H "Content-Type: application/json" -H "kbn-version: 8.1.0" -X POST -k -u ${user}:${passwd} https://127.0.0.1:5601/api/index_patterns/index_pattern -d ${data}`
req1=`echo ${req} | jq ".statusCode" `
if [ ${req1} != "null" ];then
echo -e "\n \n"
echo ${req} | jq ".message"
echo -e "\n \n"
else
req2=`echo ${req} | jq ".index_pattern.title" | sed -e 's/\"//g'`
if [ ${req2} != "null" ];then
echo -e "\n \n \e[0;32m视图 ${req2} 创建完成\e[0m \n \n"
else
echo -e "\n \n \e[0;31m遇到未知错误,可能创建失败,请检查或去kibana手动创建\e[0m \n \n"
fi
fi
done
echo -e "----------------------------------end---------------------------------------\n"
参考文档:
1、https://www.elastic.co/guide/en/kibana/current/data-views-api-create.html
2、https://blog.csdn.net/qq_25919879/article/details/114236089