前言
在生活上不管食衣住行,都會產生許多資料無論是「結構化」(Structured) 或「非結構化」(Unstructured),這在 Splunk 來說稱之為「機械資料」(Machine Data)。因此,Splunk 主要任務便是將這些資料收集後,希望達成透過收集/過濾/視覺化呈現/趨勢預測……等目標。運作元件
在 Splunk 的基礎架構中,主要有三個運作元件「Indexer、Search Head、Forwarder」:Indexer:主要負責 Indexing,接收到 Machine Data 之後轉換成 Event 然後存放於 Splunk Index 當中,屆時再由 Search Head 來搜尋和過濾出 Splunk Index 當中的有用資料。
Search Head:主要負責 Search Management,屆時 Splunk User 送出搜尋需求後,Search Head 去 Splunk Index 搜尋並過濾後,回應相關資訊給 Splunk User 並且可以透過視覺化呈現。
Forwarder:主要負責 Data Input,轉送資料給 Indexer 主機,最常見的應用是安裝在 Windows / Linux 主機上,轉送各種應用程式或服務資料至 Indexer 主機。例如,安裝在 Linux Web Server 主機上,然後轉送 Web Log 至 Indexer 主機。
事實上,除了「Indexer、Search Head、Forwarder」這三個主要角色之外,還有另外三個角色以後也會用到分別是「Deployment Server、Cluster Master、License Master」,後續有機會再了解吧。
部署架構
那麼要部署 Splunk 運作架構有哪幾種選擇,簡單來說,大概有下列三種選擇:- Single-Instance Deployment:All-in-One 的架構,將 Input、Parsing、Indexing、Searching 等工作任務,全部安裝在同一台主機上,適合用於 POC、個人學習/測試...等環境。
- Small Enterprise Deployment:將「Input」和「Parsing、Indexing、Searching」分開,簡單來說 Input 就是多台 Forwarder,搭配一台 Indexer / Search Head 主機,通常處理 20GB per day 的資料量,以及小於 20 位使用者進行搜尋任務。倘若,可以再將 Indexer 分散成建立三台 Indexers 的話,那麼可以處理 100GB per day 資料量,以及小於 100 位使用者進行搜尋任務。
- Distributed Deployment: 中大型架構,依據 Input、Parsing、Indexing、Searching 等工作任務需求,進行每個角色的主機台數擴充,甚至為了確保資料一致性和可用性,可以建立 Index Cluster。
參考資源
- About Splunk Enterprise deployments - Splunk Documentation
- Scale your deployment with Splunk Enterprise components - Splunk Documentation
- Splunk Quick Reference Guide
- Splunk Free Courses - Splunk Infrastructure Overview
Splunk 筆記系列文章
- Splunk 攻略
- (本文) Splunk Journey (01) - 基礎架構和運作元件
- Splunk Journey (02) - 建立 Splunk 運作環境
- Splunk Journey (03) - Data Pipeline
- Splunk Journey (04) - Indexes