前言
先前在 Splunk 基礎架構和運作元件文章中,我們已經知道 Splunk 有下列三個不同的層級,分別是「Data Input、Indexing、Search Management」來處理資料。本文的主題「Data Pipeline」便是指資料在 Splunk 運作環境中,經過各層級處理後的傳送路徑:
- Data Input 層級: 負責資料的 Input 處理作業。
- Indexing 層級: 負責資料的 Parsing 和 Indexing 處理作業。
- Search Management 層級: 負責資料的 Search 處理作業。
Data Pipeline 運作架構
了解 Splunk Data Pipeline 的運作概念後,接著我們深入針對每個層級中資料的處理作業階段,進行比較深入的運作原理了解。Input 階段 (Indexer / Universal Forwarder / Heavy Forwarder)
Splunk 從資料來源端收到「Raw Data Stream」(例如,透過 Indexer 匯入資料、透過 Forwarder 傳送資料),然後將資料分解成「64 K Blocks」,並且結合「Metadata Keys」為每個 Block 進行標籤 (內容包括 Host、Source、Source Type…等)。下列是 Universal Forwarder 和 Heavy Forwarder 的差異:- Universal Forwarder: 只負責將資料「傳送」給 Indexer 主機,讓 Indexer 角色去處理資料 (Parsing + Indexing)。
- Heavy Forwarder :具備完整 Splunk Enterprise Instance 功能,將資料傳送給 Indexer 之前便先進行「Only Parse Data」的前置處理作業,屆時的 Indexer 主機收到後,其上的 Indexer 角色只要負責 Indexing 階段的資料處理作業即可。
- 有關 Forwarder 的詳細資訊,請參考 About forwarding and receiving - Splunk Documentation 官方文件。
Parsing 階段 (Indexer / Heavy Forwarder)
在這個資料處理階段中,Splunk 會進行資料的「檢查、識別、分析、轉換、加入時間戳記……等」作業,這個階段也稱之為「Event Processing」。此時,Splunk 會把收到的資料流分解成「單個 Event」,並進行下列作業程序:- 將 Data Streams 分解成「單行」(Single Lines)。
- 進行資料的 識別 (Identify)、解析 (Parse)、加入時間戳記 (Set Timestamps)。
- 將資料的 Input Time 加入至每個 Event 的 Source-Wide Keys 當中。
- 透過正規表示式處理 Event Data 和 Metadata。
Indexing 階段 (Indexer)
在這個資料處理階段中,Splunk 將 Parsing 階段處理完畢的 Event 寫入至硬碟中的 Index 內,並且會執行下列作業程序:- 將 Raw Data Files 進行壓縮的動作。
- 將 Raw Data Files 對應到 Index Files。
此外,為了簡單理解通常會把「Parsing + Indexing」這二個階段通常為「Indexing Process」。然而,當後續學習到更進階的 Splunk 運作時,便需要將這二各資料處理階段拆分,以便更仔細的檢查資料和實際處理情況。有關 Indexing 進階資訊,請參考 Indexes, indexers, and indexer clusters - Splunk Documentation 官方文件。
Search 階段 (Indexer / Search Head)
使用者此時可以透過 Search 功能,來搜尋和過濾資料內容並且建立「Reports、Event Types、Dashboards、Alerts、Field Extractions……等」。簡單來說,這裡便是決定使用者可以執行「Accesses、Views、Uses」哪些 Indexed Data。後續學習到更進階時,可以透過「同時搜尋多個 Indexers」,達成將「Parsing, Indexing, Search」階段的拆分作業 (更適合大型運作架構),詳細資訊請參考 About distributed search - Splunk Documentation 官方文件。
參考資源
- How data moves through Splunk deployments: The data pipeline - Splunk Documentation
- Components and the data pipeline - Splunk Documentation
- Other manuals for the Splunk platform administrator - Splunk Documentation
- Scale your deployment with Splunk Enterprise components - Splunk Documentation
- How indexing works - Splunk Documentation
- Configuration parameters and the data pipeline - Splunk Documentation
- Types of Splunk software licenses - Splunk Documentation
- About Splunk Free - Splunk Documentation
Splunk 筆記系列文章
- Splunk 攻略
- Splunk Journey (01) - 基礎架構和運作元件
- Splunk Journey (02) - 建立 Splunk 運作環境
- (本文) Splunk Journey (03) - Data Pipeline
- Splunk Journey (04) - Indexes