Skip to content
Back to skills

Splunk Connect For Syslog Setup

ASecurity

"Use when the user asks about SC4S, Splunk Connect for Syslog, syslog-ng collector setup, or syslog

  • 39 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
devopspythonbashrailsdockerkubernetesgitapi

Works with

  • api
  • mcp

Security analysis

A100/100

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

Scanned September 9, 2026

npx -y skills add chambear2809/splunk-cisco-skills --skill splunk-connect-for-syslog-setup --agent claude-code

Installs 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 with every re-scan.

Security grade badge for Splunk Connect For Syslog Setup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chambear2809-splunk-connect-for-syslog-setup/badge)](https://www.skillsdirectory.com/skills/chambear2809-splunk-connect-for-syslog-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-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.

Files in this skill

  • SKILL.md12 KB
  • agents/openai.yaml337 B
  • mcp_tools.json3.7 KB
  • mcp_tools.source.yaml3.2 KB
  • reference.md8.5 KB
  • scripts/load_mcp_tools.sh222 B
  • scripts/setup.sh60.8 KB
  • scripts/validate.sh13.8 KB
  • template.example3.8 KB
  • templates/host/README.md1.4 KB
  • templates/host/docker-compose.yml348 B
  • templates/host/env_file.example503 B
  • templates/host/sc4s.service1.1 KB
  • templates/kubernetes/README.md733 B
  • templates/kubernetes/namespace.yaml63 B
  • templates/kubernetes/values.yaml211 B

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.