Most engineers think…
Most people picture Splunk as 'a log server you point your logs at and search'. That single-box mental model falls apart the moment an interviewer asks how Splunk scales, or why your custom field is missing.
Splunk is a distributed pipeline: forwarders collect data from machines, indexers parse it into timestamped events and store it in time-based buckets, and search heads run queries by fanning out to every indexer. The other idea that trips people up is index-time vs search-time: Splunk does only light processing as data lands and extracts most fields when you search — it is schema-on-read. Understand the three tiers and that split, and the rest (clustering, buckets, licensing) clicks into place.
① The big picture — Splunk is a three-tier pipeline
The single most important idea: Splunk is not one server, it is a pipeline with three roles. Data flows forwarder ▸ indexer ▸ search head. A forwarder on each machine collects logs and ships them to an indexer, which turns the raw stream into searchable, timestamped events and stores them. A search head is where people run queries and build dashboards — it asks the indexers for results.
In a tiny lab all three roles can live on one instance, but in any real deployment they are separate so each tier can scale on its own. The interview line: collection, storage and search are three different jobs done by three different components. Get that flow on a whiteboard and you have already passed half the question.
Splunk architecture is best described as…
② Forwarders and indexers — collection and the bucket lifecycle
There are two kinds of forwarder. The universal forwarder (UF) is a tiny, separate agent that ships raw, mostly unparsed data — it is the default on every endpoint and server because it is light on CPU and memory. The heavy forwarder (HF) is a full Splunk Enterprise instance with bits turned off; it can parse, filter and route data before sending it, which is useful when you must drop noise or split traffic by content.
What the indexer does
The indexer runs the pipeline that makes data searchable: it identifies events, finds timestamps, does light parsing, then writes events to index buckets. Buckets age through stages: hot (being written), warm (closed but still on fast disk), cold (older, moved to cheaper, slower storage), then frozen (rolled off and deleted, or archived). Archived frozen data can be thawed back in if you ever need it. This lifecycle is how Splunk controls cost versus retention.
A tiny separate agent on each machine that collects logs and ships them raw and unparsed. The default collector — light on CPU and memory.
Parses the stream into timestamped events and stores them in time-based buckets. The storage and search-peer tier of Splunk.
Where you run SPL and build dashboards. It does not store the data — it fans the query out to all indexers and merges their results.
Hot (being written) ▸ warm (closed, fast) ▸ cold (cheaper disk) ▸ frozen (deleted or archived). This is how Splunk tiers cost vs retention.
In an interview, draw forwarder ▸ indexer ▸ search head first, then add the detail: universal forwarder for light raw collection (the default), heavy forwarder only when you must parse, filter or route before sending. Indexers store data in time-based buckets; search heads never store data, they query the indexers.
Which forwarder sends raw, mostly unparsed data and is the lightweight default?
③ Index-time vs search-time — the split that decides everything
This is the question that separates juniors from seniors. Index time is what happens once, on the indexer, as data is written to disk: breaking the stream into events, assigning the timestamp, host, source and sourcetype, and writing the raw event plus an index of its keywords. Splunk keeps index-time processing deliberately light — heavy index-time field extraction slows ingest and is hard to change later.
Search time is what happens every time you run a query, on the search head: most field extraction, lookups, calculated fields and aliases are applied to the raw events as they are read. Because the schema is applied when you read, Splunk is called schema-on-read — you do not have to define columns up front, and you can add or change field extractions later without re-indexing. Splunk's own guidance is to do most knowledge work at search time. The practical payoff: if a field is missing, it is almost always a search-time extraction to fix, not a re-ingest.
A classic mistake is forcing lots of custom field extraction at index time. It slows ingest, bloats the index, and is hard to change because the data is already written. Keep index time lean (events, timestamp, sourcetype) and do most field work at search time — that is the whole point of schema-on-read.
A custom field is missing from your search results. Where do you usually fix it?
④ Scaling out — clusters, the deployment server and licensing
One indexer and one search head do not survive a busy SOC. For throughput you add more indexers and let the search head run distributed search across all of them. For high availability you use an indexer cluster: a cluster manager keeps multiple copies of every bucket (the replication factor) and multiple searchable copies (the search factor, default 3 each), so a dead indexer loses no data. A search head cluster does the same for the search tier, sharing knowledge objects and jobs across members.
Management and cost
The deployment server is the config push tool — it sends apps and settings out to your fleet of forwarders so you are not editing each one by hand. On cost, classic Splunk licensing is ingest-based (you pay by GB of data indexed per day), while Splunk Cloud also offers workload pricing measured in compute units (SVCs). Either way, the architecture lesson is the same: ingest and search both cost money, so you tier storage with buckets and filter noise early.
Vikram at a Pune fintech SOC faces this
Dashboards suddenly slow to a crawl and some searches time out during peak hours, even though only one indexer is doing all the work.
Everything runs on a single all-in-one Splunk box — one indexer is both storing all data and serving every search, with no distribution or HA.
Check the monitoring console: the lone indexer is CPU-bound at ingest and search at once, and there is no second peer to share load or survive a failure.
Settings ▸ Distributed Environment ▸ Indexer Clustering + Search Head ClusteringSplit the tiers: add indexer peers behind a cluster manager (set a replication and search factor), put searches on a dedicated search head doing distributed search, and push forwarder config from a deployment server.
Re-run the heavy dashboard: the query now fans across multiple peers, response times drop, and killing one indexer in a test loses no data.
Never trust 'the cluster should be fine'. With a healthy replication and search factor you can take one indexer offline and searches still return complete results from the replica copies. Test it in a maintenance window — that single check proves your HA design actually works.
▶ Watch a login log travel from a server to a SOC dashboard
How one log line becomes a searchable event end-to-end. Press Play for the healthy path, then Break it to see a classic failure.
You need both more search throughput and no data loss if an indexer dies. What do you use?
🤖 Ask the AI Tutor
Tap any question — instant, scoped to this lesson. No login, no waiting.
Pre-curated from vendor docs + community Q&A, scoped to this lesson. For a live prod issue, paste your export into chat.techclick.in.
📝 Wrap-up assessment — six more
You've answered 4 inline. Six left. 70% (7 of 10) marks the lesson complete on your profile. Tap Submit all answers at the end.
🧠 In your own words
Type one line: why is Splunk called a 'pipeline' rather than 'a log server', and what is schema-on-read? Then compare with the expert version.
🗣 Teach a friend
Best way to lock it in — explain it in one line to a teammate. Tap to generate a paste-ready summary.
📖 Glossary
- Forwarder
- A Splunk agent that collects data on a source machine and sends it to indexers. Universal (light, raw) or heavy (full instance that parses and routes).
- Universal forwarder (UF)
- A tiny, separate agent that ships raw, mostly unparsed data with minimal CPU and memory — the default collector on endpoints and servers.
- Heavy forwarder (HF)
- A full Splunk Enterprise instance with features trimmed; it parses, filters and routes data before forwarding.
- Indexer
- The component that parses incoming data into timestamped events and stores them in index buckets; also acts as a search peer.
- Search head
- Where users run SPL queries and dashboards. It does not store data — it fans searches out to indexers and merges the results.
- Bucket
- A time-based directory of indexed data on an indexer. Buckets age hot ▸ warm ▸ cold ▸ frozen (deleted or archived; archived data can be thawed).
- Index time vs search time
- Index time = light processing once on the indexer (events, timestamp, sourcetype). Search time = most field extraction per query on the search head — schema-on-read.
- Distributed search
- A search head sends a query to every indexer peer at once; each searches its own data and returns partial results that the search head merges.
- Indexer cluster (replication / search factor)
- A group of indexers that keep multiple copies of each bucket (replication factor) and multiple searchable copies (search factor) for high availability.
- Deployment server
- The management tool that pushes apps and configuration out to a fleet of forwarders so they are not configured one by one.
📚 Sources
- Splunk Docs — Types of forwarders (universal vs heavy, parsing and routing). docs.splunk.com/Documentation/Splunk/latest/Forwarding/Typesofforwarders
- Splunk Docs — How the indexer stores indexes: hot, warm, cold, frozen, thawed buckets. docs.splunk.com/Documentation/Splunk/latest/Indexer/HowSplunkstoresindexes
- Splunk Docs — Index time versus search time. docs.splunk.com/Documentation/Splunk/latest/Indexer/Indextimeversussearchtime
- Splunk Docs — About indexer clusters and index replication (replication & search factor). help.splunk.com/en/splunk-enterprise/administer/manage-indexers-and-indexer-clusters
- Splunk Docs — Configure the search head cluster (default replication factor 3). help.splunk.com/en/splunk-enterprise/administer/distributed-search/configure-search-head-clustering
- Splunk — Pricing models: ingest-based and workload (SVC) pricing. splunk.com/en_us/products/pricing/pricing-models.html
What's next?
Got the architecture? Next, learn SPL — the Search Processing Language — so you can actually pull answers out of all that indexed data: search, stats, eval, transforms and the pipe model.