ELK日誌分析方案

2021-09-19 19:21:34 字數 1729 閱讀 2086

針對公司專案微服務化,隨著專案及伺服器的不斷增多,決定採用elk(elasticsearch+logstash+kibana)日誌分析平台進行微服務日誌分析。

1.在微服務伺服器上部署logstash,作為shipper的角色,對微服務日誌檔案資料進行資料採集,將採集到的資料輸出到redis訊息佇列。

2.在另外一台伺服器上部署logstash,作為indexer的角色,從redis訊息佇列中讀取資料(可以對資料進行處理),輸出到elasticsearch-master主節點。

3.elasticsearch-master主節點內部與副節點同步資料。(elasticsearch集群建議3個服務以上奇數)

4.kibana部署一台伺服器內,讀取elasticsearch集群資料,展示web查詢頁面,提供資料展示。

在我這個最終方案中,選擇了使用redis作為訊息佇列進行緩衝,降低elasticsearch壓力,起到削峰作用,主要原因還是由於公司考慮成本問題,日誌收集也是只針對我們單個專案組來使用,所以選擇了公司現在就已經有的redis集群進行復用。

linux安裝logstash

linux安裝kibana

linux安裝elasticsearch

從日誌檔案讀取到redis

#從日誌檔案讀取資料

#file{}

#type 日誌型別

#path 日誌位置

# 可以直接讀取檔案(a.log)

# 可以所有字尾為log的日誌(*.log)

# 讀取資料夾下所有檔案(路徑)

#start_position 檔案讀取開始位置 (beginning)

#sincedb_path 從什麼位置讀取(設定為/dev/null自動從開始位置讀取)

input

}#根據時間戳分隔日誌

#grok 區分日誌中得字段

filter "

negate => true

what => previous

}#定義資料的格式

grok - % - % - % - % - % - %"}

}}#輸出資料到redis

#host redis主機位址

#port redis埠

#db redis資料庫編號

#data_type redis資料型別

#key redis的key

#password redis密碼

output

}

從redis讀取到es

#從redis內讀取資料

#host redis主機ip

#port redis埠

#data_type redis資料型別

#batch_count

#password redis密碼

#key redis讀取key

input

}#資料的輸出我們指向了es集群

#hosts elasticsearch主機位址

#index elasticsearch索引名稱

output "

}}

其他剩下的就是es集群和kibana了,這兩個沒什麼特別值得注意的地方,上網隨便搜,一大堆文章。

以上僅僅代表本人專案使用方案,不一定完美適合所有場景,僅供參考。

ELK日誌分析方案

針對公司專案微服務化,隨著專案及伺服器的不斷增多,決定採用elk elasticsearch logstash kibana 日誌分析平台進行微服務日誌分析。1.在微服務伺服器上部署logstash,作為shipper的角色,對微服務日誌檔案資料進行資料採集,將採集到的資料輸出到redis訊息佇列。...

ELK日誌簡化方案

elk是現在常用的日誌方案,有多種組合方式 elasticsearch kibana logstash 由logstash收集各終端的日誌,過濾後發到送elasticsearch,但logstatsh比較耗資源,會影響本地應用的效能 elasticsearch kibana filebeat 改由輕...

ELK 日誌分析體系

elk 日誌分析體系 elk 是指 elasticsearch logstash kibana三個開源軟體的組合。logstash 負責日誌的收集,處理和儲存 elasticsearch 負責日誌檢索和分析 kibana 負責日誌的視覺化 一 環境 1.centos linux release 7....