這一次在 Discover 卡住蠻久的,詳情下述
這次下載的數據資料,請點選下載
https://download.elastic.co/demos/kibana/gettingstarted/logs.jsonl.gz
先解壓縮後,使用 head 指令印出前10行看看
我們可以發現 "{"index":{"_index":"logstash-2015.05.18","_type":"log"}}" 這一段,這表示在這個 JSON 檔案中,已經將一些資料格式都定義好了;等一下上傳上去的資料,就直接擁有 index 名稱。所以等一下在使用 R 進行上傳時,就可以略過 index 名稱的指定。
使用 R 上傳JSON檔案的程式碼如下, 嗯 就是這麼簡單
library(elastic)
# Connect OK!
x <- connect(
host = "333.asia-east1.gcp.elastic-cloud.com",
path = "",
user = "elastic",
pwd = "3336",
port = 9243,
transport_schema = "https"
)
logs0913_3 <- "/mnt/c/Users/excel/Downloads/logs.jsonl"
docs_bulk(x, logs0913_3 )
當然,如此還是不熟悉這樣的上傳模式,我們一樣可以透過 elastic co 的官網進行上傳。
因為我們的資格之中有日期時間格式,所以 elastic 還會很細心的提醒你,要選擇那個欄位做為時間主要的依據。對於系統維護人員來說,這是非常重要的一個選項。因為如果發生當機等異常狀況,你第一個想要知道的,一定是「什麼時候發生的?」「發生幾次?」「造成什麼影響?」。當然如果系統一切正常,你還是會在乎,在那個時段的負荷相對較高。
然後再讓我們切換回 "Discover" 介面中,我們選擇這次上傳的 index pattern進行資料探索。
這時候會發現,什麼東西都沒有出現!!!
所以首先要將時間切換為最近 6 年"Last 6 Year",這是因為範例資料的時區是2015年5月18日,而系統預設的最近15分鐘的資料。我就是在此處卡住很久。
切換後,就可以發現已經有資料明細出現了。
這時候可以再來試試 KQL ;例如我們可能會很有興趣,這些網頁瀏灠log中與jpg相關且response code是200的有那些呢 ?
extension:jpg and response:200
我們可以再進一步增加我們的時間限制範圍;例如這些 log 是來自於 CN 而且日期是早於2015年5月19的呢?
extension:jpg and response:200 and geo.dest:CN and @timestamp < "2015-05-19"
此處我們可以發現在 timestamp 的限制式中,我們直接使用 ISO 標準格式就可以。
總之,在這個範例中,最麻煩的是一開始要先把日期選對,否則怎麼下 KQL 都是無效的。
所以也許一個更好的學習方式,是透過 sample data 中的 "kibana_sample_data_logs" 進行學習,因為在那個虛擬資料中,會一直有當日的資料匯進來~