Splunk Indexer Clustering: Minimal Viable Architecture Note
Guidance on building a three‑node Splunk indexer cluster with manager co‑location, covering requirements, trust boundaries, operational checks, failure modes, and triggers for redesign.
22 Aug 2025, 01:45 UTC

Requirements
A functional Splunk indexer cluster must satisfy the following baseline needs:
- At least three indexer nodes to provide redundancy for bucket replication.
- A manager node (also called the cluster master) that coordinates cluster state, distributes configuration bundles, and monitors peer health.
- A shared storage system for cold buckets (e.g., NFS or a SAN) so that peers can off‑load aged data without losing searchability.
- Sufficient inter‑node network bandwidth; 10 GbE is the typical minimum to handle replication and concurrent search traffic.
- TLS mutual authentication for data ingest from forwarders and Splunk‑to‑Splunk SSL for manager‑peer communication.
Smallest Suitable Design
The minimal viable architecture that meets the requirements above is a three‑node indexer cluster with the manager co‑located on one of the indexers. This keeps the hardware footprint low while still providing durability and search capability.
Core Parameters
- Replication factor (repFactor): 2 – each bucket is stored on two peers.
- Search factor (searchFactor): 2 – searchable copies exist on two peers, allowing a peer loss without search interruption.
- Manager node: Can run on Indexer 1; in larger deployments it should be separated, but for a lab or small production site co‑location is acceptable.
- Cold bucket storage: A shared NFS mount pointed to by
coldPathinindexes.confon all peers.
Example Configuration Snippet
# server.conf on all peers (including manager)
[clustering]
mode = slave
master_uri = https://manager.example.com:8089
pass4SymmKey = yourClusterSecret
repFactor = 2
searchFactor = 2
# indexes.conf (shared via app or deployer)
[main]
coldPath = /mnt/splunk_cold/$_index_name
homePath = $SPLUNK_DB/$_index_name/db
thawedPath = $SPLUNK_DB/$_index_name/thaweddb
Place the above in an app deployed via the cluster manager’s etc/master-apps directory so that all peers receive identical settings.
Trust and Data Boundaries
Data ingested through universal or heavy forwarders is considered trusted only after successful TLS mutual authentication. The manager node authenticates each indexer using Splunk‑to‑Splunk SSL; certificates must be signed by a common CA or self‑signed with matching trust stores.
Role‑based access controls (RBAC) limit who can:
- Modify cluster configuration (edit
server.conf,indexes.conf, or push bundles). - View internal metrics via the Monitoring Console or REST endpoints.
- Restart Splunk services on peers.
These boundaries ensure that only authorized administrators can change the cluster state, reducing the risk of accidental misconfiguration that could cause data loss or search downtime.
Operational Checks
Key Metrics to Monitor
- Replication lag:
replication_latencyfrom the_internalindex; sustained high values indicate network or I/O bottlenecks. - Bucket fixup status:
bucket_fixup_in_progressandbucket_fixup_successcounters; a fixup that never completes signals a peer or storage issue. - Manager heartbeat:
manager_upmetric; loss of heartbeat triggers a manager failover process (if multisite) or alerts for manual intervention. - Disk usage: Monitor
fs_freeon hot/warm and cold paths; set thresholds at 80 % usage to trigger cleanup or expansion.
Routine Validation
- Run
splunk apply cluster-bundle --answer-yesafter any configuration change and verify that the cluster manager reportsbundle push successfulon all peers. - Schedule a daily search that counts bucket copies:
| rest /services/clusterslave/buckets | stats values(peer) as peers by bucket_id | where mvcount(peers) < repFactor; any results indicate missing copies. - Check the Monitoring Console’s Indexer Clustering dashboard for peer status lights (green = up, red = down).
Failure Modes and Mitigations
Understanding what happens when components fail helps operators respond correctly.
Loss of a Single Indexer Peer
The manager detects the missing heartbeat within the configured heartbeat_timeout (default 60 s). It initiates bucket fixup to recreate missing copies on the remaining peers, restoring both replication and search factors automatically. Searches continue uninterrupted because searchable copies exist on the surviving peer(s) (searchFactor = 2).
Loss of the Manager Node
Existing searches and ongoing replication continue because peers retain their last known bundle. However, no new configuration changes can be applied, and bundle pushes are blocked until a new manager is elected or restored. In a single‑manager design, this results in a temporary configuration freeze.
Split‑Brain Prevention
The manager requires a quorum of peers (at least half plus one) to accept configuration changes. With three peers, losing two peers simultaneously leaves the manager without quorum, preventing divergent configurations. Manual intervention is needed only if quorum is lost.
Storage Failure on Shared Cold Path
If the NFS mount becomes unavailable, peers cannot write new cold buckets, causing hot/warm buckets to roll over and eventually fill local disk. Monitoring fs_free on the cold path and setting alerts at 85 % usage helps detect this early. The mitigation is to fail over to a secondary storage target or increase local coldPath capacity temporarily.
When the Design Must Change
Certain operational or architectural shifts necessitate revisiting the minimal three‑node, repFactor = 2, searchFactor = 2 layout.
- Higher durability requirements: If recovery time objective (RTO) demands survival of two simultaneous peer failures, increase repFactor to 3 (or more) and/or searchFactor to 3.
- Multisite deployments: Geographically distributed sites require a manager per site and inter‑site replication; the single‑manager design no longer suffices.
- Adoption of SmartStore: Moving cold buckets to object storage (S3, GCS, Azure Blob) removes the need for shared NFS but introduces new bandwidth and credential considerations.
- Increased ingest volume: When sustained ingest exceeds the 10 GbE capacity of the inter‑node network, consider upgrading to 25 GbE or adding dedicated replication NICs.
- Regulatory isolation: Certain compliance frameworks may forbid co‑locating the manager with an indexer; a dedicated manager VM or container becomes mandatory.
Before implementing any change, test the new configuration in a staging cluster, validate bundle replication, and verify that monitoring alerts still fire as expected.
Practical Verification Steps
- Deploy three Linux VMs (or bare‑metal hosts) with Splunk Enterprise 9.0+ installed.
- Configure one host as the manager (mode=master) and the other two as peers (mode=slave) using the
server.confsnippet above. - Set up an NFS export, mount it at
/mnt/splunk_coldon all peers, and definecoldPathinindexes.conf. - Ingest sample data via a universal forwarder with TLS mutual authentication; confirm that events appear in the
mainindex. - Use the Monitoring Console or a REST query to verify that each bucket has two copies and two searchable copies.
- Stop Splunk on one peer (
splunk stop) and observe the manager triggering bucket fixup; after the peer restarts, confirm that replication and search factors are restored. - Simulate manager failure (
splunk stopon the manager) and ensure that ongoing searches continue while new bundle pushes are rejected until the manager returns. - Check that alerts for replication lag (> 5 s threshold) and disk usage (> 80 %) fire as expected in your monitoring system.
These steps provide confidence that the cluster behaves as designed without claiming any production‑grade validation.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.