> ## Documentation Index
> Fetch the complete documentation index at: https://docs.honeycomb.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Splunk (TCP)

<Badge className="hny-badge-enterprise-addon" stroke>Ent+</Badge>

<Note>
  This feature is available as an add-on for the [Honeycomb Enterprise plan](https://www.honeycomb.io/pricing/).
  Please contact your Honeycomb account team for details.
</Note>

## Supported Platforms

| Platform           | Metrics | Logs | Traces |
| :----------------- | :------ | :--- | :----- |
| Linux              |         | ✓    |        |
| Windows            |         | ✓    |        |
| macOS              |         | ✓    |        |
| Kubernetes Gateway |         | ✓    |        |

## Configuration Table

| Parameter                       | Type       | Default                  | Description                                                                                                                                                                                                                                          |
| :------------------------------ | :--------- | :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| listen\_ip                      | `string`   | "0.0.0.0"                | IP Address to listen on.                                                                                                                                                                                                                             |
| listen\_port\*                  | `int`      |                          | Port to listen on.                                                                                                                                                                                                                                   |
| log\_type                       | `string`   | splunk\_tcp              | Arbitrary for attribute 'log\_type'. Useful for filtering between many log sources.                                                                                                                                                                  |
| parse\_format                   | `enum`     | none                     | Method to use when parsing. Valid values are `none`, `json`, and `regex`. When regex is selected, 'Regex Pattern' must be set.                                                                                                                       |
| regex\_pattern                  | `string`   |                          | The regex pattern used when parsing log entries.                                                                                                                                                                                                     |
| multiline\_line\_start\_pattern | `string`   |                          | Regex pattern that matches the beginning of a log entry, for handling multiline logs.                                                                                                                                                                |
| multiline\_line\_end\_pattern   | `string`   |                          | Regex pattern that matches the end of a log entry, useful for terminating parsing of multiline logs.                                                                                                                                                 |
| parse\_timestamp                | `bool`     | false                    | Whether to parse the timestamp from the log entry.                                                                                                                                                                                                   |
| timestamp\_field                | `string`   | timestamp                | The field containing the timestamp in the log entry.                                                                                                                                                                                                 |
| parse\_timestamp\_format        | `enum`     | ISO8601                  | The format of the timestamp in the log entry. Choose a common format, or specify a custom format. Options include "ISO8601", "RFC3339", "Epoch", and "Manual".                                                                                       |
| epoch\_timestamp\_format        | `enum`     | s                        | The layout of the epoch-based timestamp. Required when parse\_timestamp\_format is set to "Epoch".. Options include "s", "ms", "us", "ns", "s.ms", "s.us", "s.ns".                                                                                   |
| manual\_timestamp\_format       | `string`   | '%Y-%m-%dT%H:%M:%S.%f%z' | The strptime layout of the timestamp. Used when parse\_timestamp\_format is set to "Manual".                                                                                                                                                         |
| timezone                        | `timezone` | UTC                      | The timezone to use if the Timestamp Format doesn't include a timezone. Otherwise, the timezone in the Timestamp Format will be respected. **NOTE: This is also required to parse timezone abbreviations, due to their ambiguity.**                  |
| parse\_severity                 | `bool`     | false                    | Whether to parse severity from the log entry.                                                                                                                                                                                                        |
| severity\_field                 | `string`   | severity                 | The field containing the severity in the log entry.                                                                                                                                                                                                  |
| parse\_to                       | `string`   | body                     | The [field](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/pkg/stanza/docs/types/field.md) that the log will be parsed to. Some exporters handle logs favorably when parsed to `attributes` over `body` and vice versa. |
| enable\_tls                     | `bool`     | false                    | Whether or not to use TLS.                                                                                                                                                                                                                           |
| tls\_certificate\_path          | `string`   |                          | Path to the TLS cert to use for TLS-required connections.                                                                                                                                                                                            |
| tls\_private\_key\_path         | `string`   |                          | Path to the TLS key to use for TLS-required connections.                                                                                                                                                                                             |
| tls\_min\_version               | `enum`     | "1.2"                    | The minimum TLS version to support. 1.0 and 1.1 should not be considered secure. Valid values include: `1.3`, `1.2`, `1.1`, `1.0`.                                                                                                                   |

## Kubernetes

The Splunk TCP source type supports Kubernetes Gateway agents. Splunk forwarders can send logs to
the agents using the clusterIP services.

### Prerequisites

* Honeycomb Telemetry Pipeline v1.46.0 or newer

### Configuration

Add the Splunk TCP source to your Gateway agent configuration. Set "Listen Address" to `0.0.0.0` and
Listen Port to `9997`.

The Splunk forwarders should be configured to forward telemetry to `bindplane-gateway-agent.bindplane-agent.svc.cluster.local`
on port `9997`. If the Splunk forwarders live outside of the cluster, you must make the `bindplane-gateway-agent`
service in the `bindplane-agent` namespace available using TCP ingress or by defining your own service
that can receive traffic from outside of the cluster. See the Kubernetes [service documentation](https://kubernetes.io/docs/tutorials/kubernetes-basics/expose/expose-intro/) for more information.

Below is an example Splunk forwarder outputs configuration.

```ini theme={}
[tcpout]
defaultGroup = bindplane-gateway-agent

[tcpout:bindplane-gateway-agent]
server = bindplane-gateway-agent.bindplane-agent.svc.cluster.local:9997
compressed = false
useACK = false
sendCookedData = false
```
