溫馨提示×

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

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

ELK Stack的原理和應(yīng)用

發(fā)布時(shí)間:2021-06-25 09:24:47 來(lái)源:億速云 閱讀:145 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要講解了“ELK Stack的原理和應(yīng)用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“ELK Stack的原理和應(yīng)用”吧!

ELK Stack 簡(jiǎn)介

ELK 不是一款軟件,而是 Elasticsearch、Logstash 和 Kibana 三種軟件產(chǎn)品的首字母縮寫(xiě)。這三者都是開(kāi)源軟件,通常配合使用,而且又先后歸于 Elastic.co 公司名下,所以被簡(jiǎn)稱(chēng)為 ELK Stack。根據(jù) Google Trend 的信息顯示,ELK Stack 已經(jīng)成為目前最流行的集中式日志解決方案。

  • Elasticsearch:分布式搜索和分析引擎,具有高可伸縮、高可靠和易管理等特點(diǎn)。基于 Apache Lucene 構(gòu)建,能對(duì)大容量的數(shù)據(jù)進(jìn)行接近實(shí)時(shí)的存儲(chǔ)、搜索和分析操作。通常被用作某些應(yīng)用的基礎(chǔ)搜索引擎,使其具有復(fù)雜的搜索功能;

  • Logstash:數(shù)據(jù)收集引擎。它支持動(dòng)態(tài)的從各種數(shù)據(jù)源搜集數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行過(guò)濾、分析、豐富、統(tǒng)一格式等操作,然后存儲(chǔ)到用戶(hù)指定的位置;

  • Kibana:數(shù)據(jù)分析和可視化平臺(tái)。通常與 Elasticsearch 配合使用,對(duì)其中數(shù)據(jù)進(jìn)行搜索、分析和以統(tǒng)計(jì)圖表的方式展示;

  • Filebeat:ELK 協(xié)議棧的新成員,一個(gè)輕量級(jí)開(kāi)源日志文件數(shù)據(jù)搜集器,基于 Logstash-Forwarder 源代碼開(kāi)發(fā),是對(duì)它的替代。在需要采集日志數(shù)據(jù)的 server 上安裝 Filebeat,并指定日志目錄或日志文件后,F(xiàn)ilebeat 就能讀取數(shù)據(jù),迅速發(fā)送到 Logstash 進(jìn)行解析,亦或直接發(fā)送到 Elasticsearch 進(jìn)行集中式存儲(chǔ)和分析。

ELK 常用架構(gòu)及使用場(chǎng)景介紹

在這個(gè)章節(jié)中,我們將介紹幾種常用架構(gòu)及使用場(chǎng)景。

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

在這種架構(gòu)中,只有一個(gè) Logstash、Elasticsearch 和 Kibana 實(shí)例。Logstash 通過(guò)輸入插件從多種數(shù)據(jù)源(比如日志文件、標(biāo)準(zhǔn)輸入 Stdin 等)獲取數(shù)據(jù),再經(jīng)過(guò)濾插件加工數(shù)據(jù),然后經(jīng) Elasticsearch 輸出插件輸出到 Elasticsearch,通過(guò) Kibana 展示。詳見(jiàn)圖 1。

ELK Stack的原理和應(yīng)用

這種架構(gòu)非常簡(jiǎn)單,使用場(chǎng)景也有限。初學(xué)者可以搭建這個(gè)架構(gòu),了解 ELK 如何工作。

Logstash 作為日志搜集器

這種架構(gòu)是對(duì)上面架構(gòu)的擴(kuò)展,把一個(gè) Logstash 數(shù)據(jù)搜集節(jié)點(diǎn)擴(kuò)展到多個(gè),分布于多臺(tái)機(jī)器,將解析好的數(shù)據(jù)發(fā)送到 Elasticsearch server 進(jìn)行存儲(chǔ),最后在 Kibana 查詢(xún)、生成日志報(bào)表等。詳見(jiàn)圖 2。

ELK Stack的原理和應(yīng)用

這種結(jié)構(gòu)因?yàn)樾枰诟鱾€(gè)服務(wù)器上部署 Logstash,而它比較消耗 CPU 和內(nèi)存資源,所以比較適合計(jì)算資源豐富的服務(wù)器,否則容易造成服務(wù)器性能下降,甚至可能導(dǎo)致無(wú)法正常工作。

Beats 作為日志搜集器

這種架構(gòu)引入 Beats 作為日志搜集器。目前 Beats 包括四種:

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

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

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

  • Winlogbeat(搜集 Windows 事件日志數(shù)據(jù))。

Beats 將搜集到的數(shù)據(jù)發(fā)送到 Logstash,經(jīng) Logstash 解析、過(guò)濾后,將其發(fā)送到 Elasticsearch 存儲(chǔ),并由 Kibana 呈現(xiàn)給用戶(hù)。詳見(jiàn)圖 3。

ELK Stack的原理和應(yīng)用

這種架構(gòu)解決了 Logstash 在各服務(wù)器節(jié)點(diǎn)上占用系統(tǒng)資源高的問(wèn)題。相比 Logstash,Beats 所占系統(tǒng)的 CPU 和內(nèi)存幾乎可以忽略不計(jì)。另外,Beats 和 Logstash 之間支持 SSL/TLS 加密傳輸,客戶(hù)端和服務(wù)器雙向認(rèn)證,保證了通信安全。

因此這種架構(gòu)適合對(duì)數(shù)據(jù)安全性要求較高,同時(shí)各服務(wù)器性能比較敏感的場(chǎng)景。

引入消息隊(duì)列機(jī)制的架構(gòu)

到筆者整理本文時(shí),Beats 還不支持輸出到消息隊(duì)列,所以在消息隊(duì)列前后兩端只能是 Logstash 實(shí)例。這種架構(gòu)使用 Logstash 從各個(gè)數(shù)據(jù)源搜集數(shù)據(jù),然后經(jīng)消息隊(duì)列輸出插件輸出到消息隊(duì)列中。目前 Logstash 支持 Kafka、Redis、RabbitMQ 等常見(jiàn)消息隊(duì)列。然后 Logstash 通過(guò)消息隊(duì)列輸入插件從隊(duì)列中獲取數(shù)據(jù),分析過(guò)濾后經(jīng)輸出插件發(fā)送到 Elasticsearch,最后通過(guò) Kibana 展示。詳見(jiàn)圖 4。

ELK Stack的原理和應(yīng)用

這種架構(gòu)適合于日志規(guī)模比較龐大的情況。但由于 Logstash 日志解析節(jié)點(diǎn)和 Elasticsearch 的負(fù)荷比較重,可將他們配置為集群模式,以分擔(dān)負(fù)荷。引入消息隊(duì)列,均衡了網(wǎng)絡(luò)傳輸,從而降低了網(wǎng)絡(luò)閉塞,尤其是丟失數(shù)據(jù)的可能性,但依然存在 Logstash 占用系統(tǒng)資源過(guò)多的問(wèn)題。

Beats 作為日志搜集器直接導(dǎo)入es

ELK Stack的原理和應(yīng)用

感謝各位的閱讀,以上就是“ELK Stack的原理和應(yīng)用”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)ELK Stack的原理和應(yīng)用這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向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