Splunk
StackState Self-hosted v4.6.x

Overview

The StackState Splunk integration synchronizes events, metrics, health and topology data from Splunk to StackState. The integration uses StackState Agent V1 and StackState Agent V2:
  • ​StackState Agent V1 is used to collect Splunk events and metrics data. It can also be used to collect topology data when the Splunk topology V1 integration is configured.
  • ​StackState Agent V2 is used to collect health data. It can also be used to collect topology data when the Splunk topology V2 integration is configured.
Data flow
  • StackState Agent V1 periodically connects to the configured Splunk instance to execute Splunk saved searches and retrieve data:
    • Topology data from the searches configured in the Splunk topology V1 Agent check.
    • Metrics data from the searches configured in the Splunk metrics Agent check.
    • Events data from the searches configured in the Splunk events Agent check.
  • StackState Agent V2 periodically connects to the configured Splunk instance to execute Splunk saved searches and retrieve data:
    • Topology data from the searches configured in the Splunk topology V2 Agent check.
    • Health data from the searches configured in the Splunk health Agent check.
  • The Agents push retrieved data to StackState.
  • StackState translates incoming data:
    • ​Topology data is translated into components and relations.
    • ​Metrics data is available in StackState as a metrics telemetry stream.
    • ​Events is available in StackState as a log telemetry stream.
    • ​Health information is added to associated components and relations.

Setup

Prerequisites

  • A running Splunk instance.
  • A Splunk user account with access to Splunk saved searches. The user should have the capability search to dispatch and read Splunk saved searches.
  • A compatible StackState Agent installed on a machine that can connect to both Splunk and StackState:

Install

Splunk metrics and events

To retrieve metrics and events data from Splunk, StackState Agent V1 must be installed. Once the required Splunk Agent checks have been configured, Splunk metrics and events will directly be available in StackState.

Splunk health

To retrieve health data from Splunk, StackState Agent V2 must be installed. Once the Splunk health Agent check has been configured, Splunk health data will directly be available in StackState.

Splunk topology

To retrieve topology data from Splunk, StackState Agent V2 or StackState Agent V1 must be installed.
The Splunk StackPack provides all the necessary configuration to easily work with Splunk topology data in StackState. Install the Splunk StackPack from the StackState UI StackPacks > Integrations screen. You will need to provide the following parameters:
  • Splunk instance name - A unique name to identify the Splunk instance in StackState.
  • Splunk API URL - The URL where the Splunk API can be reached. For example: http://splunk.network.local:8089.

Configure

StackState Agent V2 and/or StackState Agent V1 must be configured with a Splunk Agent check for each type of data you want to retrieve from Splunk (topology, metrics and/or events).
Details of how to configure each of these checks can be found on the pages listed below:

Authentication

Each Splunk check configured on StackState Agent V1 must include authentication details to allow the Agent to connect to your Splunk instance and execute the configured Splunk saved searches.
Two authentication mechanisms are available:

Token-based Authentication

Token-based authentication supports Splunk authentication tokens. An initial Splunk token is provided in the Splunk check configuration. This initial token is used the first time the check starts, it is then exchanged for a new token. For details on using token based authentication with Splunk, see the Splunk documentation (docs.splunk.com).
Token-based authentication is preferred over HTTP basic authentication and will override basic authentication in case both are configured.
Example check configuration with token-based authentication
1
instances:
2
- url: "https://localhost:8089"
3
​
4
# username: "admin" ## deprecated
5
# password: "admin" ## deprecated
6
​
7
# verify_ssl_certificate: false
8
​
9
authentication:
10
token_auth:
11
name: "api-user"
12
initial_token: "my-initial-token-hash"
13
audience: "search"
14
token_expiration_days: 90
15
renewal_days: 10
Copied!
To enable token-based authentication, the following parameters should be included in the section authentcation.token_auth of each StackState Agent V1 Splunk check configuration file:
  • name - Name of the user who will use this token.
  • initial_token - An initial, valid token. This token will be used once only and then replaced with a new generated token requested by the integration.
  • audience - The Splunk token audience.
  • token_expiration_days - Validity of the newly requested token. Default 90 days.
  • renewal_days - Number of days before a new token should be refreshed. Default 10 days.
The first time the check runs, the configured initial_token will be exchanged for a new token. After the configured renewal_days days, another new token will be requested from Splunk with a validity of token_expiration_days.

HTTP basic authentication

It is recommended to use token-based authentication.
With HTTP basic authentication, the username and password specified in the StackState Agent V1 check configuration files are used to connect to Splunk. These parameters are specified in the section authentication.basic_auth of each StackState Agent V1 Splunk check configuration file.
Example check configuration with HTTP basic authentication
1
instances:
2
- url: "https://localhost:8089"
3
​
4
# username: "admin" ## deprecated - do not use
5
# password: "admin" ## deprecated - do not use
6
​
7
# verify_ssl_certificate: false
8
​
9
authentication:
10
basic_auth:
11
username: "admin"
12
password: "admin"
Copied!

Status

To check the status of the Splunk integration, run the status subcommand and look for splunk_topology, splunk_metrics and/or splunk_events under Running Checks:
1
sudo stackstate-agent status
Copied!

Integration details

Data retrieved

The Splunk integration can retrieve the following data:

Events

When the Splunk events Agent check is configured, events will be retrieved from the configured Splunk saved search or searches. Events retrieved from splunk are available in StackState as a log telemetry stream in the stackstate-generic-events data source. This can be mapped to associated components.
For details on how to configure the events retrieved, see the Splunk events check configuration.

Metrics

When the Splunk metrics Agent check is configured, metrics will be retrieved from the configured Splunk saved search or searches. One metric can be retrieved from each saved search. Metrics retrieved from splunk are available in StackState as a metrics telemetry stream in the stackstate-metrics data source. This can be mapped to associated components.
For details on how to configure the metrics retrieved, see the Splunk metrics check configuration.

Topology

When the Splunk StackPack is installed, and a Splunk topology Agent check is configured, topology will be retrieved from the configured Splunk saved searches. The check that you should configure depends on the StackState Agent that you will use to retrieve topology data. The Splunk topology V1 check uses StackState Agent V1 to retrieve data from Splunk, while the Splunk topology V2 check uses StackState Agent V2.
For details on how to configure the components and relations retrieved, see:
If you have an existing Splunk topology integration configured to use StackState Agent V1 and would like to upgrade to use StackState Agent V2, refer to the Splunk topology check upgrade instructions.

Health

When the Splunk health Agent check is configured, health check states will be retrieved from the configured Splunk saved searches. Retrieved health check states are mapped to the associated components and relations in StackState.
For details on how to configure the health retrieved, see the Splunk health check configuration.

Traces

The StackState Splunk integration does not retrieve any trace data.

REST API endpoints

StackState Agent V1 connects to the Splunk API at the endpoints listed below. The same endpoints are used to retrieve events, metrics and topology data.
Endpoint
Description
/services/auth/login?output_mode=json
Auth login
/services/authorization/tokens?output_mode=json
Create token
/services/saved/searches?output_mode=json&count=-1
List of saved searches
/servicesNS/<user>/<app>/saved/searches/<saved_search_name>/dispatch
Dispatch the saved search
/services/search/jobs/<saved_search_id>/control
Finalize the saved search
For further details, see the Splunk API documentation (docs.splunk.com).

Open source

The Splunk StackPack and the Agent checks for Splunk events, metrics and topology are open source and available on GitHub at the links below:

Troubleshooting

Troubleshooting steps for any known issues can be found in the StackState support Knowledge base.

Uninstall

To uninstall the Splunk StackPack, go to the StackState UI StackPacks > Integrations > Splunk screen and click UNINSTALL. All Splunk topology specific configuration will be removed from StackState.
For instructions on how to disable the Splunk Agent checks, see:

Release notes

The Splunk StackPack release notes are available on GitHub.

See also

Configure the StackState Agent Splunk checks:
Other resources: