kibana自动创建索引
一般索引按月、季或年为单位创建索引。我这里写成logstash-www-2019-03,www是URL的二级域名。格式类型完全根据自己方便就行。
当ELK集群中的索引过多时,我这里有100多个不同的日志,也就是得有100多个索引。如果要手动在在kibana界面上创建,还不得累死。所以就想到用程序调用API接口来做。如下是脚本:
#type_log.txt 文件中的有用部分全都是logstash中的type字段的值,其实可以写个程序将logstash配置文件中所有type类型给抽出来并与此文件进行同步,这样再结合下面的创建索引脚本,就可以实现新增一个elasticsearch索引,自动就在kibana中显示了。
$ cat type_log.txt
#beijing
www
...
#beijing
#shanghai
console
...
#!/bin/bash
###此脚本用来每个月自动更新kibana索引
###操作类型分为add和del
###每月1号凌晨3点左右执行
###所有elasticsearch中的索引写入type_log.txt文件中,然后顺序取出并创建kibana索引。如果新增索引,可直接写入type_log.txt并执行脚本即可。对已经存在的索引不会存在影响。
#新增索引add,删除索引del
action=add
URL="http://localhost:5601"
#index_pattern = "" 从type_log.txt文件中读取所有索引的type,每当有新的
#ID = index_pattern
domain_name_file=/usr/local/pkg/kibana/scripts/type_log.txt
time_field="@timestamp"
#date=`date +%Y-%m`
date=2019-02
#更新日志
log_file=/usr/local/pkg/kibana/scripts/update_index.log
echo "${date}" >> ${log_file}
#中间文件,用来存放type_log.txt中有用的行和其行号
middle_file=/usr/local/pkg/kibana/scripts/middle.txt
grep -E -n '^[[:alnum:]]' ${domain_name_file} > ${middle_file}
domain_name_num=`wc -l ${middle_file} | awk '{print $1}'`
for((i=1;i<=${domain_name_num};i++));do
domain_name_type=`sed -n "${i}p" ${middle_file}| awk -F':' '{print $2}'`
###开始新增新的索引
if [ $action == "add" ];then
curl -f -XPOST -H 'Content-Type: application/json' -H 'kbn-xsrf: anything' \
"${URL}/api/saved_objects/index-pattern/logstash-app_${domain_name_type}_${date}" -d"{\"attributes\":{\"title\":\"logstash-app_${domain_name_type}_${date}\",\"timeFieldName\":\"@timestamp\"}}" >> ${log_file}
elif [ $action == "del" ];then
curl -XDELETE "${URL}/api/saved_objects/index-pattern/logstash-app_${domain_name_type}_${date}" -H 'kbn-xsrf: true' > /dev/null
else
echo "action errror" >> ${log_file}
exit 100
fi
#对每一条操作都进行日志记录,这样每月凌晨执行完成后,可过滤日志文件,将错误发送给集群负责人。
if [ $? -eq 0 ];then
echo "success ${domain_name_type}" >> ${log_file}
else
echo "error ${domain_name_type}" >> ${log_file}
fi
done
#添加默认索引
curl -f -XPOST -H 'Content-Type: application/json' -H 'kbn-xsrf: anything' http://localhost:5601/api/kibana/settings/defaultIndex -d "{\"value\":\"logstash-app_www_${date}\"}" >> ${log_file}
mv -f /usr/local/pkg/kibana/scripts/middle.txt /tmp/
脚本中最重要的就是添加索引、删除索引和添加默认索引的三个API。阁下如果对脚本有高见,欢迎留言。
官方api文档:https://www.elastic.co/guide/en/kibana/current/api.html
kibana自动创建索引的更多相关文章
- elasticsearch 5.6.4自动创建索引与mapping映射关系 +Java语言
由于业务上的需求 ,最近在研究elasticsearch的相关知识 ,在网上查略了大部分资料 ,基本上对elasticsearch的数据增删改都没有太大问题 ,这里就不做总结了 .但是,在网上始终没 ...
- apach hadoop2.6 集群利用Phoenix 4.6-hbase 批量导入并自动创建索引
基础环境: 1.安装apach 版本hadoop2.6 2.部署hbase1.0.0 3.下载phoenix-4.6.0-HBase-1.0.下载地址(http://mirror.nus.edu.sg ...
- phoenix 利用CsvBulkLoadTool 批量带入数据并自动创建索引
需要先创建表: CREATE TABLE IF NOT EXISTS population ( state CHAR() NOT NULL, city VARCHAR NOT NULL, popula ...
- Elasticsearch索引的操作,利用kibana(如何创建/删除一个es的索引?)
我们已经通过索引一篇文档创建了一个新的索引 .这个索引采用的是默认的配置,新的字段通过动态映射的方式被添加到类型映射.现在我们需要对这个建立索引的过程做更多的控制:我们想要确保这个索引有数量适中的主分 ...
- 在MongoDB中执行查询、创建索引
1. MongoDB中数据查询的方法 (1)find函数的使用: (2)条件操作符: (3)distinct找出给定键所有不同的值: (4)group分组: (5)游标: (6)存储过程. 文档查找 ...
- Kibana自动关联ES索引
原因: Kibana中关联ES索引需要手动操作,如果ES中索引较多(如每天生成),则工作量会比较大. 方法: 考虑使用Linux的cron定时器自动关联ES索引,原理是调用Kibana API接口自动 ...
- Kibana 创建索引 POST 403 (forbidden) on create index
一.问题描述: Kibana创建索引:kibana > management > index patterns > create index pattern 索引名称: mercha ...
- elasticsearch自动按天创建索引脚本
elasticsearch保存在一个索引中数据量太大无法查询,现在需要将索引按照天来建,查询的时候关联查询即可 有时候es集群创建了很多索引,删不掉,如果是测试环境或者初始化es集群(清空所有数据), ...
- Kibana创建索引成功,但一直不显示出来(Fielddata is disabled on text fields by default. Set fielddata=true........)
现象 把EFK整个集群搭建完成后,通过Kibana操作界面创建索引(如图1),我创建了lile-zabbix*的索引,显示是创建成功了,但是只要我在重新刷新一次,已经创建的索引就“消失了”.后通过查看 ...
随机推荐
- linux-部署1
0.python安装 ubuntu16.04默认:安装了python2.7和python3.5: Ubuntu18.04默认:只有python3.6.8 下面是针对16.04: python/pyth ...
- 文本特征提取---词袋模型,TF-IDF模型,N-gram模型(Text Feature Extraction Bag of Words TF-IDF N-gram )
假设有一段文本:"I have a cat, his name is Huzihu. Huzihu is really cute and friendly. We are good frie ...
- [LeetCode] 378. Kth Smallest Element in a Sorted Matrix 有序矩阵中第K小的元素
Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth ...
- Firefox / Chrome 开发者工具 使用技巧
附上资料 https://developers.google.cn/web/tools/chrome-devtools/ 谷歌官方开发者工具文档 https://developer. ...
- JAVA主动抛异常的几种方式及捕捉结果输出对比
测试代码: /** * 测试异常抛出及捕捉 */ @Test public void test() { try { this.testA(); } catch (Exception ex) { Sys ...
- linux 开启oracle监听
secureCRT连接到数据库所在的linux机器,切换到oracle用户模式下 [root@nstlbeta ~]# su - oracle 步骤阅读 2 然后用sqlplus登录到数据库,关闭数据 ...
- 用java编写爬虫爬取电影
一.爬取前提1)本地安装了mysql数据库2)安装了idea或者eclipse等开发工具 二.爬取内容 电影名称.电影简介.电影图片.电影下载链接 三.爬取逻辑1)进入电影网列表页, 针对列表的htm ...
- Gin框架 - 项目目录
概述 今天给大家分享,在 API 端使用 Gin 框架时,项目的目录. 目录 ├─ Project Name │ ├─ config //配置文件 │ ├── ... │ ├─ controller ...
- ant-design-pro引用css
ant-design-pro中默认只能引用less文件,引用了css文件也是无效的.所以需要在配置文件config.js中找到 cssLoaderOptions,在 getLocalIdent中加入 ...
- java中需要转义的特殊字符
在Java中,不管是String.split(),还是正则表达式,有一些特殊字符需要转义, 这些字符是 ( [ { / ^ - $ ¦ } ] ...