kibana使用

我是灰太狼sjh發表於2018-09-17

kibana更新6.*
更新後執行kibana要求elasticsearch5.*版本。

更新elasticsearch
下載並安裝 public signing key:

rpm –import https://artifacts.elastic.co/GPG-KEY-elasticsearch

新增elasticsearch的repo,在/etc/yum.repos.d/下新增elasticsearch.repo

vi /etc/yum.repos.d/elasticsearch.repo
貼上下面內容到elasticsearch.repo中

[elasticsearch-5.x]
name=Elasticsearchrepositoryfor5.xpackages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

使用yum命令安裝Elasticsearch

yum install elasticsearch

這裡寫圖片描述

elasticsearch5.* 最低2g 記憶體。。

elasticsearch的外掛也要安裝。。

安裝kibana 5.*
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.2.0-linux-x86_64.tar.gz
解壓 ,更新config
這裡寫圖片描述
執行kibana
這裡寫圖片描述

體驗新版本kibana。。。
這裡寫圖片描述

新建索引時提示:Unable to fetch mapping,Do you have indices matching the pattern

這裡寫圖片描述
這就說明logstash沒有把日誌寫入到elasticsearch。

解決方法:

檢查logstash與elasticsearch之間的通訊是否有問題,一般問題就在這。

現在開始體驗kibana 5.*:

   1.載入案例資料到你安裝的Elasticsearch中

         2. 定義至少一個索引匹配模式

         3.使用Discover功能探索你的資料

         4.建立一個visualization圖形化地展示你的資料

         5.把許多visualization彙編組裝成一個Dashboard

 本段內容假設你已經安裝好了Kibana和Elasticsearch,並且Kibana連線到了Elasticsearch。



 在你開始之前:載入案例資料

 本段教程依賴如下資料集:

        1. 莎士比亞的所有著作,合適地解析成了各個欄位:shakespeare.json。

        2. 隨機生成的虛構賬號資料:accounts.json

        3. 隨機生成的日誌檔案:logs.jsonl


  莎士比亞資料集由如下資料格式組織

{
“line_id”: INT,
“play_name”: “String”,
“speech_number”: INT,
“line_number”: “String”,
“speaker”: “String”,
“text_entry”: “String”,
}
賬戶資料集由如下資料格式組織

{
“account_number”: INT,
“balance”: INT,
“firstname”: “String”,
“lastname”: “String”,
“age”: INT,
“gender”: “M or F”,
“address”: “String”,
“employer”: “String”,
“email”: “String”,
“city”: “String”,
“state”: “String”
}
日誌資料有幾十個不同的欄位,但是在教程中關注的欄位如下:

{
“memory”: INT,
“geo.coordinates”: “geo_point”
“@timestamp”: “date”
}
在匯入莎士比亞資料集之前,我們需要為各個欄位建立一個對映。對映把索引裡的文件劃分成邏輯組,指明欄位的特徵,如欄位是否可被搜尋、是否被標記、是否能被拆分成多個文字等。
使用以下命令為莎士比亞資料集建立一個對映。

curl -XPUT http://localhost:9200/shakespeare -d ’
{
“mappings” : {
default” : {
“properties” : {
“speaker” : {“type”: “string”, “index” : “not_analyzed” },
“play_name” : {“type”: “string”, “index” : “not_analyzed” },
“line_id” : { “type” : “integer” },
“speech_number” : { “type” : “integer” }
}
}
}
}
‘;
這個對映指明瞭資料集的如下特徵:
1. speaker欄位是一個字串,並且不被分析。這個欄位的字串被視為一個單元,即時欄位值有多個文字。

2.play_name同樣符合上述特徵。

3.line_id和speech_number是一個整數。

日誌資料需要一個對映表明地理位置的經緯度,通過在那些欄位使用一個geo_point型別。

使用以下命令為日誌資料建立一個geo_point對映。

curl -XPUT http://localhost:9200/logstash-2015.05.18 -d ’
{
“mappings”: {
“log”: {
“properties”: {
“geo”: {
“properties”: {
“coordinates”: {
“type”: “geo_point”
}
}
}
}
}
}
}
‘;
curl -XPUT http://localhost:9200/logstash-2015.05.19 -d ’
{
“mappings”: {
“log”: {
“properties”: {
“geo”: {
“properties”: {
“coordinates”: {
“type”: “geo_point”
}
}
}
}
}
}
}
‘;
curl -XPUT http://localhost:9200/logstash-2015.05.20 -d ’
{
“mappings”: {
“log”: {
“properties”: {
“geo”: {
“properties”: {
“coordinates”: {
“type”: “geo_point”
}
}
}
}
}
}
}
‘;
那些賬號資料不需要任何對映,所以這個時候我們使用Elasticsearch的批量匯入API輸入資料,使用如下命令:
curl -XPOST ‘localhost:9200/bank/account/_bulk?pretty’ –data-binary @accounts.json
curl -XPOST ‘localhost:9200/shakespeare/_bulk?pretty’ –data-binary @shakespeare.json
curl -XPOST ‘localhost:9200/_bulk?pretty’ –data-binary @logs.jsonl
這些命令將會花費一段時間來執行,視可利用計算資源而定。
使用如下命令驗證成功匯入:

curl ‘localhost:9200/_cat/indices?v’

你將會看到輸出如下類似的資訊
這裡寫圖片描述

定義自己的索引模式編輯
載入到 Elasticsearch 的每組資料都有一個索引模式(Index Pattern)。 在上一節中,為莎士比亞資料集建立了名為 shakespeare 的索引,為 accounts 資料集建立了名為 bank 的索引。一個 索引模式 是可以匹配多個索引的帶可選萬用字元的字串。例如一般在通用日誌記錄中,一個典型的索引名稱一般包含類似 YYYY.MM.DD 格式的日期資訊。例如一個包含五月資料的索引模式: logstash-2015.05* 。

在本手冊中,我們載入的索引只要名稱匹配都可以正常工作。開啟瀏覽器,訪問 localhost:5601 。單擊 Management 選項,然後單擊 Index Patterns 選項。點選 Add New 定義一個新的索引模式。共有兩個樣本資料集,莎士比亞戲劇和金融賬戶,不包含時間序列資料。當您為這些資料集建立索引模式時,請確保 Index contains time-based events 沒有被選中。指定 shakes* 作為 Shakespeare 資料集的索引模式,然後點選 Create 建立索引模式,然後同樣的方法再建立一個名為 ba* 的索引模式。

這裡寫圖片描述

Logstash 資料集會包含時間序列資料,所以點選 Add New 來定義這個資料集的索引,確保 Index contains time-based events 被選中,並從 Time-field name 下拉選單中選擇 @timestamp 欄位。

注意
定義索引模式時,匹配該模式的索引必須在 Elasticsearch 中存在。並且那些索引必須包含資料。

探索您的資料
單擊側面導航中的 Discover 進入 Kibana 的資料探索功能:

這裡寫圖片描述

這裡寫圖片描述

在查詢框裡,您可以輸入 Elasticsearch 查詢語句 來搜尋您的資料。您可以在 Discover 頁面下檢視搜尋結果並在 Visualize 頁面下生成已儲存搜尋的視覺化效果。

當前索引模式顯示在查詢欄下面。索引模式決定了當您提交查詢時搜尋哪些索引。要搜尋一組不同的索引,可以從下拉選單中選擇不同的模式。要新增索引模式,請到 Management/Kibana/Index Patterns 介面下點選 Add New 。

您可以把您感興趣的欄位名稱和值當做搜尋的條件,對於數字欄位您可以使用比較運算子,例如大於(>)、小於(<)或等於(=)。您可以使用邏輯運算子 AND,OR 和 NOT 連線搜尋條件,這些運算子需要全部大寫。

嘗試選擇 ba* 索引模式並在查詢欄中輸入以下字串:

account_number:<100 AND balance:>47500
此查詢返回0到99之間所有餘額超過47,500的賬戶號碼。搜尋銀行樣本資料時,它返回5個結果:帳戶號碼8,32,78,85和97。

這裡寫圖片描述

視覺化資料
在側邊導航欄點選 Visualize 開始視化您的資料。

Visualize 工具能讓您通過多種方式瀏覽您的資料。例如:我們使用餅圖這個重要的視覺化控制元件來檢視銀行賬戶樣本資料中的賬戶餘額。點選螢幕中間的 Create a visualization 藍色按鈕開始。

有很多種視覺化控制元件可供選擇。我們點選其中一個名為 Pie 的。

您可以為已儲存的搜尋建立視覺化效果,或者輸入新的搜尋條件。使用後者時,首先需要選擇一個索引模式來指定搜尋哪些索引。我們希望搜尋賬戶資料,所以選擇 ba* 這個索引模式。

預設搜尋匹配所有的文件。初始餅圖沒有分割槽:
這裡寫圖片描述

您可以使用 Elasticsearch 桶聚合 指定圖表中顯示哪些資訊。桶聚合簡單的把符合您搜尋條件的文件分成不同類別,又叫做 buckets 。例如:包含每個賬戶的餘額資料。通過使用桶聚合,您可以建立多個賬戶餘額區間並找到每個區間內包含多少賬戶。

定義每個區間桶:

點選 Split Slices 桶類別。
從 Aggregation 列表中選擇 Range 。
從 Field 列表中選擇 balance 欄位。
點選四次 Add Range 把區間總數增加到6個。
定義以下區間:

0 999
1000 2999
3000 6999
7000 14999
15000 30999
31000 50000
點選 Apply changes images/apply-changes-button.png 更新圖表。
現在您可以看到1000個賬戶根據餘額區間劃分的比例情況。

這裡寫圖片描述

讓我們看以下資料的另一方面:賬戶擁有者的年齡。通過新增另一個桶聚合,您可以看到每個餘額區間的賬戶擁有者的年齡:

點選桶列表中的 Add sub-buckets 。
點選桶型別列表中的 Split Slices 。
在聚合列表中選擇 Terms 。
在欄位列表中選擇 age 。
點選 Apply changes images/apply-changes-button.png。
現在您可以看到根據賬戶持有者的年齡劃分的環形結構顯示在餘額區間外側。
這裡寫圖片描述

點選 Save 然後輸入名稱 Pie Example 來儲存這個圖表供以後使用。

下一步,我們來看一下莎士比亞資料集中的資料。讓我們找出每部劇中的臺詞數,然後通過柱狀圖來顯示這些資料:

點選 New 然後選擇 Vertical bar chart 。
選擇 shakes* 索引模式。因為目前並沒有定義任何桶,您將會看到唯一的一個柱形,它代表著匹配預設通配請求的所有文件數。

沒有資料。。。有問題。。先跳過。。

下一步,我們使用地圖來視覺化日誌樣本資料集中的地理標識資訊。

點選 New 。
選擇 Coordinate map 。
選擇 logstash-* 索引模式。
設定我們要檢視的事件的時間視窗:
在 Kibana 工具欄中點選時間控制元件選擇。
點選 Absolute 。
設定開始時間為 May 18, 2015,結束時間為 May 20, 2015。
設定好時間範圍後,點選 Go 按鍵並點選右下角向上的小箭頭關閉時間控制元件。
因為目前沒有定義任何桶,您將只會看到一幅世界地圖:

1這裡寫圖片描述

選擇 Geo Coordinates 作為桶,並點選 Apply changes images/apply-changes-button.png 來顯示日誌檔案中對應的地理座標。您的圖表應該如下所示:

這裡寫圖片描述

您可以通過點選和拖動來瀏覽地圖,通過 images/viz-zoom.png 按鈕放大縮小,或者點選 Fit Data Bounds images/viz-fit-bounds.png 縮放到最低水平來顯示所有部位。您也可以通過點選 Latitude/Longitude Filter images/viz-lat-long-filter.png 並在地圖上畫框來包含或去除某個矩形區域。已被應用的過濾器顯示在查詢欄下方。滑鼠懸停在過濾器上方可以顯示切換、固定、反轉和刪除該過濾器的控制選項。

儲存這個地圖並命名為 Map Example 。

全部放入儀表盤

  一個Kibana儀表盤是許多圖表的集合允許你整理和分享。點選Dashboard頁面以開始,點選搜尋框最右邊的Add Visualization按鈕,顯示出已儲存圖表的列表。選擇Markdown Example、Pie Example、Bar Example和Map Example,然後點選底部小小的箭頭關閉列表。你可以通過點集合拖拽標題條移動各個圖表的容器,通過拖拽圖表容器右下角調整容器大小。你的樣例儀表盤最終看起來差不多是這樣:

這裡寫圖片描述

點選Save Dashboard 按鈕,然後為儀表盤命名為demo Dashboard。你可以通過點選Share 按鈕來顯示HTML嵌入程式碼或者是一個定向連結分享一個儲存的儀表盤。

相關文章