Deployment Architecture
Where the add-on runs in a distributed deployment: which Splunk roles host it, deployment server, search head cluster, indexer cluster, forwarder compatibility and Splunk Cloud specifics.
On this page (23)
- Where each component runs
- API Call Origin
- Deployment Server
- Search Head Cluster (SHC)
- Deploying via SHC Deployer
- KV Store Replication
- Modular Input Behavior
- Indexer Cluster
- Forwarder Compatibility
- Splunk Cloud
- Victoria Experience
- Classic Experience (IDM)
- Firewall Requirements
- AppInspect
- Cloud Compatibility
- Capability matrix
- Cloud Classic vs Cloud Victoria
- Which objects need an API key
- Configuration File Distribution
- Troubleshooting
- Inputs Not Running (SHC)
- Inputs Not Running (Splunk Cloud Classic)
- KV Store Replication Issues (SHC)
Deployment Architecture Documentation
This guide covers enterprise deployment patterns for the Whisper Security Add-on: which Splunk roles host which components, deployment server workflows, Search Head Cluster (SHC) configuration, indexer cluster considerations, forwarder compatibility, and Splunk Cloud specifics.
Where each component runs
The TA runs entirely on search heads. Indexers and forwarders require no additional configuration.
| Component | Search Head | Indexer | Forwarder |
|---|---|---|---|
| Search commands (whisperlookup, whisperquery) | YES | NO | NO |
| Modular inputs (health, baseline, threat intel, watchlist) | YES | NO | NO |
| KV Store collections (enrichment cache, threat intel) | YES | NO | NO |
| API calls (outbound HTTPS to Whisper API) | YES | NO | NO |
| Alert actions (Enrich with Whisper) | YES | NO | NO |
| Dashboards and views | YES | NO | NO |
| Saved searches (correlation, KV Store population) | YES | NO | NO |
| props.conf / transforms.conf | YES | YES* | NO |
whisper index (admin-created, not shipped) | N/A | YES | NO |
*Only if field extractions are needed at index time. For most deployments, search-time extraction (default) is sufficient.
The TA does not ship
indexes.conf: Splunk Cloud Victoria Experience prohibits app-shipped index definitions. The deployment administrator must create thewhisperindex before enabling modular inputs. See Installation -> Create the whisper index for step-by-step instructions for Cloud Victoria, Cloud Classic, and Splunk Enterprise.
API Call Origin
All outbound API calls to the Whisper Knowledge Graph originate exclusively from search heads. Ensure your firewall allows outbound HTTPS (port 443) from search heads to graph.whisper.security (or your configured API base URL).
No indexers, forwarders, or other Splunk components make API calls.
Deployment Server
To deploy the TA via Deployment Server to search heads:
-
Place the TA in the deployment apps directory:
text$SPLUNK_HOME/etc/deployment-apps/TA-whisper-graph/ -
Configure
serverclass.confto target search heads only:ini[serverClass:whisper_security] whitelist.0 = search-head-*.example.com [serverClass:whisper_security:app:TA-whisper-graph] restartSplunkd = true -
Push the deployment:
bashsplunk reload deploy-server
Do not deploy to indexers or forwarders -- the TA is not needed there.
Search Head Cluster (SHC)
Deploying via SHC Deployer
-
Place the TA on the deployer:
text$SPLUNK_HOME/etc/shcluster/apps/TA-whisper-graph/ -
Push the bundle:
bashsplunk apply shcluster-bundle -target https://<captain>:8089 --answer-yes
KV Store Replication
KV Store collections automatically replicate across SHC members. No additional configuration is needed. The TA's server.conf includes:
[shclustering]
conf_replication_include.ta_whisper_graph_settings = true
To verify KV Store replication status:
| rest /services/kvstore/status
Modular Input Behavior
Modular inputs run on all SHC members by default. For inputs that should run on only one member (to avoid duplicate data collection), configure the captain to manage input scheduling, or disable inputs on non-captain members.
Indexer Cluster
No TA installation is required on indexers. The TA runs entirely on search heads.
If you want the whisper index on your indexer cluster, create your own indexes.conf in a cluster-master apps bundle (the TA does not ship one — Splunk Cloud Victoria forbids it):
$SPLUNK_HOME/etc/manager-apps/whisper-indexes/default/indexes.conf
[whisper]
homePath = $SPLUNK_DB/whisper/db
coldPath = $SPLUNK_DB/whisper/colddb
thawedPath = $SPLUNK_DB/whisper/thaweddb
frozenTimePeriodInSecs = 15552000
repFactor = auto
Then push the bundle: splunk apply cluster-bundle. The repFactor = auto setting ensures proper replication across indexer cluster peers.
Forwarder Compatibility
The TA does not run on universal or heavy forwarders. All data collection is performed by modular inputs running on the search head, which call the Whisper API directly.
Forwarders can send raw network events (e.g., proxy logs, firewall logs) to indexers. Those events can then be enriched at search time using whisperlookup on the search head.
Splunk Cloud
Victoria Experience
- The TA installs on the search head via the Splunk Cloud self-service app install
- Modular inputs run locally on the search head -- full compatibility
- KV Store is accessible from the search head
- All features work without additional configuration
Classic Experience (IDM)
In Classic Experience, modular inputs run on the Inputs Data Manager (IDM), a separate Splunk instance that does not have access to KV Store.
The TA uses an event-based architecture to support this deployment:
- Modular inputs (
whisper_threat_intel,whisper_watchlist) write enrichment data as events to thewhisperindex instead of writing directly to KV Store - Saved searches (disabled by default) read these events and populate KV Store collections on the search head via
outputlookup
To enable the event-based pipeline on Classic Experience:
- Enable the modular inputs via the TA configuration page
- Enable the following saved searches:
- Whisper - Populate IP Threat Intel KV Store
- Whisper - Populate Domain Threat Intel KV Store
- Whisper - Populate Precomputed Enrichment KV Store
- Configure the saved search schedules to run after the input collection intervals
Firewall Requirements
Allow outbound HTTPS (port 443) from search heads to:
graph.whisper.security(production API)- Or your configured API base URL
AppInspect
CI runs the splunk-appinspect CLI against the packaged add-on on every commit, with the cloud, private_victoria and private_classic tag sets among others. Re-run on the shipped 1.0.0 package on 2026-08-09, all three report zero failures and zero errors.
AppInspect is not Cloud Vetting. AppInspect is automated static analysis that any developer can run; Cloud Vetting is Splunk's own review, including manual checks, and only a Splunk Cloud customer can trigger it by requesting the install. The per-tag results are on Requirements.
Cloud Compatibility
The TA runs identically on Splunk Enterprise, Splunk Cloud Classic, and Splunk Cloud Victoria. Feature coverage is the same across all three platforms; only the management plane and modular-input host differ.
Capability matrix
| Capability | Enterprise | Cloud Classic | Cloud Victoria |
|---|---|---|---|
Search commands (whisperlookup, whisperquery, whisperschema, whisperevict, whisperflush) | Yes | Yes | Yes |
| Modular inputs (baseline, threat intel, watchlist) | Yes | Yes (on IDM or heavy forwarder) | Yes (on search head) |
KV Store collections (whisper_*) | Yes | Yes | Yes |
API key in storage/passwords | Yes | Yes | Yes |
Adaptive response action (whisper_enrich) | Yes | Yes | Yes |
CIM field aliases on whisper:enrichment | Yes | Yes | Yes |
Example enrichment templates (savedsearches.conf) | Yes | Yes | Yes |
| Investigation macros | Yes | Yes | Yes |
| Dashboard Studio dashboards | Yes | Yes | Yes |
Custom role (whisper_user) | Yes | Yes | Yes |
Ships an indexes.conf | No (admin creates the whisper index) | No | No (admin creates via ACS) |
Cloud Classic vs Cloud Victoria
| Area | Cloud Classic | Cloud Victoria |
|---|---|---|
| App install | Splunk-managed, ticket-based | ACS-managed, self-service |
| Index creation | Splunk-managed, ticket-based | ACS API or Victoria UI |
| Modular input host | IDM or heavy forwarder | Search head |
| Upgrade cadence | Coordinated with Splunk | Self-service via ACS |
Which objects need an API key
Search commands and dashboards work on a fresh install with no key configured. Two investigation macros do not: whisper_cname_chain and whisper_spf_chain are refused unless the search head sends a key.
Configure a key in Configuration > Account on every search head that will run them — see Requirements.
Configuration File Distribution
| Config File | Search Head | Indexer | Notes |
|---|---|---|---|
app.conf | YES | NO | App identity and triggers |
commands.conf | YES | NO | Custom search commands |
collections.conf | YES | NO | KV Store schemas |
transforms.conf | YES | YES* | Lookup definitions |
props.conf | YES | YES* | Field extractions |
savedsearches.conf | YES | NO | Correlation and population searches |
macros.conf | YES | NO | Investigation macros |
indexes.conf (admin-supplied) | NO | YES | Index definitions (NOT shipped — admin creates via ACS/CLI/UI) |
authorize.conf | YES | NO | Custom roles |
*Only needed on indexers if index-time field extractions are configured.
Troubleshooting
Inputs Not Running (SHC)
If modular inputs are not collecting data on an SHC:
- Verify the TA is deployed on all SHC members
- Check that inputs are enabled: Settings > Data Inputs > Whisper
- Verify API connectivity: run
| whisperquery query="CALL whisper.version()"from the search bar. It returns the engine version and build time when the search head can reach the API
Inputs Not Running (Splunk Cloud Classic)
If using Classic Experience with IDM:
- Verify the event-based saved searches are enabled
- Check that events are being written: search for
index=whisper sourcetype=whisper:threat_intel - If events exist but KV Store is empty, verify the saved searches are running on schedule
KV Store Replication Issues (SHC)
Verify replication is working:
| rest /services/kvstore/status
| table title, currentStatus, replicationStatus
If collections are not replicating, verify server.conf includes the replication settings.