缘由:html
Kibana中关联ES索引须要手动操做,若是ES中索引较多(如天天生成),则工做量会比较大。shell
方法:json
考虑使用Linux的cron定时器自动关联ES索引,原理是调用Kibana API接口自动关联ES索引(示例中ES索引按天生成)api
须要了解的技术背景:bash
一、简单的shell脚本app
二、Kibana手动关联过ES索引curl
三、Linux下的cronurl
流程:spa
一、建立脚本
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\"}}"
二、设置cron定时器
a) 编辑crontab:crontab -e
b) 每隔5分钟执行一次脚本(Linux下cron最小单位为分钟)
*/5 * * * * bash /today_index.sh
c) 查看crontab:crontab -l
三、查看cron定时器执行日志
a) 日志文件位置:tail -f /var/log/cron
4、脚本自动建立关联ES索引的前提:Kibana至少存在一个默认关联索引(可经过Kibana手动建立)
总结:
一、上述示例可经过调整cron表达式、索引名称规则,按指定时间和规则自动关联ES索引
二、Linux下cron默认最小单位为分钟,也能够实现秒级定时任务
http://www.javashuo.com/article/p-envfginx-hm.html
三、删除索引的Kibana API接口
curl -XDELETE "http://localhost:5601/api/saved_objects/index-pattern/${demo}" -H 'kbn-xsrf: true'