針對公司專案微服務化,隨著專案及伺服器的不斷增多,決定採用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....