Skip to content
Back to skills

Splunk Universal Forwarder Setup

ASecurity

"Use when the user asks to install, upgrade, enroll, or check Universal Forwarders separately from full

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

Works with

  • cli

Security analysis

A100/100

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

Scanned September 22, 2026

npx -y skills add chambear2809/splunk-cisco-skills --skill splunk-universal-forwarder-setup --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Splunk Universal Forwarder Setup?

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

Security grade badge for Splunk Universal Forwarder Setup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chambear2809-splunk-universal-forwarder-setup/badge)](https://www.skillsdirectory.com/skills/chambear2809-splunk-universal-forwarder-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-universal-forwarder-setup
description: "Use when the user asks to install, upgrade, enroll, or check Universal Forwarders separately from full
  Splunk Enterprise host bootstrap or Agent Management server-class work. Bootstrap Splunk Universal
  Forwarder runtimes on Linux, macOS, and Windows, resolve official UF downloads, render first-class
  enrollment assets for deployment servers, static Enterprise indexers, or Splunk Cloud credentials
  packages, and validate installed forwarders."
compatibility: "Splunk Cloud Platform 10.5.2605: conditional. Follow documented package, entitlement, topology, and customer-managed runtime guardrails; self-managed paths remain on the public 10.4 baseline."
metadata:
  splunk_cloud_10_5: "conditional"
  compatibility_verified: "2026-08-20"
---

# Splunk Universal Forwarder 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

- Install, upgrade, enroll, or check Universal Forwarders separately from full Splunk Enterprise host bootstrap or
  Agent Management server-class work.
- Preview and review the splunk universal forwarder setup workflow before any live apply phase.
- Diagnose failed prerequisites, generated assets, configuration, or validation evidence.

## 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 |

Bootstraps **Universal Forwarder runtime clients**. Use this skill for endpoint
or server forwarders that should run the lightweight UF package, not a full
Splunk Enterprise heavy forwarder.

## Scope

- Linux: local and SSH apply for `.rpm`, `.deb`, and `.tgz`; default
  `SPLUNK_HOME=/opt/splunkforwarder`; default service user `splunkfwd`.
- macOS: local and SSH apply for `.tgz`; default
  `SPLUNK_HOME=/Applications/splunkforwarder`.
- Windows: render an administrator-run PowerShell/MSI bootstrap script. WinRM
  execution is out of scope in v1.
- FreeBSD, Solaris, and AIX: recognized by latest-resolution metadata and smoke
  checks, but install/apply is unsupported in v1.

The skill intentionally delegates server classes and deployment apps to
`splunk-agent-management-setup`. This workflow installs or upgrades the UF
runtime and enrolls the client only.

## Credential Rules

Never ask for passwords in chat and never pass password values as argv or
environment-variable prefixes.

Use a local password file for first-start admin seeding and Splunk Cloud
credentials-package installs:

```bash
bash skills/shared/scripts/write_secret_file.sh /tmp/uf_admin_password
```

Then pass only the file path:

```bash
--admin-password-file /tmp/uf_admin_password
```

Windows rendering follows the same rule. The PowerShell script installs MSI
packages with `LAUNCHSPLUNK=0`, writes `user-seed.conf` from the password file
before first start, and removes seed artifacts after startup. It never renders
or runs `SPLUNKPASSWORD=...`.

## Main Script

```bash
bash skills/splunk-universal-forwarder-setup/scripts/setup.sh \
  --phase render|download|install|enroll|status|all \
  --target-os auto|linux|macos|windows|freebsd|solaris|aix \
  --execution local|ssh|render \
  --source auto|splunk-auth|remote|local \
  --url latest|URL \
  --file PATH \
  --package-type auto|tgz|rpm|deb|msi|dmg|pkg|txz|p5p|tar-z
```

Useful additions:

- `--target-arch auto|amd64|arm64|ppc64le|s390x|x64|x86|intel|universal2|freebsd13-amd64|freebsd14-amd64|sparc|powerpc`
- `--allow-stale-latest`
- `--output-dir PATH`
- `--accept-forwarder-mutation` for a reviewed live install, upgrade, or
  enrollment
- `--dry-run --json`

The default phase is `render`. It writes reviewable assets and does not install,
upgrade, or enroll a host. Live Unix-like `install`, `enroll`, and `all` phases
refuse to run unless `--accept-forwarder-mutation` is present. An `install`
phase also covers upgrades of an existing Universal Forwarder. Render, dry-run,
download, status, and Windows handoff paths do not require the acknowledgement.

## Enrollment Modes

- `--enroll none`: install or upgrade only.
- `--enroll deployment-server --deployment-server HOST:PORT`: writes
  `deploymentclient.conf` using the same client semantics as Agent Management.
- `--enroll enterprise-indexers --server-list HOST:9997[,HOST:9997...]`:
  writes `outputs.conf` with static load-balanced indexers and `useACK=true`.
- `--enroll splunk-cloud --cloud-credentials-package PATH`: installs the
  user-supplied `splunkclouduf.spl` package and restarts the forwarder.

## Examples

Linux install and deployment-server enrollment:

```bash
bash skills/splunk-universal-forwarder-setup/scripts/setup.sh \
  --phase all \
  --accept-forwarder-mutation \
  --target-os linux \
  --source remote \
  --url latest \
  --enroll deployment-server \
  --deployment-server ds01.example.com:8089 \
  --client-name web01 \
  --admin-password-file /tmp/uf_admin_password
```

Windows MSI handoff:

```bash
bash skills/splunk-universal-forwarder-setup/scripts/setup.sh \
  --phase render \
  --target-os windows \
  --execution render \
  --source local \
  --file /tmp/splunkforwarder.msi \
  --service-user LocalSystem \
  --enroll enterprise-indexers \
  --server-list idx01.example.com:9997,idx02.example.com:9997 \
  --admin-password-file C:\\Temp\\uf_admin_password.txt
```

Use `--service-user LocalSystem` only for a reviewed add-on requirement such as
Splunk Stream packet capture. If `--admin-password-file` is omitted, the
Windows handoff asks the MSI to generate a random admin password and removes
the temporary installer logs that contain it; manage the forwarder through its
deployment configuration rather than trying to recover that discarded secret.

Latest-resolution smoke without downloading a package:

```bash
bash skills/splunk-universal-forwarder-setup/scripts/smoke_latest_resolution.sh \
  --target-os all \
  --package-type all
```

## Validate

```bash
bash skills/splunk-universal-forwarder-setup/scripts/validate.sh \
  --target-os linux \
  --execution ssh \
  --enroll deployment-server
```

## Hand-off Contracts

- **DS runtime** (bootstrap, `phoneHome` tuning, HA pair, client migration): see [`splunk-deployment-server-setup`](../splunk-deployment-server-setup/SKILL.md). This skill handles UF enrollment; `splunk-deployment-server-setup` owns the DS runtime side.
- **Server class authoring**: see [`splunk-agent-management-setup`](../splunk-agent-management-setup/SKILL.md) for `serverclass.conf` and `deploymentclient.conf` rendering.

## References

- [reference.md](reference.md) for package matrix, phases, and operational notes
- [template.example](template.example) for non-secret intake

Files in this skill

  • SKILL.md7.3 KB
  • agents/openai.yaml442 B
  • reference.md5.3 KB
  • scripts/render_assets.py22.2 KB
  • scripts/setup.sh52.2 KB
  • scripts/smoke_latest_resolution.sh5.6 KB
  • scripts/validate.sh5.4 KB
  • template.example1.2 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…