Kibana自动关联ES索引
原因:
Kibana中关联ES索引需要手动操作,如果ES中索引较多(如每天生成),则工作量会比较大。
方法:
考虑使用Linux的cron定时器自动关联ES索引,原理是调用Kibana API接口自动关联ES索引(示例中ES索引按天生成)
需要了解的技术背景:
1、简单的shell脚本
2、Kibana手动关联过ES索引
3、Linux下的cron
流程:
1、创建脚本
a) 索引名称:demo-年-月-日(如demo-2019-01-01)
b) 脚本名称:today_index.sh
c) 脚本内容:
#!/bin/bash today=`date +%Y.%m.%d` demo='demo-'${today} echo ${today} curl -f -XPOST -H 'Content-Type: application/json' -H 'kbn-xsrf: anything' \ "http://localhost:5601/api/saved_objects/index-pattern/${demo}" -d"{\"attributes\":{\"title\":\"${demo}\",\"timeFieldName\":\"@timestamp\"}}"
2、设置cron定时器
a) 编辑crontab:crontab -e
b) 每隔5分钟执行一次脚本(Linux下cron最小单位为分钟)
*/5 * * * * bash /today_index.sh
c) 查看crontab:crontab -l
3、查看cron定时器执行日志
a) 日志文件位置:tail -f /var/log/cron
4、脚本自动创建关联ES索引的前提:Kibana至少存在一个默认关联索引(可通过Kibana手动创建)
总结:
1、上述示例可通过调整cron表达式、索引名称规则,按指定时间和规则自动关联ES索引
2、Linux下cron默认最小单位为分钟,也可以实现秒级定时任务
https://www.cnblogs.com/handle/p/9246197.html
3、删除索引的Kibana API接口
curl -XDELETE "http://localhost:5601/api/saved_objects/index-pattern/${demo}" -H 'kbn-xsrf: true'