"Use when the user asks about SC4S, Splunk Connect for Syslog, syslog-ng collector setup, or syslog
Scanned 9/9/2026
Install to Claude Code
npx -y skills add chambear2809/splunk-cisco-skills --skill splunk-connect-for-syslog-setup --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Splunk Connect For Syslog Setup?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/chambear2809-splunk-connect-for-syslog-setup)More formats (shields.io, HTML) on the badges page.
---
name: splunk-connect-for-syslog-setup
description: "Use when the user asks about SC4S, Splunk Connect for Syslog, syslog-ng collector setup, or syslog
ingestion through HEC. Deploy and validate Splunk Connect for Syslog (SC4S) for Splunk Enterprise or
Splunk Cloud. Prepares Splunk indexes and HEC, renders Docker/Podman/systemd or Kubernetes Helm
configuration, and validates SC4S startup."
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 Connect for Syslog 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
- SC4S, Splunk Connect for Syslog, syslog-ng collector setup, or syslog ingestion through HEC.
- Preview and review the splunk connect for syslog 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-connect-for-syslog-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-connect-for-syslog-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 |
Automates the operator workflow for **Splunk Connect for Syslog** (`SC4S`), an
external syslog-ng based collector that forwards events to Splunk over HEC.
## How SC4S Fits This Repo
SC4S is not a normal Splunkbase TA install. The skill handles two separate
areas:
1. **Splunk-side preparation**: create the default SC4S indexes, verify or
create a HEC token, and validate the Cloud vs Enterprise HEC target.
2. **Runtime deployment**: render deployment assets for customer-managed SC4S
infrastructure:
- host-based Linux with Docker/Podman plus compose or systemd
- Kubernetes with Helm
## Agent Behavior — Credentials
**The agent must NEVER ask for HEC tokens or other secrets in chat.**
- Splunk credentials come from the project-root `credentials` file or
`~/.splunk/credentials`.
- Use `skills/splunk-connect-for-syslog-setup/template.example` as the
non-secret intake worksheet.
- Keep HEC tokens in temporary or local-only files, for example:
```bash
bash skills/shared/scripts/write_secret_file.sh /tmp/sc4s_hec_token
```
- For Kubernetes, prefer a token-free `values.yaml` plus a local-only
`values.secret.yaml` or an operator-managed install command. Do not commit HEC
tokens to git.
- The default render path is the gitignored repo-local directory
`./sc4s-rendered/`. When a real HEC token is being rendered, the setup script
blocks custom output directories inside the repo and asks you to use the
default gitignored path or a directory outside the repo.
If credentials are not configured yet:
```bash
bash skills/shared/scripts/setup_credentials.sh
```
## Environment
| Item | Value |
|------|-------|
| Search-tier API | `SPLUNK_SEARCH_API_URI` env var (legacy alias: `SPLUNK_URI`) |
| Cloud stack | `SPLUNK_CLOUD_STACK` for Splunk Cloud |
| Runtime image | `ghcr.io/splunk/splunk-connect-for-syslog/container3:latest` |
| Credentials | Project-root `credentials` file (falls back to `~/.splunk/credentials`) |
| Skill scripts | `skills/splunk-connect-for-syslog-setup/scripts/` |
| Templates | `skills/splunk-connect-for-syslog-setup/templates/` |
## Setup Workflow
### Step 1: Collect Non-Secret Deployment Inputs
Copy the worksheet locally:
```bash
cp skills/splunk-connect-for-syslog-setup/template.example template.local
```
Capture items such as:
- Splunk platform: Cloud or Enterprise
- deployment model: host or Kubernetes
- SC4S runtime root path
- HEC URL and HEC token name
- archive/TLS choices
- vendor/product dedicated listener ports
- optional context/config override files
### Step 2: Prepare Splunk
Create the SC4S indexes and verify or create a HEC token:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh --splunk-prep
```
Useful partial runs:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh --splunk-prep --indexes-only
```
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh --splunk-prep --hec-only
```
If you want the script to write the created token value to a local-only file
when Splunk REST returns it:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh \
--splunk-prep \
--write-hec-token-file /tmp/sc4s_hec_token
```
If Splunk cannot return that requested token value, preparation exits nonzero
and emits a rotate/create handoff; it does not report a usable token file.
Visible Selected Indexes restrictions must include every required SC4S index,
and HEC ACK must be disabled; otherwise preparation/validation return nonzero.
### Step 3: Render Host Deployment Assets
Compose example:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh \
--render-host \
--host-mode compose \
--output-dir ./sc4s-rendered \
--hec-token-file /tmp/sc4s_hec_token
```
The rendered compose directory is self-contained, so `--apply-host` can install
or upgrade it directly from `./sc4s-rendered/host/` without copying files into
`/opt/sc4s` first.
Systemd example:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh \
--render-host \
--host-mode systemd \
--runtime podman \
--output-dir ./sc4s-rendered \
--sc4s-root /opt/sc4s \
--hec-token-file /tmp/sc4s_hec_token
```
Systemd apply example:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh \
--render-host \
--host-mode systemd \
--runtime podman \
--output-dir ./sc4s-rendered \
--sc4s-root /opt/sc4s \
--hec-token-file /tmp/sc4s_hec_token \
--apply-host
```
Optional dedicated vendor port:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh \
--render-host \
--output-dir ./sc4s-rendered \
--hec-token-file /tmp/sc4s_hec_token \
--vendor-port checkpoint:tcp:9000
```
### Step 4: Render Kubernetes Assets
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh \
--render-k8s \
--output-dir ./sc4s-rendered \
--namespace sc4s \
--release-name sc4s \
--replica-count 2 \
--hec-token-file /tmp/sc4s_hec_token
```
Optional context/config overrides:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh \
--render-k8s \
--output-dir ./sc4s-rendered \
--hec-token-file /tmp/sc4s_hec_token \
--context-file splunk_metadata.csv=/path/to/splunk_metadata.csv \
--config-file app-workaround-cisco_asa.conf=/path/to/app-workaround-cisco_asa.conf
```
### Step 5: Optionally Apply Rendered Assets
Live host or Kubernetes apply requires a nonempty, owner-only
`--hec-token-file` (no group/other permission bits). A single
combined run may instead use `--splunk-prep --write-hec-token-file PATH`; apply
is blocked if preparation does not produce a nonempty token file.
Compose:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh \
--render-host \
--host-mode compose \
--output-dir ./sc4s-rendered \
--hec-token-file /tmp/sc4s_hec_token \
--apply-host
```
Systemd:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh \
--render-host \
--host-mode systemd \
--runtime podman \
--output-dir ./sc4s-rendered \
--sc4s-root /opt/sc4s \
--hec-token-file /tmp/sc4s_hec_token \
--apply-host
```
Helm:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/setup.sh \
--render-k8s \
--output-dir ./sc4s-rendered \
--hec-token-file /tmp/sc4s_hec_token \
--apply-k8s
```
### Step 6: Validate
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/validate.sh
```
Runtime-specific checks:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/validate.sh --check-host
```
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/validate.sh --check-k8s
```
## Key Learnings / Known Issues
1. **HEC ACK must stay off**: SC4S does not support HEC acknowledgement.
2. **Avoid index restrictions on the HEC token**: a restricted token can block
batches when SC4S sends to an index not on the allow-list.
3. **Disabled HEC tokens are not treated as success**: the setup flow now
enables an existing disabled token or fails clearly if it cannot.
4. **Disk buffer sizing matters**: the persistent volume can grow significantly
during Splunk outages.
5. **Host networking differs by runtime**: compose typically publishes ports,
while systemd examples often use host networking.
6. **Non-root Podman cannot bind 514/601**: if you need non-root operation, use
alternate listener ports and update the sending devices accordingly.
7. **Kubernetes values differ from env_file settings**: use `values.yaml`,
`context_files`, and `config_files` instead of copying host env_file layouts.
8. **`_metrics` must be a metrics index**: the setup flow now creates it as a
metrics index and validation reports when an existing `_metrics` index was
created with the wrong type.
9. **Re-run apply workflows for upgrades**: compose apply now pulls images
before `up -d`, systemd apply syncs the rendered working set into
`SC4S_ROOT`, and Kubernetes apply continues to use `helm upgrade --install`.
## Additional Resources
- [reference.md](reference.md) — index defaults, HEC behavior, deployment notes,
and troubleshooting guidance
- [template.example](template.example) — non-secret intake worksheet
- [templates/host/README.md](templates/host/README.md) — host template notes
- [templates/kubernetes/README.md](templates/kubernetes/README.md) — Helm
template notes
## MCP Tools
This skill includes checked-in, read-only Splunk MCP custom tools generated
from `mcp_tools.source.yaml`.
Validate or regenerate the tool artifact:
```bash
python3 skills/shared/scripts/mcp_tools.py validate skills/splunk-connect-for-syslog-setup
python3 skills/shared/scripts/mcp_tools.py generate skills/splunk-connect-for-syslog-setup
```
Load the tools into Splunk MCP Server:
```bash
bash skills/splunk-connect-for-syslog-setup/scripts/load_mcp_tools.sh
```
The loader uses the supported `/mcp_tools` REST batch endpoint by default. Use
`--allow-legacy-kv` only for older MCP Server app versions that lack that
endpoint.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!