原因:
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'