ELK安裝指南-架構(gòu)篇(二)


2.1 最簡(jiǎn)單的 ELK 架構(gòu)

圖中 Logstash 多個(gè)的原因是考慮到程序是分布式架構(gòu)的情況,每臺(tái)機(jī)器都需要部署一個(gè) Logstash,如果確實(shí)是單服務(wù)器的情況部署一個(gè) Logstash 即可。 ? ? ? ?此架構(gòu)的優(yōu)點(diǎn)是搭建簡(jiǎn)單,易于上手。缺點(diǎn)是Logstash消耗系統(tǒng)資源比較大,運(yùn)行時(shí)占用CPU和內(nèi)存資源較高。另外,由于沒有消息隊(duì)列緩存,可能存在數(shù)據(jù)丟失的風(fēng)險(xiǎn),適合于數(shù)據(jù)量小的環(huán)境使用。
搭建簡(jiǎn)單,易于上手
優(yōu)點(diǎn):
Logstash消耗系統(tǒng)資源比較大
存在數(shù)據(jù)丟失的風(fēng)險(xiǎn)
缺點(diǎn)
Logstash需要部署到應(yīng)用服務(wù)器上,需要確保應(yīng)用服務(wù)器系統(tǒng)資源足夠
需要部署ES集群
前置資源:
2.2 引入 Kafka 的典型 ELK 架構(gòu)

為保證日志傳輸數(shù)據(jù)的可靠性和穩(wěn)定性,引入Kafka作為消息緩沖隊(duì)列,位于各個(gè)節(jié)點(diǎn)上的Logstash Agent(一級(jí)Logstash,主要用來傳輸數(shù)據(jù))先將數(shù)據(jù)傳遞給消息隊(duì)列,接著,Logstash server(二級(jí)Logstash,主要用來拉取消息隊(duì)列數(shù)據(jù),過濾并分析數(shù)據(jù))將格式化的數(shù)據(jù)傳遞給Elasticsearch進(jìn)行存儲(chǔ)。最后,由Kibana將日志和數(shù)據(jù)呈現(xiàn)給用戶。由于引入了Kafka緩沖機(jī)制,即使遠(yuǎn)端Logstash server因故障停止運(yùn)行,數(shù)據(jù)也不會(huì)丟失,可靠性得到了大大的提升。 ? ? ? ?該架構(gòu)優(yōu)點(diǎn)在于引入了消息隊(duì)列機(jī)制,提升日志數(shù)據(jù)的可靠性,但依然存在Logstash占用系統(tǒng)資源過多的問題,在海量數(shù)據(jù)應(yīng)用場(chǎng)景下,可能會(huì)出現(xiàn)性能瓶頸。
日志數(shù)據(jù)可靠
優(yōu)點(diǎn):
Logstash消耗系統(tǒng)資源比較大
海量數(shù)據(jù)應(yīng)用場(chǎng)景下,可能會(huì)出現(xiàn)性能瓶頸
缺點(diǎn)
Logstash需要部署到應(yīng)用服務(wù)器上,需要確保應(yīng)用服務(wù)器系統(tǒng)資源足夠
需要部署ES集群
需要部署Logstash集群
需要部署kafka集群
前置資源:
2.3 FileBeats + Kafka + ELK 集群架構(gòu)

日志采集器Logstash其功能雖然強(qiáng)大,但是它依賴java、在數(shù)據(jù)量大的時(shí)候,Logstash進(jìn)程會(huì)消耗過多的系統(tǒng)資源,這將嚴(yán)重影響業(yè)務(wù)系統(tǒng)的性能,而filebeat就是一個(gè)完美的替代者,它基于Go語言沒有任何依賴,配置文件簡(jiǎn)單,格式明了,同時(shí)filebeat比logstash更加輕量級(jí),所以占用系統(tǒng)資源極少,非常適合安裝在生產(chǎn)機(jī)器上。這就是推薦使用filebeat,也是 ELK Stack 在 Agent 的第一選擇。 ? ? ? ?此架構(gòu)適合大型集群、海量數(shù)據(jù)的業(yè)務(wù)場(chǎng)景,它通過將前端Logstash Agent替換成filebeat,有效降低了收集日志對(duì)業(yè)務(wù)系統(tǒng)資源的消耗。同時(shí),消息隊(duì)列使用kafka集群架構(gòu),有效保障了收集數(shù)據(jù)的安全性和穩(wěn)定性,而后端Logstash和Elasticsearch均采用集群模式搭建,從整體上提高了ELK系統(tǒng)的高效性、擴(kuò)展性和吞吐量。生產(chǎn)所需的配置較高,且涉及較多持久化操作,需要采用性能高配的云主機(jī)搭建方式。缺點(diǎn)在于整個(gè)系統(tǒng)涉及到的中間件較多,架構(gòu)復(fù)雜,且Logstash、Elasticsearch、kafka均需要搭建集群消耗資源較大。
日志數(shù)據(jù)可靠
保障了收集數(shù)據(jù)的安全性和穩(wěn)定性
優(yōu)點(diǎn):
生產(chǎn)所需的配置較高
中間件較多,架構(gòu)復(fù)雜
缺點(diǎn)
filebeat需要部署到應(yīng)用服務(wù)器上
需要部署ES集群
需要部署Logstash集群
需要部署kafka集群
前置資源: