8.1 設定 Docker 日誌的索引
為了示範,我創建了一個包含 ELK 和 Filebeat 的 Docker 映像,其中包含一個測試程序來生成日誌。在這個例子中,我們將重點關注在 Kibana 中設置 Docker 日誌索引。
步驟 1:複製倉庫並啟動 ELK 堆棧
下載包含 ELK 堆棧設定的 Docker Compose 倉庫並運行它:
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker compose up
為了方便,省略了 -d
參數,因此可以看到 ELK 堆棧的啟動過程。啟動可能需要幾分鐘時間。成功啟動後,日誌中應出現以下記錄:
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],
"pid":6,"message":"http server running at http://0:5601"}
步驟 2:訪問 Kibana
打開網頁瀏覽器並進入網址 http://localhost:5601.

步驟 3:配置日誌索引
從 Kibana 左側選單中選擇 Discover 以轉到創建索引頁面。

步驟 4:創建新索引
點擊 Create index pattern 按鈕以打開設定表單。在 Index pattern name 輸入框中輸入 logstash-*
。如果設置正確,Kibana 將顯示符合規則的索引。

步驟 5:選擇時間欄位
在下一頁選擇時間戳的關鍵欄位 — @timestamp
。

步驟 6:檢查索引
配置完成後,您將看到索引設置頁面。目前不需要額外操作。

步驟 7:查看日誌
返回到 Discover 區域,這裡將顯示 Docker 容器的日誌記錄。

8.2 創建可視化日誌的儀表板
步驟 1. 創建可視化日誌的儀表板
在左側菜單點擊 "Dashboard" 選項 —— 它會帶我們進到創建儀表板的頁面。

步驟 2. 點擊「Create new dashboard」,然後我們會進到可以添加物件到這個 Dashboard 的畫面。

步驟 3. 點擊「Create new」按鈕,然後 Kibana 會讓我們選擇如何顯示數據。那裡有一堆選項,但我們先看兩種例子 ——「Vertical Bar」風格的圖表和「Data Table」的表格表示。其他的設置方法都類似。

8.3 日誌的直方圖
讓我們以「Vertical Bar」為例,建立一個直方圖,來顯示服務成功和失敗請求的比例。配置完成後,我們會得到這樣的圖表:

成功的請求是指回應碼小於 < 400 的請求,而所有 >= 400 的請求都被認為是有問題的。
首先需要為圖表選擇數據來源。我們使用之前建立的 Index Pattern。

選擇數據來源後,系統會默認顯示一個通用圖表。現在我們來進行設定。

在「Buckets」部分,點選「Add」,選擇「X-axis」並設置 X 軸。X 軸將顯示時間戳。在「Aggregation」欄位內選擇「Date Histogram」,而「Field」欄位中填入「@timestamp」。「Minimum interval」欄位可以保持「Auto」。

點擊「Update」,圖表上便會顯示每 30 秒的請求數量。

現在來配置 Y 軸上的柱狀圖。此時顯示的是時間區間內的請求總數。我們將聚合方式更改為「Sum Bucket」,以便能顯示成功和有問題的請求。在 Bucket → Aggregation 部分選擇「Filters」,設置過濾器:填入「statusCode >= 400」。在「Custom label」欄位中寫上對應的指標名稱。

點擊「Update」,圖表將只顯示有問題的請求數據。

想更改柱狀圖的顏色嗎?點擊圖表圖例中的圓形即可選擇顏色。

接著我們加入成功請求的數據。在「Metrics」部分點擊「Add」,選擇「Y-axis」。設定方式與之前類似,但這次的過濾器填入「statusCode < 400」。

更改新柱狀圖的顏色,最後我們就能得到一個顯示成功和有問題請求比例的圖表。

別忘了點擊畫面上方的「Save」按鈕保存圖表。輸入名稱後,它將出現在 Dashboard 中。

8.4 日誌表格
來吧,我們做個「Data Table」表格,方便查看所有請求的 URL 列表以及它們的數量。我們跟之前的 Vertical Bar 一樣,先選擇數據來源。

選擇數據來源後,畫面上會出現一個帶有單列的表格,显示在選定時間內的請求總數。

接著我們來配置表格。到「Buckets」部份,點擊「Add」,然後選擇「Split rows」。

在彈出的「Aggregation」中選擇「Terms」,在「Field」中選擇「url.keyword」。

在「Custom label」字段裡輸入一個容易理解的名稱,例如「Url」。然後點擊「Update」,我們的表格就完成了。在表格中可以看到每個 URL 在選定時間內的請求次數。

想保存表格的話,點擊畫面頂部的「Save」,輸入名稱(例如「Urls」),然後回到 Dashboard。現在我們可以看到我們創建的兩個視覺化了。

GO TO FULL VERSION