elk搭建及作圖

elk 搭建 我參考的是 這篇文章  https://www.cnblogs.com/yuhuLin/p/7018858.html ,寫的很全,很牛逼。

我補充一下 關於  logstash 輸入日誌的格式的自定義和  elk 畫圖的相關 知識。

 

首先,我按我的說法來解釋一下elk

elk 分別代表,elksticsearch, logstash , kibana

logstash 負責 收集日誌,收集的過程中可以自定義格式,然後按格式輸出到 elasticsearch ,elasticsearch 將 l 輸出過來的日誌存下來,e 有存數據的配置, kibana 是將  e 裏的數據 通過圖形來顯示出來,在我看來,l 裏的存的數據 是類似於 字典一樣的數據,  字典名字 和 字典裏的鍵值對。


下面詳細講解一下Logstash 的自定義配置文件,這是整個elk 的核心,定義了 輸入的文件的位置,以及將輸入的內容 按 自己想要的格式來重新定義一下。

過濾條件

 Kibana 輸出結果:


如果不加過濾條件, elk 輸出只有一條內容,這一條內容裏就是一條的log 日誌,這樣的話,如果想從elk 來分析 訪問來源或 狀態碼的情況,實現不了。這就需要將這一條內容再細分成多個字段來輸出,如何實現,首先,message 就代表 整條日誌,通過語法,自定義隔斷符,來講message 分解,然後類似於指針輸出一樣,從0 開始數,message[0]  就代表 第一個被分隔符 隔斷後的 第一個字段,類似awk 的-F  後的效果。具體的語法就類似於上邊的logstash 的過濾條件,很簡單,同時被分割符分割後的字段還可以再被分割,一樣的道理。

根據上面的配置 ,每條日誌輸出的結果就是這樣的了。 鍵值對 的形式



elk 的畫圖分析:

已 Line 圖爲例來分析:

如統計 不同狀態碼 隨時間的變化,

Y 軸選count ,X 軸選時間,然後對於Y軸的count,再細分,可以統計不同狀態碼的count或 不同域名的count ,區分的主要以field 來區分。

我想說的是一種想要自定義算法的統計,如我按上面的規則,可以統計 發送字節數 隨時間的變化,針對不通域名或不通的狀態碼,但得出的數據的單位 不能變,比如我日誌裏發送字節的單位是 B,我想呈現的是MB或GB ,如何實現,用  advanced 選項的 json input ,自定義算法,如  我想把最後的統計單位變成  MB  

{"script" : {"inline" : "(doc['bytes_sent'].value * 1 )  / 1000 / 1000  "}}

doc['bytes_sent'].value 就是 你再logstash 自定義的鍵的值的表示。用doc 來獲取, script 和 inline 語法固定,


自定義分割的時間段: 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章