我們提供各種采集架構,以滿足各種用例和網絡配置的需求。
要將數據采集到 Elasticsearch,請使用最符合你的需求和用例的選項。對于許多用戶和用例來說,最簡單的方法是使用 Elastic Agent 采集數據并將其發送到 Elasticsearch。Elastic Agent 和 Elastic Agent 集成適用于許多流行的平臺和服務,是一個不錯的起點。
提示:你可以在自己的硬件上托管 Elasticsearch,也可以將數據發送到 Elastic Cloud 上的 Elasticsearch。對于大多數用戶來說,Elastic Agent 直接寫入 Elastic Cloud 上的 Elasticsearch 是最簡單、最快捷的實現價值的方式。我們的托管 Elasticsearch 服務可在 AWS、GCP 和 Azure 上使用,你可以免費試用。
更多關于攝取架構的文章,你可以詳細閱讀文章 “Elastic:開發者上手指南” 中的 “Elastic Stack 架構” 章節。
添加數據到 Elasticsearch 中
你可以通過多種方式將數據導入 Elasticsearch,這稱為提取或索引數據。使用 Elastic Agent、Beats、Logstash、Elastic 語言客戶端、Elastic 連接器或企業搜索網絡爬蟲。所選的選項(或組合)取決于你是索引一般內容還是帶時間戳的數據。
一般內容
- 索引 HTML 頁面、目錄和其他文件等內容。使用 Elastic 語言客戶端將數據從應用程序直接發送到 Elasticseach。否則,請使用 Elastic 內容 connectors 或 Elastic 網絡爬蟲。
帶時間戳的數據
- 索引帶時間戳的數據的首選方法是使用 Elastic Agent。Elastic Agent 是一種向主機添加日志、指標和其他類型數據監控的單一、統一方法。它還可以保護主機免受安全威脅、查詢操作系統的數據以及轉發遠程服務或硬件的數據。每個基于 Elastic Agent 的集成都包括默認的提取規則、儀表板和可視化,可立即開始分析你的數據。Fleet Management 使你能夠從 Kibana 集中管理所有已部署的 Elastic Agent。
- 如果你的數據源沒有可用的 Elastic Agent 集成,請使用 Beats 收集數據。Beats 是數據傳送器,旨在從服務器收集和傳送特定類型的數據。你可以為要收集的每種類型的數據安裝一個單獨的 Beat。某些 Beats(例如 Filebeat 和 Metricbeat)可以使用提供默認配置、Elasticsearch 采集管道定義和 Kibana 儀表板的模塊。不為 Beats 提供 fleet 管理功能。
- 如果 Elastic Agent 和 Beats 都不支持你的數據源,請使用 Logstash。Logstash 是一個開源數據收集引擎,具有實時管道功能,支持各種數據源。你還可以使用 Logstash 來保存傳入數據,以確保在出現采集高峰或需要將數據發送到多個目的地時數據不會丟失。
設計數據提取管道
雖然你可以將數據直接發送到 Elasticsearch,但數據提取管道通常包括其他步驟來操作數據、確保數據完整性或管理數據流。
注意:該圖重點關注帶時間戳的數據。
數據處理
在將數據編入索引并存儲在 Elasticsearch 中之前,通常需要對其進行清理、規范化、轉換或豐富。
- Elastic Agent 和 Beats 處理器使你能夠在邊緣處理數據。如果你需要控制通過網絡發送的數據,或者需要使用主機上可用的信息豐富原始數據,這將非常有用。
- Elasticsearch 攝取管道使你能夠在數據進入時對其進行處理。這避免了在你從中收集數據的主機上增加額外的處理開銷。
- Logstash 使你能夠避免在邊緣進行重量級處理,但仍可以在將數據發送到 Elasticsearch 之前對其進行處理。這還使你能夠將處理后的數據發送到多個目的地。
預處理數據的一個原因是控制編入 Elasticsearch 的數據結構 —— 數據模式(data schema)。例如,使用攝取管道將數據映射到 Elastic Common Schema (ECS)。或者,在查詢時使用運行時字段來:
- 無需了解數據的結構即可開始處理數據
- 無需重新索引數據即可向現有文檔添加字段
- 覆蓋索引字段返回的值
- 無需修改底層架構即可為特定用途定義字段
數據完整性
Logstash 可增強你不想丟失的重要數據的數據彈性。Logstash 提供磁盤持久隊列 (persistent queue - PQ),無需外部緩沖機制即可吸收突發事件。它會嘗試傳遞存儲在 PQ 中的消息,直到傳遞至少成功一次。
Logstash 死信隊列 (dead letter queue - DLQ) 為 Logstash 無法處理的事件提供磁盤存儲,讓你有機會評估它們。你可以使用 dead_letter_queue 輸入插件輕松地重新處理 DLQ 事件。
數據流
如果你需要從多個 Beats 或 Elastic Agents 收集數據,請考慮使用 Logstash 作為代理。Logstash 可以從多個端點(即使在不同的網絡上)接收數據,并通過單個防火墻規則將數據發送到 Elasticsearch。與為每個端點設置單獨的規則相比,你可以用更少的工作獲得更高的安全性。
Logstash 可以從單個管道發送到多個輸出,以幫助你從數據中獲取最大價值。
接下來該怎么做
我們有指南和許多實踐教程,可幫助你開始將數據導入集群。
為 Elastic 解決方案導入數據
開始使用 Elastic Observability
- 使用 Elastic Observability 深入了解你的應用程序和系統的行為。按照我們的指南提取各種數據類型,例如日志和指標、跟蹤和 APM 以及來自 Splunk 的數據。還有幾個教程可供選擇。
將數據添加到 Elastic Security
- 使用 Elastic Security 快速檢測、調查和應對整個環境中的威脅和漏洞。你可以使用 Elastic Agent 將數據提取到 Elastic Defend 集成中,或與許多其他與 Elastic Security 協同工作的集成一起使用。你還可以從 Splunk 或發送符合 ECS 的安全數據的各種第三方收集器中提取數據。
使用 Elastic Agent、Beats 和 Logstash 采集數據
對于想要構建自己的解決方案的用戶,我們可以幫助你開始使用 Elasticsearch Platform 產品采集數據。
Elastic 集成
- Elastic 集成是一種將數據連接到 Elastic Stack 的簡化方式。集成適用于流行的服務和平臺,如 Nginx、AWS 和 MongoDB,以及許多通用輸入類型,如日志文件。
Beats 和 Elastic Agent 比較
- Beats 和 Elastic Agent 都可以直接或通過 Logstash 向 Elasticsearch 發送數據。你可以使用本指南來確定這些主要采集工具中的哪一個最適合你的用例。
Fleet 管理簡介
- Fleet 在 Kibana 中提供了一個基于 Web 的 UI,用于集中管理 Elastic Agent 及其策略。
Logstash 簡介
- 使用 Logstash 動態統一來自不同來源的數據,并將數據規范化到你選擇的目的地。
使用 Elastic 網絡爬蟲、連接器提取數據
使用網絡爬蟲添加數據
- 使用網絡爬蟲以編程方式從網站和知識庫中發現、提取和索引可搜索內容。
使用連接器添加數據
- 將數據從原始數據源同步到 Elasticsearch 索引。連接器使你能夠創建數據源的可搜索、只讀副本。
從你的應用程序中提取數據
Elasticsearch 語言客戶端
- 使用 Elasticsearch 語言客戶端將應用程序中的數據提取到 Elasticsearch 中。
企業搜索語言客戶端
- 企業搜索編程語言客戶端庫為這些語言提供本機 API,以將數據提取到企業搜索、應用搜索和工作場所搜索中。
應用程序提取教程
- 這些實踐指南演示了如何使用 Elasticsearch 語言客戶端從你的應用程序中提取數據。
操作和預處理數據
攝取管道 - ingest pipeline
- Elasticsearch 采集管道可讓你在索引之前對數據執行常見轉換。
Elastic Agent 處理器
- 使用 Elastic Agent 輕量級處理器在源頭解析、過濾、轉換和豐富數據。
創建 Logstash 管道
- 通過將插件(輸入、輸出、過濾器,有時還有編解碼器)串聯在一起來創建 Logstash 管道,以便在采集期間處理數據。
示例數據
如果你剛剛開始了解 Elastic,并且還沒有想好具體的用例,那么你可以加載 Kibana 中的一個示例數據集。它們配有示例可視化、儀表板等,可以快速了解 Elastic 的潛力。
攝取架構
Elastic Agent 到 Elasticsearch
什么時候使用?
你的數據源可以使用 Elastic Agent 集成:
- 安裝了 Elastic Agent 的軟件組件
- 使用 API 進行數據收集的軟件組件
Elastic Agent 經 Logstash 到 Elasticsearch
什么時候使用?
你需要 Logstash 提供的附加功能:
- Elastic Agent 和 Elasticsearch 之間的豐富
- 持久隊列 (PQ) 緩沖以適應網絡問題和下游不可用
- 在 Elastic Agent 對 Elastic Agent 網絡外部連接有網絡限制的情況下進行代理
- 數據需要根據內容路由到多個 Elasticsearch 集群和其他目的地
Elastic Agent 代理至 Elasticsearch
什么時候使用?
- Agents 具有網絡限制,阻止連接到 Elastic Agent 網絡之外。請注意,Logstash 作為代理是一種選擇。
Elastic Agent 到 Elasticsearch,使用 Kafka 作為中間件消息隊列
什么時候使用?
Kafka 是你的中間件消息隊列:
- Kafka ES 接收連接器,用于從 Kafka 寫入 Elasticsearch
- Logstash,用于從 Kafka 讀取并路由到 Elasticsearch
Logstash 到 Elasticsearch
什么時候使用?
- 你需要從 Elastic Agent 無法讀取的源(例如數據庫、AWS Kinesis)收集數據。查看 Logstash 輸入插件。
Elastic 物理隔離架構
什么時候使用?
- 你想要在隔離環境中部署 Elastic Agent 和 Elastic Stack(無法訪問外部網絡)