- 背景
- 一、不支持多租戶
- 二刁品、Visualize不能定制化
- 三、從Visualize里過(guò)濾出的數(shù)據(jù)無(wú)法直接查看或?qū)С?/a>
- 四浩姥、Visualize/Dashboard不能進(jìn)行批量增刪改查
- 五挑随、跨行分析不方便
- 六、無(wú)法Join
- 七勒叠、不能自動(dòng)刷新index
- 八兜挨、基于Kibana的二次開發(fā)很不方便
背景
Kibana在 ELK 套裝里,負(fù)責(zé)數(shù)據(jù)搜索眯分、數(shù)據(jù)分析拌汇、數(shù)據(jù)可視化等基本功能。以下總結(jié)了使用Kibana過(guò)程中遇到的一些問(wèn)題弊决。
當(dāng)然噪舀,有些功能是elastic公司為了收費(fèi),在X-Pack里實(shí)現(xiàn)了飘诗,但并不妨礙我們吐槽它与倡。
一、不支持多租戶
- 數(shù)據(jù)安全性不高:所有人都可以登錄昆稿,也可以查看所有的數(shù)據(jù)纺座。
- 所有的圖表都是共享的
解決辦法一
數(shù)據(jù)分集群隔離。既然同一個(gè)ELK集群做不到多租戶溉潭,那就采用多ELK集群的辦法隔離
解決辦法二
searchguard
該產(chǎn)品可以很好的和 ELK 集成净响,并提供安全相關(guān)的一系列組件少欺。
其中,對(duì)用戶進(jìn)行index級(jí)別的讀馋贤、寫等權(quán)限管理赞别,是SearchGuard的免費(fèi)功能,其他類似打通LDAP掸掸,Kerberos認(rèn)證氯庆,日志審計(jì),REST API管理等功能扰付,依然是收費(fèi)的堤撵。詳情見 https://floragunn.com/searchguard-license-support/
二、Visualize不能定制化
Kibana的Visualize支持多達(dá)11種不同種類的圖表羽莺,可以覆蓋絕大部分的日常使用实昨。但是依然只是預(yù)先定義的模板,不能自己定制盐固。
例如餅圖荒给,鼠標(biāo)放在餅圖的每個(gè)塊上可以展示相關(guān)信息,但是無(wú)法直接顯示所有塊的信息刁卜。類似這樣:
或這樣:
三志电、從Visualize里過(guò)濾出的數(shù)據(jù)無(wú)法直接查看或?qū)С?/h1>
Visualize里展示的數(shù)據(jù)是聚合之后的數(shù)據(jù)。除了直接查看圖形化的數(shù)據(jù)蛔趴,還可以點(diǎn)擊左下角的圖標(biāo)挑辆,進(jìn)而展示 “Table”,“Request”孝情,“Response”鱼蝉,“Statistics”。
但是如果想查看未聚合的數(shù)據(jù)箫荡,就需要根據(jù)該Visualize的過(guò)濾條件魁亦,在Discover頁(yè)面里搜索,不太方便羔挡。
四洁奈、Visualize/Dashboard不能進(jìn)行批量增刪改查
例如,一般公司的產(chǎn)品都會(huì)區(qū)分正式線婉弹、預(yù)發(fā)線睬魂,那么一模一樣的Visualize,Dashboard就需要建兩遍镀赌;
又或者氯哮,公司擁有多個(gè)客戶,需要給每個(gè)客戶都建立類似的Dashboard,也無(wú)法批量進(jìn)行喉钢。
注:Kibana里可以保存這些Visualize/Dashboard姆打,可以導(dǎo)出 json 文件,但是導(dǎo)出的只是現(xiàn)有的圖表大盤的UUID肠虽,而不是定義幔戏,無(wú)法進(jìn)行修改,如下:
[
{
"_id": "c9fb5840-51c1-11e7-9ebc-39c0d13a1ac6",
"_type": "dashboard",
"_source": {
"title": "xxx",
"hits": 0,
"description": "",
"panelsJSON": "[{\"col\":1,\"id\":\"a24c3210-51c1-11e7-9ebc-39c0d13a1ac6\",\"panelIndex\":1,\"row\":1,\"size_x\":12,\"size_y\":2,\"type\":\"visualization\"},{\"size_x\":12,\"size_y\":2,\"panelIndex\":2,\"type\":\"visualization\",\"id\":\"54792420-51c2-11e7-9ebc-39c0d13a1ac6\",\"col\":1,\"row\":3}]",
"optionsJSON": "{\"darkTheme\":false}",
"uiStateJSON": "{}",
"version": 1,
"timeRestore": true,
"timeTo": "now",
"timeFrom": "now-20m",
"refreshInterval": {
"display": "5 seconds",
"pause": true,
"section": 1,
"value": 5000
},
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"filter\":[{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\"}}}]}"
}
}
}
]
20181205更新
這里光導(dǎo)出一個(gè) Dashboard是不行的税课,但是可以順帶把 Visualization闲延、Index Pattern 全部導(dǎo)出,就可以了韩玩。
- 解決了多處環(huán)境的問(wèn)題(一個(gè) export.json 可以用到多個(gè)地方)
- 不能解決編輯的問(wèn)題垒玲,比如給多個(gè)客戶展示相近的圖表
五、跨行分析不方便
Elasticsearch里的 document的概念對(duì)應(yīng)的是 logstash解析出來(lái)的一行找颓,因此跨行分析不行合愈。
注:
- 改善辦法:
- 在日志里增加唯一標(biāo)識(shí):可以在搜索的時(shí)候通過(guò)這個(gè)唯一標(biāo)識(shí)把不同的行同時(shí)搜出來(lái)進(jìn)行分析
- 在某一行里打印所有的信息:雖然會(huì)有信息冗余,但至少可以在這一行里拿到所有需要的信息
- Timelion:
Timelion本是Kibana的一個(gè)插件击狮,后來(lái)被合并到Kibana的代碼庫(kù)里佛析,作為默認(rèn)組件,它可以很好的折疊時(shí)間彪蓬,進(jìn)行同比或環(huán)比的操作寸莫,算是一種另類的跨行分析
六、 無(wú)法Join
除了上述的無(wú)法跨行分析档冬,也沒(méi)辦法join储狭,那么就只能在原始日志中多打印一些元數(shù)據(jù)了。
七捣郊、不能自動(dòng)刷新index
修改logstash的解析配置,會(huì)更新進(jìn)入Elasticsearch的字段慈参,而在Kibana里需要手動(dòng)刷新 Index Pattern 才能使得Discover里展示的字段更新呛牲。
八、基于Kibana的二次開發(fā)很不方便
總結(jié)
已上是對(duì)Kibana免費(fèi)版的一些吐槽驮配,至于監(jiān)控娘扩、報(bào)警、報(bào)表等功能也被做進(jìn)X-Pack里需要付費(fèi)壮锻,就不再一一說(shuō)明了琐旁。
歡迎大家給出各自的意見與建議。