Splunk Enterprise Security — Integration Setup
Prerequisites
- Splunk Enterprise with the Splunk Enterprise Security (ES) app installed and generating notable events
- Token-based authentication enabled on the Splunk instance
- Network access from CMDash's sync workers to Splunk's management port (default
8089) - CMDash Essentials tier or above
Step 1: Enable Token Authentication and Create a Token
- In Splunk Web, go to Settings → Tokens. If token auth is disabled, enable it (requires a
admin_all_objects-capable account the first time). - Click New Token.
- User: choose a dedicated service account (or your existing
svc_cmdashaccount) with a role that can run searches (searchcapability) and read the ESnotableindex/macro — the built-iness_analystrole or a custom equivalent works well. - Audience:
CMDash Integration. Set an expiration consistent with your rotation policy. - Copy the generated token — it is shown only once.
Step 2: Connect in CMDash
- Navigate to Integrations in your CMDash dashboard.
- Find Splunk Enterprise Security and click Connect.
- Enter:
- Base URL — your Splunk management endpoint, e.g.
https://splunk.yourcompany.com:8089(required — if left blank the adapter defaults tohttps://localhost:8089, which will not reach your Splunk instance from CMDash's sync workers) - Token (stored as this connection's access token, sent as
Authorization: Bearer <token>)
- Base URL — your Splunk management endpoint, e.g.
- Click Save & Test Connection.
What Syncs
| Data Type | Splunk API | Sync Frequency |
|---|---|---|
| Incidents (ES notable events, last 24 hours) | POST /services/search/jobs (search job: `` | search notable ``), polled, then GET /services/search/jobs/{sid}/results |
CMDash runs a search job against your ES notable macro/index, scoped to the last 24 hours, waits for it to finish and reads the results page by page (500 per request, up to 20,000 notable events); reaching that ceiling marks the sync Partial with a warning. It normalizes each notable event into a CMDash incident. Splunk urgency/severity fields map to CMDash's critical/high/medium/low scale; notable event status labels (New/Unassigned → open, In Progress/Assigned → investigating, Resolved → resolved, Closed → closed) map onto CMDash's incident status.
This integration is read-only. Unlike Jira and ServiceNow, the Splunk adapter does not currently expose a write-back path (e.g., updating a notable event's status or disposition from CMDash).
Troubleshooting
- Connection fails / times out: The most common cause is the Base URL still pointing at the default
https://localhost:8089placeholder — set it explicitly to your Splunk management endpoint, reachable from CMDash's sync workers (check firewall rules for port 8089). - 401 Unauthorized: The token expired (if you set an expiration) or was revoked; generate a new one.
- 403 Forbidden / empty results: Confirm the token's user has the
searchcapability and can query the ESnotableindex — a user without ES app access will get zero results rather than an explicit error. notablemacro not found: This adapter assumes Splunk Enterprise Security is installed; a vanilla Splunk Core instance without ES has nonotablemacro and the search will fail.
Rate Limits & Sync Behavior
| Setting | Value |
|---|---|
| Sync frequency | Every 4 hours by default (syncInterval is configurable per connection) |
| Search window | Trailing 24 hours, read in full up to 20,000 notable events per sync (beyond that the sync is flagged Partial) |
| Rate limit handling | Every outbound request is paced through CMDash's shared per-tenant token bucket for this provider, and a vendor 429 (with its Retry-After) holds that tenant's budget until the vendor says it is ready (#507) |
| Failed sync retry | Job queue retries 3 times with exponential backoff (starting at 30s) — see docs/developers/dead-letter.md |
Credential Rotation
Splunk auth tokens can be issued with an expiration date. CMDash recommends setting one (90 days is a reasonable default) rather than a non-expiring token.
To rotate:
- In Splunk: Settings → Tokens, create a new token for the same service account.
- In CMDash: Settings → Integrations → Splunk Enterprise Security → Edit.
- Enter the new Token and Save.
- Revoke the old token in Splunk once confirmed working.
Note: CMDash cannot read Splunk token expiry metadata today, so the 30-day expiry warning banner is not shown for this integration — track expiration dates you set in Splunk separately.
Multiple Instances / Multi-Site
If you run separate Splunk ES deployments (e.g., one per region or business unit), each instance needs its own CMDash connection.
To add another instance:
- Create a token in the additional Splunk deployment, following Step 1.
- In CMDash: Settings → Integrations → Add Integration → Splunk Enterprise Security.
- Enter the base URL and token for the additional instance.
- Give the connection a descriptive name (e.g.,
Splunk - US SOC,Splunk - EU SOC). - Click Save & Test Connection.
Compliance Framework Coverage
The Splunk Enterprise Security integration provides evidence for the following controls. Coverage is automatically mapped when data is synced.
| Framework | Control | Description |
|---|---|---|
| PCI DSS | 10.2 | Event log monitoring — ES notable events mapped to log review evidence |
| PCI DSS | 10.6 | Log review — daily notable event triage |
| HITRUST | 09.ab | Monitoring system use — SIEM notable event telemetry |
| CMMC L2 | SI.1.210 | System monitoring — continuous alerting via ES notable events |
| SOC 2 | CC7.1 | Threat detection — Splunk notable events feed the threat-detection evidence bucket |