
創作人:左衛東
審稿人:田雪松
Elastic Stack 完整版圖
Elastic Stack 是一系列由 Elastic 公司開發的産品元件,能夠安全可靠地擷取任何來源、任何格式的資料,然後實時地對資料進行搜尋、分析和可視化。Elastic Stack 舊稱 ELK Stack,主要有 Elasticsearch,Logstash,Kibana,Beats 四種元件組成。
Elastic Stack 功能豐富,他可以用來集中采集各類日志記錄,這在識别 Web 伺服器與應用程式相關的問題中起着重要作用。它使你可以在單個位置搜尋所有日志,并通過在 IT 環境中找到的特定時間範圍内,關聯它們的日志來确定跨多個伺服器的問題,這些特定時間範圍包括 Web 分析,業務智能,合規性和安全性的用例。同樣的,Elastic Stack 也可以将你海量的日志、名額和 APM 追蹤集中到單一技術棧中,進而即時全面地監測環境中所發生的所有事件,并采取對策。
Elastic Stack 元件主要優點如下:
- 配置簡單,開箱即用
上手簡單,隻需要修改幾行配置,就能快速搭建起一套 Elastic Stack 平台。
- 多種資料源支援
Beats 元件支援多種資料類型,能夠快速滿足日志,名額,網絡資料等多種資料源接入的需求。
- 性能優異
無論是資料寫入還是實時檢索,性能都相當優異。
-
叢集擴充性強
Elasticsearch 和 Kibana 均可以進行靈活擴充,能夠有效提高叢集性能和高可用性。
- 多元度分析
得益于 Elasticsearch 強大的搜尋能力和 Kibana 優秀的可視化功能,能夠從多個次元,對資料進行聚合分析并且展示。
Elastic Stack 應用場景
Elastic Stack 除了采集提供采集各類日志的能力外,它還提供了許多開箱即用的場景,如企業搜尋,可觀測性,安全解決方案等。
企業搜尋
Elastic 企業搜尋由 Elasticsearch 提供支援,性能優異,同時其采用的相關性模型已針對實際的自然搜尋進行優化且得到了實踐驗證,是以能夠快速投入應用。同時它又提供了靈活的定制選項,可以讓客戶快速根據自身需要打造精緻又自然的搜尋體驗。
可觀測性
Elastic Stack 将您的可觀測性資料統一到一個強大的資料存儲中,便于您實時搜尋并應用互動式分析。憑借日志、名額和 APM 追蹤之間的直覺導航,便能依賴 Machine Learning 暴露異常數值,并對您系統中發生的所有事件采取對策。同時提供良好的可視化體驗,能夠以最直覺的方式展示您的資料,完美掌握系統運作狀态。
安全解決方案
Elastic 安全助力分析師防禦、檢測威脅,并就威脅做出響應。免費、開放的解決方案提供了 SIEM、Endpoint Security、威脅搜尋、雲監測等功能。通過整個環境無死角的惡意軟體和勒索軟體防禦體系,避免破壞和損失。同時為從業人員提供直覺的 UI ,簡化事件管理。利用可視化功能進行監測和搜尋,描繪出攻擊的來源、程度和時間線 — 通過分析師驅動型的關聯性将資訊轉變為見解。通過内置式案例管理和自動化操作加快響應速度。
Elasticsearch 在 Elastic Stack 中的位置及能力
Elasticsearch 是一個分布式的免費且開放的搜尋和分析引擎,适用于所有類型的資料,包括文本、數字、地理空間、結構化和非結構化資料。Elasticsearch 在 Apache Lucene 的基礎上開發而成,以其簡單的 RESTful API、相關性搜尋,高性能和高可擴充性而聞名,是 Elastic Stack 的核心元件。
Elasticsearch 在 Elastic Stack 中的作用
在 Elastic Stack 體系中,Elasticsearch 提供資料的存儲及檢索能力,并且它是最核心的元件。外部資料采集到 Elasticsearch 後,使用者便可針對他們的資料運作複雜的查詢,并使用聚合來檢索自身資料的複雜彙總。
Elasticsearch Index
一個 Elasticsearch Index 指互相關聯的文檔集合。Elasticsearch 以 JSON 文檔的形式存儲資料。每個文檔都會在一組鍵(字段或屬性的名稱)和它們對應的值(字元串、數字、布爾值、日期、數組自值、地理位置或其他類型的資料)之間建立聯系。
Elasticsearch 使用的是一種名為反向索引的資料結構,這一結構的設計可以允許十分快速地進行全文本搜尋。反向索引會列出在所有文檔中出現的每個特有詞彙,并且可以找到包含每個詞彙的全部文檔。
在建立索引的過程中,Elasticsearch 會存儲文檔并建構反向索引,這樣使用者便可以近實時地對文檔資料進行搜尋。索引過程是在索引 API 中啟動的,通過此 API 你既可向特定索引中添加 JSON 文檔,也可更改特定索引中的 JSON 文檔。
Elasticsearch 能力
Elasticsearch 很快
由于 Elasticsearch 是在 Lucene 基礎上建構而成的,是以在全文本搜尋方面表現十分出色。Elasticsearch 同時還是一個近實時的搜尋平台,這意味着從文檔索引操作到文檔變為可搜尋狀态之間的延時很短,一般隻有一秒(這個可以同過配置進行調整)。是以,Elasticsearch 非常适用于對時間有嚴苛要求的用例,例如安全分析和基礎設施監測。
Elasticsearch 具有分布式的本質特征
Elasticsearch 中存儲的文檔分布在不同的容器中,這些容器稱為分片,可以進行複制以提供資料備援副本,以防發生硬體故障。Elasticsearch 的分布式特性使得它可以擴充至數百台(甚至數千台)伺服器,并處理 PB 量級的資料。
Elasticsearch 包含一系列廣泛的功能
除了速度、可擴充性和彈性等優勢以外,Elasticsearch 還有大量強大的内置功能(例如資料彙總和索引生命周期管理),可以友善使用者更加高效地存儲和搜尋資料。
Logstash 在 Elastic Stack 中的位置及能力
Logstash 是免費且開放的伺服器端資料處理管道,能夠從多個來源采集資料,轉換資料,然後将資料發送到你最喜歡的“存儲庫”中。
Logstash 在 Elastic Stack 中的作用
Logstash 是 Elastic Stack 的核心産品之一,可用來對資料進行聚合和處理,并将資料發送到 Elasticsearch。Logstash 是一個開源的伺服器端資料處理管道,允許你在将資料索引到 Elasticsearch 之前同時從多個來源采集資料,并對資料進行豐富和轉換。
Logstash 能力
采集各種樣式、大小和來源的資料
資料往往以各種各樣的形式,或分散或集中地存在于很多系統中。Logstash 支援多種輸入選擇,可以同時從衆多常用來源捕捉事件。能夠以連續的流式傳輸方式,輕松地從你的日志、名額、Web 應用、資料存儲以及各種 AWS 服務采集資料。
實時解析和轉換資料
資料從源傳輸到存儲庫的過程中,Logstash 過濾器能夠解析各個事件,識别已命名的字段以建構結構,并将它們轉換成通用格式,以便進行更強大的分析和實作商業價值。
Logstash 能夠動态地轉換和解析資料,不受格式或複雜度的影響,比如:
- 利用 Grok 從非結構化資料中派生出結構
- 從 IP 位址破譯出地理坐标
- 将 PII (Personal Identifiable Information)資料匿名化,完全排除敏感字段
- 簡化整體處理,不受資料源、格式或架構的影響
選擇你的存儲庫,導出你的資料
盡管 Elasticsearch 是我們的首選輸出方向,能夠為我們的搜尋和分析帶來無限可能,但它并非唯一選擇。
Logstash 提供多種輸出元件,你可以将資料發送你要指定的地方,并且能夠靈活地解鎖衆多下遊用例。
Logstash 擴充性
Logstash 采用可插拔架構,擁有 200 多個插件。你可以将不同的輸入選擇、過濾器和輸出選擇混合搭配、精心安排,讓它們在管道中和諧地運作。
Kibana 在 Elastic Stack 中的位置及能力
Kibana 是一款适用于 Elasticsearch 的資料可視化和管理工具,可以提供實時的直方圖、線形圖、餅狀圖和表格等等。Kibana 同時還包括諸如 Canvas 和 Elastic Maps 等進階應用程式。Canvas 允許使用者基于自身資料建立定制的動态資訊圖表,而 Elastic Maps 則可用來對地理空間資料進行可視化。
Kibana 在 Elastic Stack 中的作用
Kibana 可以被視作 Elastic Stack(之前稱作 ELK Stack,分别表示 Elasticsearch、Logstash 和 Kibana)的制圖工具,但也可将 Kibana 作為使用者界面來監測和管理 Elastic Stack 叢集并確定叢集安全性,還可将其作為基于 Elastic Stack 所開發内置解決方案的彙集中心。
Kibana 能力
Kibana 與 Elasticsearch 和更廣意義上的 Elastic Stack 緊密內建,這一點使其成為支援下列場景的理想之選:
搜尋、檢視并可視化 Elasticsearch 中所索引的資料,并通過建立柱狀圖、餅狀圖、表格、直方圖和地圖對資料進行分析。儀表闆視圖能将這些可視化元素集中到一起,然後通過浏覽器加以分享,以提供有關海量資料的實時分析視圖,為下列用例提供支援:
- 日志處理和分析
- 基礎設施名額和容器監測
- 應用程式性能監測 (APM)
- 地理空間資料分析和可視化
- 安全分析
- 業務分析
- 機器學習
借助網絡界面來監測和管理 Elastic Stack 執行個體并確定執行個體的安全。
針對基于 Elastic Stack 開發的内置解決方案(面向可觀測性、安全和企業搜尋應用程式),将其通路權限集中到一起。
Kibana 搜尋及可視化流程
Kibana 允許對 Elasticsearch 索引中的資料進行可視化分析。當 Logstash(大型采集器)或 Beats(一系列單一用途的資料采集器)從日志檔案和其他來源采集非結構化資料并将這些資料轉化為結構化格式以用于 Elasticsearch 存儲和搜尋功能時,索引便會随之建立。
使用者通過 Kibana 界面能夠查詢 Elasticsearch 索引中的資料,然後借助标準圖表選項或諸如 Canvas 和 Maps 等内置應用對結果進行可視化。使用者可在不同圖表類型之中進行選擇,更改數字的聚合方式,還可篩選出特定的資料片段。
Beats 在 Elastic Stack 中的位置及能力
Beats 是一個輕量的資料采集器,它集合了多種單一用途資料采集器。它們從成百上千或成千上萬台機器和系統向 Logstash 或 Elasticsearch 發送資料。
Beats 在 Elastic Stack 中的作用
Beats 在 Elastic stack 中是資料的采集器,Beats 可以從你的各種環境中收集日志,名額,安全資料或者網路資料,然後通過來自主機、諸如 Docker 和 Kubernetes 等容器平台以及雲服務提供商的必要中繼資料對這些内容進行記錄,然後再傳輸到 Elastic Stack 中。
Beats 誕生的原因
ELK 在最初僅包含 Elasticsearch,Kibana,Logstash。在舊有的日志采集系統中,資料管道包含3個主要階段,資料采集,資料處理和存儲,其中的前兩個階段均由 Logstash 進行承擔。然後由于 Logstash 的設計導緻的内在問題,常常發生性能問題,尤其是在有複雜的管道處理流程中。是以,轉移 Logstash 的想法也應用而生,是以将資料提取任務抽離之後,就誕生了Beats。
Beats 優點
即插即用
Beats 能夠簡化從關鍵資料源(例如雲平台、容器和系統,以及網絡技術)采集、解析和可視化資訊的過程。隻需一行指令,就能完成資料的采集。
擴充項強
Beats提供了大量不同類型的采集器,同時提供了自定義協定所需的建構基石,友善擴充,同時 Beats 社群在不斷狀态,未來将會誕生滿足更多場景的 Beats。
輕量易部署
相較于 Logstash,Beats 體積更小,性能更高,能夠快速接入不同的資料源進行采集。
Beats 系列
Beats 提供了多種類型的采集器,友善你即插即用,搞定大多數資料類型的采集。
Filebeats :采集日志檔案
Filebeat 随附可觀測性和安全資料源子產品,這些子產品簡化了常見格式的日志的收集、解析和可視化過程,隻需一條指令即可。之是以能實作這一點,是因為它将自動預設路徑(因作業系統而異)與 Elasticsearch 采集節點管道的定義和 Kibana 儀表闆組合在一起。不僅如此,Filebeat 的一些子產品還随附了預配置的 Machine Learning 作業
Metricbeat :采集名額
将 Metricbeat 部署到你的所有 Linux、Windows 和 Mac 主機,并将它連接配接到 Elasticsearch 就大功告成了:你可以擷取系統級的 CPU 使用率、記憶體、檔案系統、磁盤 IO 和網絡 IO 統計資料,還可針對系統上的每個程序獲得與 top 指令類似的統計資料。
Packetbeat: 采集網絡資料
HTTP 等網絡協定能夠讓你密切監測應用程式延遲和錯誤、響應時間、SLA 性能、使用者通路模式和趨勢等等。 而 Packetbeat 則讓你能夠通路這些資料,了解流量的網絡傳輸狀态。這款工具完全采用被動模式,毫無延遲開銷,并且不會妨礙你的基礎架構。
Winlogbeat :采集 Windows 事件日志
用于密切監控基于 Windows 的基礎設施上發生的事件。使用 Winlogbeat,将 Windows 事件日志流式傳輸至 Elasticsearch 和 Logstash。
Auditbeat :采集審計資料
你可以使用既有審計規則來輕而易舉地收集資料,而無需重寫規則。是誰在什麼時間做了什麼事情?Auditbeat 會記住所有這些原始的系統調用資料,以及相關聯的路徑,友善你了解所需的上下文資訊。
Heartbeat :采集運作時間監控
無論你要測試同一台主機上的服務,還是要測試開放網絡上的服務,Heartbeat 都能輕松生成運作時間資料和響應時間資料。
Functionbeat :無需伺服器的采集器
你能夠通過無伺服器架構部署代碼,省去了啟動和管理額外的底層軟體和硬體的麻煩。通過 Functionbeat,你能夠同樣簡單地監測雲端基礎架構。
Journalbeat : journald日志采集器
開源社群一直在努力開發新的 Beats。
你可以通過連結檢視其中的一些社群開發的 Beats:
https://www.elastic.co/guide/en/beats/libbeat/current/community-beats.html創作人簡介:
左衛東,Elasticsearch 認證工程師