溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行基于Elastic Stack的海量日志分析平臺(tái)實(shí)踐

發(fā)布時(shí)間:2021-12-29 13:40:30 來(lái)源:億速云 閱讀:128 作者:柒染 欄目:大數(shù)據(jù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何進(jìn)行基于Elastic Stack的海量日志分析平臺(tái)實(shí)踐,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Elastic Stack簡(jiǎn)介
Elastic Stack包括Beats、Elasticsearch、Logstash、Kibana、APM等,ELK是其核心套件。
Elasticsearch  是實(shí)時(shí)全文搜索和分析引擎,提供搜集、分析、存儲(chǔ)數(shù)據(jù)三大功能;  是一套開(kāi)放REST和JAVA API等結(jié)構(gòu)提供高效搜索功能,可擴(kuò)展的分布式系統(tǒng)。  它構(gòu)建于Apache Lucene搜索引擎庫(kù)之上。
Logstash  是一個(gè)用來(lái)搜集、分析、過(guò)濾日志的工具。  它支持幾乎任何類型的日志,包括系統(tǒng)日志、錯(cuò)誤日志和自定義應(yīng)用程序日志。  它可以從許多來(lái)源接收日志,這些來(lái)源包括 syslog、消息傳遞(例如 RabbitMQ)和JMX,它能夠以多種方式輸出數(shù)據(jù),包括電子郵件、websockets和Elasticsearch。
Kibana  是一個(gè)基于Web的圖形界面,用于搜索、分析和可視化存儲(chǔ)在 Elasticsearch指標(biāo)中的日志數(shù)據(jù)。  它利用Elasticsearch的REST接口來(lái)檢索數(shù)據(jù),不僅允許用戶創(chuàng)建他們自己的數(shù)據(jù)的定制儀表板視圖,還允許他們以特殊的方式查詢和過(guò)濾數(shù)據(jù)。

Beats是輕量級(jí)數(shù)據(jù)采集工具,包括:

1.Packetbeat(搜集網(wǎng)絡(luò)流量數(shù)據(jù));

2.Topbeat(搜集系統(tǒng)、進(jìn)程和文件系統(tǒng)級(jí)別的 CPU 和內(nèi)存使用情況等數(shù)據(jù));

3.Filebeat(搜集文件數(shù)據(jù));

4.Winlogbeat(搜集 Windows 事件日志數(shù)據(jù))

5.Metricbeat(收集系統(tǒng)級(jí)的 CPU 使用率、內(nèi)存、文件系統(tǒng)、磁盤(pán) IO 和網(wǎng)絡(luò) IO 統(tǒng)計(jì)數(shù)據(jù));

6.Auditbeat(采集linux審計(jì)日志); 

系統(tǒng)架構(gòu)
第一種ELK架構(gòu),是最簡(jiǎn)單的一種ELK架構(gòu)方式。優(yōu)點(diǎn)是搭建簡(jiǎn)單,易于上手。缺點(diǎn)是Logstash耗資源較大,運(yùn)行占用CPU和內(nèi)存高。另外沒(méi)有消息隊(duì)列緩存,存在數(shù)據(jù)丟失隱患。建議小規(guī)模集群使用。此架構(gòu)首先由Logstash分布于各個(gè)節(jié)點(diǎn)上搜集相關(guān)日志、數(shù)據(jù),并經(jīng)過(guò)分析、過(guò)濾后發(fā)送給遠(yuǎn)端服務(wù)器上的Elasticsearch進(jìn)行存儲(chǔ)。

Elasticsearch將數(shù)據(jù)以分片的形式壓縮存儲(chǔ)并提供多種API供用戶查詢,操作。  用戶亦可以更直觀的通過(guò)配置Kibana Web Portal方便的對(duì)日志查詢,并根據(jù)數(shù)據(jù)生成報(bào)表。

如何進(jìn)行基于Elastic Stack的海量日志分析平臺(tái)實(shí)踐  

 

第二種架構(gòu),引入了消息隊(duì)列機(jī)制,位于各個(gè)節(jié)點(diǎn)上的Logstash Agent先將數(shù)據(jù)/日志傳遞給Kafka(或者Redis),并將隊(duì)列中消息或數(shù)據(jù)間接傳遞給Logstash,Logstash過(guò)濾、分析后將數(shù)據(jù)傳遞給Elasticsearch存儲(chǔ)。最后由Kibana將日志和數(shù)據(jù)呈現(xiàn)給用戶。因?yàn)橐肓薑afka(或者Redis),所以即使遠(yuǎn)端Logstash server因故障停止運(yùn)行,數(shù)據(jù)將會(huì)先被存儲(chǔ)下來(lái),從而避免數(shù)據(jù)丟失。這種架構(gòu)適合于較大集群的解決方案,但由于Logstash中心節(jié)點(diǎn)和Elasticsearch的負(fù)荷會(huì)比較重,可將他們配置為集群模式,以分擔(dān)負(fù)荷,這種架構(gòu)的優(yōu)點(diǎn)在于引入了消息隊(duì)列機(jī)制,均衡了網(wǎng)絡(luò)傳輸,從而降低了網(wǎng)絡(luò)閉塞尤其是丟失數(shù)據(jù)的可能性,但依然存在Logstash占用系統(tǒng)資源過(guò)多的問(wèn)題。

如何進(jìn)行基于Elastic Stack的海量日志分析平臺(tái)實(shí)踐  

第三種架構(gòu),引入了Logstash-forwarder。首先,Logstash-forwarder將日志數(shù)據(jù)搜集并統(tǒng)一發(fā)送給主節(jié)點(diǎn)上的Logstash,Logstash分析、過(guò)濾日志數(shù)據(jù)后發(fā)送至Elasticsearch存儲(chǔ),并由Kibana最終將數(shù)據(jù)呈現(xiàn)給用戶。這種架構(gòu)解決了Logstash在各計(jì)算機(jī)點(diǎn)上占用系統(tǒng)資源較高的問(wèn)題。經(jīng)測(cè)試得出,相比Logstash,Logstash-forwarder所占用系統(tǒng)CPU和MEM幾乎可以忽略不計(jì)。另外,Logstash-forwarder和Logstash間的通信是通過(guò)SSL加密傳輸,起到了安全保障。如果是較大集群,用戶亦可以如結(jié)構(gòu)三那樣配置logstash集群和Elasticsearch集群,引入High Available機(jī)制,提高數(shù)據(jù)傳輸和存儲(chǔ)安全。更主要的配置多個(gè)Elasticsearch服務(wù),有助于搜索和數(shù)據(jù)存儲(chǔ)效率。但在此種架構(gòu)下發(fā)現(xiàn)Logstash-forwarder和Logstash間通信必須由SSL加密傳輸,這樣便有了一定的限制性。

如何進(jìn)行基于Elastic Stack的海量日志分析平臺(tái)實(shí)踐  

第四種架構(gòu),將Logstash-forwarder替換為Beats。經(jīng)測(cè)試,Beats滿負(fù)荷狀態(tài)所耗系統(tǒng)資源和Logstash-forwarder相當(dāng),但其擴(kuò)展性和靈活性有很大提高。Beats platform目前包含有Packagebeat、Topbeat和Filebeat三個(gè)產(chǎn)品,均為Apache 2.0 License。同時(shí)用戶可根據(jù)需要進(jìn)行二次開(kāi)發(fā)。這種架構(gòu)原理基于第三種架構(gòu),但是更靈活,擴(kuò)展性更強(qiáng)。同時(shí)可配置Logstash 和Elasticsearch 集群用于支持大集群系統(tǒng)的運(yùn)維日志數(shù)據(jù)監(jiān)控和查詢。

如何進(jìn)行基于Elastic Stack的海量日志分析平臺(tái)實(shí)踐  
系統(tǒng)架構(gòu)一個(gè)例子:MySQL日志審計(jì)系統(tǒng)
MySQL日志審計(jì)系統(tǒng),采用percona audit插件審計(jì)MySQL的訪問(wèn)情況,結(jié)果記錄到指定文件中。  通過(guò)Rsyslog將每個(gè)MySQL審計(jì)日志集中到Rsyslog Server的指定目錄中,使用filebeat監(jiān)控文件變化,上報(bào)到kafka。  使用Logstash消費(fèi)數(shù)據(jù),把數(shù)據(jù)過(guò)濾切割后,寫(xiě)入ES中,用戶通過(guò)kibana查詢相關(guān)數(shù)據(jù)。
系統(tǒng)架構(gòu)圖如下:

如何進(jìn)行基于Elastic Stack的海量日志分析平臺(tái)實(shí)踐    

由于使用Percona版本的MySQL Server,因此審計(jì)采用Percona的審計(jì)插件。  為了避免消耗過(guò)多性能,審計(jì)日志只記錄連接情況,輸出到文件中。
收集到的審計(jì)日志,通過(guò)Rsyslog的imfile模塊,采集審計(jì)日志,發(fā)送到Rsyslog Server上統(tǒng)一存儲(chǔ)。
Rsyslog上接收到的文件,通過(guò)filebeat上報(bào)kafka。  之后,Logstash負(fù)責(zé)消費(fèi)kafka的數(shù)據(jù),過(guò)濾切割后,寫(xiě)入到ES中。
用戶可以在kibana中查詢自己所需的數(shù)據(jù),如下圖:

如何進(jìn)行基于Elastic Stack的海量日志分析平臺(tái)實(shí)踐  

上述就是小編為大家分享的如何進(jìn)行基于Elastic Stack的海量日志分析平臺(tái)實(shí)踐了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI