Grafana與Kibana之間的比較
我們生活在一個大資料的世界中,即使是一個小型的IT環境也會產生大量資料。一旦組織弄清楚了生成資料的各種資料來源,以及收集,處理和儲存資料的方法,下一步工作的重點就是分析。
分析方法會根據用例、使用的工具以及資料本身而有所不同,但是視覺化資料的步驟,無論是日誌,度量標準還是跟蹤,現在都被視為標準的最佳實踐。視覺化資料可幫助團隊監控其環境,檢測模式並在識別異常行為時採取措施。在診斷和事後分析原因的情況下,視覺化資料提供了理解在給定時間點發生的事情所需的可見性。
Kibana和Grafana是兩種流行的開源工具,可以幫助使用者視覺化和理解大量日誌資料中的趨勢。在這篇文章中,我將簡要介紹每種工具並突出顯示它們之間的主要區別。
Kibana
Kibana是世界上最受歡迎的開源日誌分析平臺ELK Stack中的“K” ,它為使用者提供了一個工具,用於在儲存於Elasticsearch叢集中的日誌資料進行檢索,視覺化和構建儀表板。
Kibana的核心功能是資料查詢和分析。使用各種方法,使用者可以搜尋Elasticsearch中索引的資料,以查詢其資料中的特定事件或字串,以進行根本原因分析和診斷。基於這些查詢,使用者可以使用Kibana的視覺化功能,允許使用者使用圖表,表格,地理圖和其他型別的視覺化以各種不同的方式視覺化資料。
Grafana
Grafana是一個開源視覺化工具,可以在各種不同的資料儲存上使用,但最常用的是Graphite,InfluxDB,以及Elasticsearch等.
從本質上講,它是Graphite-web的一個功能豐富的替代品,可幫助使用者輕鬆建立和編輯儀表板。它包含一個獨特的Graphite目標解析器,可以輕鬆進行度量和功能編輯。使用者可以使用智慧軸格式(例如線條和點)建立全面的圖表,這是Grafana快速的客戶端渲染(即使在很長的時間範圍內) - 使用Flot作為預設選項。
1.日誌與指標
兩個視覺化工具之間的關鍵區別源於它們的目的。Grafana旨在分析和視覺化系統CPU,記憶體,磁碟和I / O利用率等指標。Grafana不允許全文資料查詢。另一方面,Kibana執行在Elasticsearch之上,主要用於分析日誌訊息。
如果您正在構建一個監控系統,兩者都可以很好地完成工作,儘管下面還將介紹一些差異。如果目標分析是您的日誌,對於任何記錄支援的用例 - 故障排除,取證,開發,安全性,Kibana是您唯一的選擇。
2.安裝和配置
Kibana和Grafana都非常易於安裝和配置。兩者都支援在Linux,Mac,Windows,Docker上安裝或從原始碼構建。Kibana支援在每個作業系統中更廣泛的安裝選項,但總而言之 - 這裡沒有太大的區別。由於Kibana在Elasticsearch之上使用,因此需要與Elasticsearch例項建立連線。
使用.ini檔案配置Grafana,與Kibana的語法敏感的YAML配置檔案相比,它更容易處理。Grafana還允許您使用環境變數覆蓋配置選項。
3.資料來源和整合
Grafana旨在用作分析指標的UI。因此,它可以與多個時間序列資料儲存一起使用,包括與Graphite,Prometheus,InfluxDB,MySQL,PostgreSQL和Elasticsearch的內建整合,以及使用外掛的其他資料來源。對於每個資料來源,Grafana都有一個特定的查詢編輯器,該編輯器針對該資料來源中包含的特性和功能進行了自定義。另一方面,Kibana僅適用於Elasticsearch,因此不支援任何其他型別的資料來源。
4.訪問控制和身份驗證
預設情況下,除非您使用X-Pack(商業捆綁的ELK附加元件,包括用於訪問控制和身份驗證)或開源解決方案(如SearchGuard),否則您的Kibana儀表板是公開的,可供公眾訪問。相比之下,Grafana提供內建的使用者控制和身份驗證機制,允許您限制和控制對儀表板的訪問,包括使用外部SQL或LDAP伺服器。此外,Grafana的API可用於儲存特定儀表板,建立使用者和更新資料來源等任務。您還可以建立特定的API金鑰並將其分配給特定的角色。
5.查詢
查詢和搜尋日誌是Kibana更強大的功能之一。使用Lucene語法,Elasticsearch Query DSL或實驗Kuery,可以按照時間順序在主日誌顯示區域中顯示結果,搜尋儲存在Elasticsearch索引中的資料。Lucene是一種非常強大的查詢語言,但不直觀,涉及一定的學習曲線。
使用Grafana,使用者可以使用查詢編輯器進行查詢。每個資料來源都有一個針對特定資料來源定製的不同查詢編輯器,這意味著所使用的語法根據資料來源而有所不同。例如,Graphite查詢將與Prometheus查詢不同。
6.儀表板和視覺化
Kibana和Grafana都擁有強大的視覺化功能。Kibana提供豐富的視覺化型別,允許您建立餅圖,折線圖,資料表,單度量視覺化,地理圖,時間序列和降價視覺化,並將所有這些組合到儀表板中。Kibana中的儀表板非常動態且功能多樣 - 可以即時過濾資料,並且可以輕鬆編輯儀表板並以整頁格式開啟。Kibana附帶了各種資料集的預設儀表板,以便於設定時間。
Grafana儀表板使Grafana成為一種流行的視覺化工具。它們因其完全多才多藝而聞名。Grafana中的視覺化稱為面板,使用者可以建立包含不同資料來源面板的儀表板。Grafana支援graph,singlestat,table,heatmap和freetext面板型別。Grafana使用者可以利用針對不同資料型別和來源的大型現成儀表板生態系統。
Grafana和Kibana都提供了許多自定義選項,允許使用者以他們想要的任何方式切片和切塊資料。使用者可以使用面板顏色,標籤,X和Y軸,面板尺寸等等。總而言之,Grafana擁有更廣泛的自定義選項,並且還可以使用面板編輯器和可摺疊行更輕鬆地更改不同的設定。
7.警報
Kibana和Grafana之間的一個關鍵區別是警報。從版本4.x開始,Grafana附帶內建警報引擎,允許使用者將條件規則附加到儀表板面板,從而導致觸發警報到您選擇的通知端點(例如,電子郵件,Slack,PagerDuty,自定義的webhooks)。Kibana沒有開箱即用的警報功能。要想向Kibana使用者新增警報,可以選擇託管的ELK堆疊,實施ElastAlert或使用X-Pack。
8.社群
這兩個開源工具都擁有強大的使用者社群和活躍的貢獻者。但是當看到GitHub上的兩個專案時,Kibana似乎有優勢。Grafana有大約14,000個程式碼提交,而Kibana有超過17,000個。這兩個專案都非常活躍,但仔細研究提交的頻率反映了Kibana的一定優勢。
Grafana的提交情況:
Kibana的提交情況:
在受歡迎程度方面,我們可以看看谷歌趨勢,以獲得指示。Kibana似乎也有優勢:
總結
Kibana和Grafana都是強大的視覺化工具。但是,它們的核心是用於不同的資料型別和用例。Grafana與時間序列資料庫(如Graphite或InfluxDB)是用於度量分析的組合,而Kibana是流行的ELK Stack的一部分,用於探索日誌資料。
這兩個平臺都是不錯的選擇,有時甚至可以相互補充。如上所述,大量組織將使用這兩種工具作為其整體監控堆疊的一部分。