緣由: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'