Skip to content
Back to skills

Splunk Indexer Cluster Setup

ASecurity

"Use when the user asks to bootstrap an indexer cluster, configure site_replication_factor or

  • 39 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 9, 2026
businesspythonbash

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned September 9, 2026

npx -y skills add chambear2809/splunk-cisco-skills --skill splunk-indexer-cluster-setup --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Splunk Indexer Cluster Setup?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Splunk Indexer Cluster Setup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chambear2809-splunk-indexer-cluster-setup/badge)](https://www.skillsdirectory.com/skills/chambear2809-splunk-indexer-cluster-setup)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: splunk-indexer-cluster-setup
description: "Use when the user asks to bootstrap an indexer cluster, configure site_replication_factor or
  site_search_factor, apply or roll back a cluster bundle, perform searchable rolling restarts, take a
  peer offline, migrate single-site to multisite, decommission a site, or set up cluster manager
  redundancy. Render, preflight, apply, validate, and operate Splunk Enterprise indexer clusters: single-
  site and multisite bootstrap, cluster manager redundancy, bundle validate/apply/rollback, rolling
  restart modes, peer offline/removal, maintenance mode, site migration, non-clustered indexer migration,
  and indexer-discovery output snippets."
compatibility: "Splunk Cloud Platform 10.5.2605: not applicable. This self-managed runtime workflow remains on the public Splunk Enterprise or Universal Forwarder 10.4 baseline."
metadata:
  splunk_cloud_10_5: "self-managed-10.4"
  compatibility_verified: "2026-08-20"
---

# Splunk Indexer Cluster Setup

## Prerequisites

| Tool or access | Purpose | Verify |
|---|---|---|
| Bash and Python 3 | Run bundled setup and validation helpers | `bash --version && python3 --version` |
| Required product/platform access | Inspect or configure the selected target | Complete the documented preflight |
| Credential files for live modes | Keep secrets out of chat | Verify paths only |

## Workflow Overview

```text
┌───────────┐   ┌───────────────┐   ┌───────────────┐   ┌─────────────────┐
│ Preflight │ → │ Render/review │ → │ Apply/handoff │ → │ Validate evidence │
└───────────┘   └───────────────┘   └───────────────┘   └─────────────────┘
```

## When to Activate

- Bootstrap an indexer cluster, configure site_replication_factor or site_search_factor, apply or roll back a
  cluster bundle, perform searchable rolling restarts, take a peer offline, migrate single-site to multisite,
  decommission a site, or.
- Preview and review the splunk indexer cluster setup workflow before any live apply phase.
- Diagnose failed prerequisites, generated assets, configuration, or validation evidence.

## Scope

Follow the documented read-only or render-first path whenever it is available.
This skill does not imply permission to mutate live systems. Require explicit
apply flags, protected credentials, and operator review for state changes.

## Examples

Inspect the supported setup modes before selecting one:

```bash
bash skills/splunk-indexer-cluster-setup/scripts/setup.sh --help
```

Expected output: usage, supported modes, and required arguments are displayed
without changing the target environment.

Inspect validation modes before running completion checks:

```bash
bash skills/splunk-indexer-cluster-setup/scripts/validate.sh --help
```

Expected output: offline, live, and completion options are displayed when the
skill supports them; help exits without mutation.

## Troubleshooting

| Issue | Cause | Resolution |
|---|---|---|
| Preflight fails | A required tool or access path is missing | Resolve it before rendering or applying |
| Rendered assets are incomplete | Required non-secret inputs are absent | Complete intake and render again |
| Apply is blocked | Review, credentials, or explicit acceptance is missing | Use the documented handoff |
| Validation is incomplete | Live evidence is unavailable | Record the gap and keep completion open |

This skill sits **above**
[`skills/splunk-enterprise-host-setup`](../../skills/splunk-enterprise-host-setup/SKILL.md),
which still owns per-host install/upgrade. It owns multi-host orchestration of
the cluster control plane and every documented cluster operation.

## Architecture First

- The host-setup skill installs Splunk Enterprise per host. This skill
  configures those installed hosts as a coordinated cluster (single-site or
  multisite).
- Cluster manager redundancy uses two or more managers in active/standby; the
  skill renders the LB + DNS recipes per Splunk's documented patterns.
- Multisite migration keeps both legacy `replication_factor`/`search_factor`
  AND the new `site_*` factors so existing buckets remain valid.

## Agent Behavior — Credentials

Never paste secrets into chat.

- Use `template.example` for the non-secret intake worksheet (manager URI,
  peer/SH lists, factors, sites).
- Keep secrets in temporary files only:

```bash
bash skills/shared/scripts/write_secret_file.sh /tmp/splunk_admin_password
bash skills/shared/scripts/write_secret_file.sh /tmp/splunk_idxc_secret
```

The cluster `pass4SymmKey` is distinct from the license manager
`pass4SymmKey` and any SHC `pass4SymmKey`.

## Quick Start

Single-site bootstrap (3 peers, 1 SH, 1 manager):

```bash
bash skills/splunk-indexer-cluster-setup/scripts/setup.sh \
  --phase render \
  --cluster-mode single-site \
  --cluster-label prod \
  --cluster-manager-uri https://cm01.example.com:8089 \
  --manager-hosts cm01.example.com \
  --replication-factor 3 \
  --search-factor 2 \
  --peer-hosts idx01.example.com,idx02.example.com,idx03.example.com \
  --sh-hosts sh01.example.com
```

Multisite bootstrap with explicit per-site factors:

```bash
bash skills/splunk-indexer-cluster-setup/scripts/setup.sh \
  --phase render \
  --cluster-mode multisite \
  --cluster-label prod \
  --cluster-manager-uri https://cm01.example.com:8089 \
  --manager-hosts cm01.example.com \
  --available-sites site1,site2 \
  --site-replication-factor "origin:2,total:3" \
  --site-search-factor "origin:1,total:2" \
  --peer-hosts "idx01.example.com=site1,idx02.example.com=site2" \
  --sh-hosts "sh01.example.com=site1"
```

Apply a cluster bundle (validates, then applies):

```bash
bash skills/splunk-indexer-cluster-setup/scripts/setup.sh \
  --phase bundle-apply \
  --cluster-manager-uri https://cm01.example.com:8089 \
  --admin-password-file /tmp/splunk_admin_password
```

Searchable rolling restart with health check:

```bash
bash skills/splunk-indexer-cluster-setup/scripts/setup.sh \
  --phase rolling-restart \
  --rolling-restart-mode searchable \
  --cluster-manager-uri https://cm01.example.com:8089 \
  --admin-password-file /tmp/splunk_admin_password
```

Take a peer offline (fast):

```bash
bash skills/splunk-indexer-cluster-setup/scripts/setup.sh \
  --phase peer-offline \
  --peer-offline-mode fast \
  --peer-host idx02.example.com \
  --admin-password-file /tmp/splunk_admin_password
```

Migrate a single-site cluster to multisite:

```bash
bash skills/splunk-indexer-cluster-setup/scripts/setup.sh \
  --phase migrate-to-multisite \
  --cluster-manager-uri https://cm01.example.com:8089 \
  --available-sites site1,site2 \
  --site-replication-factor "origin:2,total:3" \
  --site-search-factor "origin:1,total:2" \
  --site-mappings "default_mapping:site1"
```

Run targeted migration/recovery operations through the wrapper:

```bash
bash skills/splunk-indexer-cluster-setup/scripts/setup.sh \
  --phase replace-manager \
  --cluster-manager-uri https://cm01.example.com:8089 \
  --new-manager-uri https://cm02.example.com:8089 \
  --idxc-secret-file /tmp/splunk_idxc_secret \
  --admin-password-file /tmp/splunk_admin_password

bash skills/splunk-indexer-cluster-setup/scripts/setup.sh \
  --phase decommission-site \
  --cluster-manager-uri https://cm01.example.com:8089 \
  --site site2 \
  --accept-site-decommission \
  --admin-password-file /tmp/splunk_admin_password

bash skills/splunk-indexer-cluster-setup/scripts/setup.sh \
  --phase move-peer-to-site \
  --cluster-manager-uri https://cm01.example.com:8089 \
  --peer-host idx02.example.com \
  --new-site site2 \
  --admin-password-file /tmp/splunk_admin_password

bash skills/splunk-indexer-cluster-setup/scripts/setup.sh \
  --phase migrate-non-clustered \
  --cluster-manager-uri https://cm01.example.com:8089 \
  --indexer-host idx03.example.com \
  --idxc-secret-file /tmp/splunk_idxc_secret \
  --admin-password-file /tmp/splunk_admin_password
```

## What It Renders

Under `splunk-indexer-cluster-rendered/cluster/`:

- `manager/<host>/server.conf` — primary + (optional) standby manager configs.
- `peer-<host>/server.conf` — per-peer config with site assignment.
- `sh-<host>/server.conf` — per-SH config with multisite/affinity.
- `bootstrap/sequenced-bootstrap.sh` — manager → peers (RF gate) → SHs.
- `bundle/{validate.sh, status.sh, apply.sh, apply-skip-validation.sh, rollback.sh}`.
- `restart/{rolling-restart.sh, searchable-rolling-restart.sh, force-searchable.sh}`.
- `maintenance/{enable.sh, disable.sh}`.
- `peer-ops/{offline-fast.sh, offline-enforce-counts.sh, remove-peer.sh, extend-restart-timeout.sh}`.
- `redundancy/{lb-haproxy.cfg, dns-record-template.txt, ha-health-check.sh}` (when redundancy enabled).
- `migration/{single-to-multisite.sh, replace-manager.sh, decommission-site.sh, move-peer-to-site.sh, migrate-non-clustered.sh}`.
- `forwarder-outputs/<host>/outputs.conf` — indexer-discovery snippets for HF/UF.
- `validate.sh` — REST cluster-manager audit snapshot (info/health/peers/sites/buckets/generation/status + bundle status) saved under `audit/<timestamp>/`, then gates on the `/services/cluster/manager/info` `preflight_check_passed` field (PASS/FAIL).

## Hand-off Contracts

- Assumes hosts are installed by `splunk-enterprise-host-setup --phase install`.
- Emits a `LICENSE_PEERS[]` stub at `splunk-indexer-cluster-rendered/cluster/handoffs/license-peers.txt` so `splunk-license-manager-setup` can wire up the license peer config.
- Warns when bundle apps include SmartStore-aware files and points to
  [`skills/splunk-index-lifecycle-smartstore-setup`](../../skills/splunk-index-lifecycle-smartstore-setup/SKILL.md) for `indexes.conf` rendering.
- For Search Head Cluster setup (deployer, SHC members, rolling restarts, captain transfer, KV Store), see [`splunk-search-head-cluster-setup`](../splunk-search-head-cluster-setup/SKILL.md).

## Out of Scope

- **Cluster `pass4SymmKey` rotation**: rendered `server.conf` files contain
  `pass4SymmKey = $IDXC_SECRET` so the operator can manage the secret out of
  band (env var, secrets manager, `splunk hash-passwd`). Rotating the secret
  cluster-wide remains a manual rolling restart with the new value; this
  skill does not orchestrate that rolling rotation.
- **Manager DR backup / restore**: backup/restore of `master-apps/` and
  manager state is operator-owned. The redundancy templates render
  active/standby manager pairs but do not snapshot or replay manager state.
- **Splunk Cloud indexer clusters**: Splunk-managed; this skill targets
  self-managed Splunk Enterprise only.

## References

- [reference.md](reference.md) for full multisite semantics, redundancy
  topologies, bundle reload-vs-restart classification, and rolling-restart
  health-check details.
- [template.example](template.example) for the non-secret intake worksheet.

Files in this skill

  • SKILL.md10.8 KB
  • agents/openai.yaml368 B
  • reference.md8.3 KB
  • scripts/render_assets.py52.1 KB
  • scripts/setup.sh14.8 KB
  • scripts/smoke_offline.sh6.3 KB
  • scripts/validate.sh2.9 KB
  • template.example1.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.