fbpx

Elastic Beats – 輕量型資料採集工具

前言

在介紹 Elastic Beats 之前,我們必須先認識 Elastic Stack , Elastic Stack 是由 ElasticsearchLogstash 和 Kibana 組成,它們的任務是提供中心化的日誌儲存功能,協助用戶發現伺服器與應用程式中的問題,讓日誌的搜尋與監控變得輕而易舉。

然而,在現今的網路世界,日誌資料繁雜且多樣,資料的格式也不盡相同,如果沒有有效的工具和策略,彙整及分析日誌將會花費大量時間。因此 Elastic Beats 便應運而生。這篇文章,我們會探討 Beats 是什麼?以及它在 ELK 家族中的定位為何? 

elk-stack-elkb-diagram

elk image

Elastic Beats 是什麼 ?

Elastic Beats 是一種輕量化的資料搜集平台,它的任務為搜集各種不同型態的 Log (日誌檔案) ,面對千百種資料格式,Elastic Beats 皆有相對應的搜集器對應。Elastic Beats 是由多種資料搜集器組合而成,包含專門搜集檔案的 File Beat,搜集系統各項指標的 Metric Beat,分析各種網路數據的 Packetbeat ,以及搜集 Windows 系統資料的 Winlog Beat。

雖然 Beats 只能搜集日誌,無法對 Raw Data (原始資料)進行預處理,但這也意味部署 Beats 所耗費的系統資源非常少,能夠達到在任意環境中迅速部署的優勢。在 ELK 的工作流程中, Beats 會將收集到的資料傳送到 Logstash 或 Elasticsearch 中進行後續的作業。

what-are-elastic-beats

Beats 大家族由誰組成 ?

面對千百種格式的日誌資料,Beats 都有相對應的接收器應對,這些搜集器的集合體就是所謂的 Elastic Beats,

以下內容將會介紹 Beats 的所有資料接收器,以及它們專門搜集的資料類型。

Beats Family

  • Filebeat – 日誌文件(logs)

無論您是從安全設備、雲端、容器、主機還是 OT 進行採集,Filebeat 都可以提供輕量的方式來發送和匯總日無論您是從安全設備、雲端、容器、主機還是 OT 進行採集,Filebeat 都可以提供輕量的方式來發送和匯總日誌和文件,讓簡單的事不再複雜。

  • Metricbeat – 指標(metrics)

從 CPU 到記憶體,從 Redis 到 Nginx 等等,MetricBeat 用於從系統和服務收集指標,以輕量型的方式傳送各種系統和服務統計資料。 

  • Packetbeat – 網路資料 (network data)

Packetbeat 是一個輕量級的網路資料包分析器,可將資料從您的主機和容器傳送到 Logstash 或 Elasticsearch。它可以監測網路流量,對於獲得可觀察性和保護環境十分重要,並助於確保高品質的性能和安全性。 

  • Winlogbeat – Windows 事件日誌(Windows event logs)

用於密切監測基於 Windows 的基礎架構上發生的事情。Winlogbeat 能將 Windows 事件日誌實時傳送到 Elasticsearch 和 Logstash。

  • Auditbeat – 稽核資料(audit data)

Auditbeat 是輕量型的稽核日誌採集器,可以收集您的 Linux 稽核框架資料並監測文件的完整性。 Auditbeat 將這些事件即時採集到 Elastic Stack 的其餘部分以供進一步分析。

  • Heartbeat – 運行時間監測(uptime monitoring)

Heartbeat 通過主動監測服務的可用性,監測給定的 URL 列表是否可用。Heartbeat 將此訊息和響應時間採集到 Elastic Stack 的其餘部分以供進一步分析。

  • Functionbeat – 雲端資料(cloud data)

在雲端供應商的功能即服務 (FaaS) 平台中部署的一項功能,以收集、採集和監測來自雲服務的資料。

3 個非用 Elastic Beats 不可的理由

(一) 資料採集好幫手

Beats 能夠搜集環境中伺服器的資料,將它們集中在 Elasticsearch。 Beats 能夠採集符合 Elastic Common Schema (ECS) 的資料,如果使用者想要更多的處理能力,可以發送到 Logstash 進行轉換和分析。

(二) 建置自己的 Beat 並向他人分享

每個開源 Beat 的基石都是 libbeat,這是用於發送資料的共享函式庫。Beats 為使用者提供所需的建構模組。讓他們能創造自己專屬的 Beats,並在社群上與同好分享。

(三) 從資料中獲得洞見 (Data Insight)

Beats 從您的環境中收集日誌和指標,記錄來自主機、Docker、Kubernetes 等平台及雲端的 metadata,再將它們傳送到 Elastic Stack。並利用 Kibana 的可視化功能,讓您能夠掌握富含洞見的資料。

Beats 在 ELK 中扮演的角色

由於 Logstash 和 Beats 皆為搜集日誌檔案的工具,許多人認為 Beats 在 ELK 中的定位太過模糊,甚至認為 Beats 是為了取代 Logstash 而誕生的。然而,事實卻正好相反,因為 Beats 的加入,傳統 ELK  的效能才有所提升,同時獲得了  E.L.K.B 這個新名稱。這個段落將會探討 E.L.K.B 的運作流程,Beats 在 ELK 中扮演的角色,以及 Beats 和 Logstash 的差異為何。

(一) E.L.K.B 運作流程 : 資料源 → Beats (搜集) → Logstash (轉換、彙整) → Elasticsearch (儲存、查詢) → Kibana (視覺化)

elkb-process

E.L.K.B 的工作程序如下:首先, Beats 會將採集到的眾多資料日誌傳送給 Logstash。再來,Logstash 會將資料過濾,轉換成統一格式,當資料被處理好後,Elasticsearch 會將資料進行儲存,最後,再利用 Kibana 的視覺化功能,將它們呈現於圖表中。透過這四種工具的相互協作,E.L.K.B 成為一種功能強大的資料處理平台。

我們從上文能夠看出,E.L.K.B 中的每個元件都各司其職。Beats 在整個工作流程中,是負責搜集資料源,讓 Logstash 只需統一資料格式,將工作量減輕。

(二) Beats VS Logstash -它們的差異為何?

Beats 是由多種日誌接收器組合而成的集合體,它的功能主要為搜集日誌,因此耗費的主機資源較少,且有快速部署及便捷的優勢,Logstash 雖有相似的功能,然而,除了搜集日誌,它還會將資料進行 Input/fliter/output 這三個步驟,因此需要耗費大量的系統資源,且工作效率較低。如果利用 Logstash 搜集一些簡單的文件日誌,那麼會有點大材小用,因此這類工作會交由 Beats 負責。

以一個生活化的例子比喻,我們可以將 Beats 和 Logstash 想像為水果採集工人和大型採收機。如果利用大型採收機採集各式各樣的水果,會耗費大量的時間及資源,因為每種水果的採收方式都不盡相同,也同時會面臨效率低下的問題。但是,如果利用採集工人,就能將這些問題解決,因為採集工人的靈活性大於採收機,也能節省採收的時間與成本。

從以上例子來看,我們不難發現 Beats 與 Logstash 之間的關係為協作而非替代。我們能將 Elastic Beats 視為 Logstash 的資料收集小幫手,因為有它的加入,ELK 架構才能應付更多更複雜的資料種類,並大大提升運作的效率,達到所謂的事半功倍。

filebeat-diagram

總結

Elastic Beats 是一種非常實用的工具,能將大量的 Raw Data(原始資料)傳送到 E.L.K 的架構中,讓這些資料變成富含洞見的訊息。Elastic Beats 幾乎不會佔用任何資源,代表使用者能夠在不犧牲主機效能的前提下,升級他們的 ELK ;另外,Elastic Beats 將廣大的社群作為後盾,如果在操作 Beats 上有任何疑問,都能夠在社群上獲得解答。

elk-stack-social-ads-elkb

相關文章