Install the Collector for Linux with the installer script π
The Splunk Distribution of the OpenTelemetry Collector for Linux is a package that provides integrated collection and forwarding for all data types.
Install the package using one of these methods:
Use the installer script, as described in this document
Supported versions π
The Collector supports the following Linux distributions and versions:
Amazon Linux: 2, 2023. Log collection with Fluentd is not currently supported for Amazon Linux 2023.
CentOS, Red Hat, or Oracle: 7, 8, 9
Debian: 9, 10, 11
SUSE: 12, 15 for version 0.34.0 or higher. Log collection with Fluentd is not currently supported.
Ubuntu: 16.04, 18.04, 20.04, 22.04, and 24.04
Rocky Linux: 8, 9
Included packages π
The installer script deploys and configures these elements:
The Splunk Distribution of the OpenTelemetry Collector for Linux
Fluentd, using the td-agent. Turned off by default. See Collect Linux logs with Fluentd and Fluent Forward receiver for more information
JMX metric gatherer
Install the Collector using the installer script π
To install the Collector package using the installer script, follow these steps:
Ensure you have
systemd
,curl
andsudo
installed.Download and run the installer script using this command:
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh; sudo sh /tmp/splunk-otel-collector.sh --realm $SPLUNK_REALM --memory $SPLUNK_MEMORY_TOTAL_MIB -- $SPLUNK_ACCESS_TOKENReplacing the following variables for your environment:
SPLUNK_REALM
: This is the Realm to send data to. The default isus0
. To find your Splunk realm, see Note about realms.
SPLUNK_MEMORY_TOTAL_MIB
: This is the total allocated memory in mebibytes (MiB). For example,512
allocates 512 MiB (500 x 2^20 bytes) of memory.
SPLUNK_ACCESS_TOKEN
: This is the base64-encoded access token for authenticating data ingest requests. See Create and manage organization access tokens using Splunk Observability Cloud.
Configure memory allocation π
To configure memory allocation, change the --memory
parameter. By default, this parameter is set to 512 MiB, or 500 x 2^20 bytes, of memory. Increase this setting to allocate more memory, as shown in the following example.
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh;
sudo sh /tmp/splunk-otel-collector.sh --realm $SPLUNK_REALM --memory $SPLUNK_MEMORY_TOTAL_MIB \
-- $SPLUNK_ACCESS_TOKEN
Configure proxy settings π
To configure proxy settings to install and run the OpenTelemetry Collector, see Configure proxy settings for the Collector.
Use configured repos π
By default, apt/yum/zypper repo definition files are created to download the package and Fluentd deb/rpm packages from https://splunk.jfrog.io/splunk and https://packages.treasuredata.com , respectively.
To skip these steps and use configured repos on the target system that provide the splunk-otel-collector
and td-agent
deb/rpm packages, specify the --skip-collector-repo
or --skip-fluentd-repo
options. For example:
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --realm $SPLUNK_REALM --skip-collector-repo --skip-fluentd-repo \
-- $SPLUNK_ACCESS_TOKEN
Configure automatic discovery for back-end applications π
You can also automatically instrument your Java, Node.js, and .NET applications along with the Collector installation. Automatic discovery removes the need to configure receivers for each back-end application. See Zero-code instrumentation for back-end applications in Linux for the installation instructions.
For more information on APM instrumentation, see:
Collector for Linux with Docker π
Install the Collector in a host with Docker π
If youβre installing your Collector instance in a host with Docker, you need to configure a client to establish a connection with the daemon. Depending on your Docker installation and Collector deployment method, try one of these options:
If your daemon is listening to a domain socket (for example
/var/run/docker.sock
), your Collector service or executable needs appropriate permissions and access. Add thesplunk-otel-collector
user to the Docker group as configured on your system:
$ usermod -aG docker splunk-otel-collector
When using the quay.io/signalfx/splunk-otel-collector image, add the default container user to the required group as configured on your system, and the bind and mount the domain socket:
$ docker run -v /var/run/docker.sock:/var/run/docker.sock:ro --group-add $(stat -c '%g' /var/run/docker.sock) quay.io/signalfx/splunk-otel-collector:latest <...> # or if specifying the user:group directly $ docker run -v /var/run/docker.sock:/var/run/docker.sock:ro --user "splunk-otel-collector:$(stat -c '%g' /var/run/docker.sock)" quay.io/signalfx/splunk-otel-collector:latest <...>
Use auto discovery with containers π
If your Collector instance is running in a Docker container and the discovery targets are also containers, you need to share the Docker socket when launching the Collector container:
$ docker run -v /var/run/docker.sock:/var/run/docker.sock:ro --group-add <socket_gid>
To use host bindings, run this command:
--set=splunk.discovery.extensions.docker_observer.config.use_host_bindings=true
Options of the installer script of the Collector for Linux π
The Linux installer script supports the following options for the Collector, automatic discovery with zero-code instrumentation for back-end services, and Fluentd.
To display all the configuration options supported by the script, use the -h
flag.
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh;
sh /tmp/splunk-otel-collector.sh -h
Collector π
Option |
Description |
Default value |
---|---|---|
|
Set the API endpoint URL explicitly instead of using the endpoint inferred from the specified realm. |
|
|
Set the path to an existing custom configuration file for the Collector service instead of using the default configuration file provided by the Collector package based on the |
|
|
The Collector package version to install. |
|
|
Activate discovery mode on Collector startup. See Automatic discovery of apps and services for more information. |
|
|
Set the HEC token if it is different than the specified |
|
|
Set the HEC endpoint URL explicitly instead of using the endpoint inferred from the specified realm. |
|
|
Set the ingest endpoint URL explicitly instead of using the endpoint inferred from the specified realm. |
|
|
Total memory in MIB to allocate to the Collector. This option automatically calculates the ballast size. See Sizing and scaling for more information on how to scale and size the Collector. |
|
|
Configure the Collector service to run in host monitoring ( |
|
|
Network interface the Collector receivers listen on. |
|
|
The Splunk realm to use. The ingest, API, trace, and HEC endpoint URLs are automatically generated using this value. |
|
|
Set the group for the splunk-otel-collector service. The option creates the group if it doesnβt exist. |
|
|
Set the user for the splunk-otel-collector service. The option creates the user if it doesnβt exist. |
|
|
By default, a apt, yum, or zypper repo definition file is created to download the Collector package from |
|
|
Set the trace endpoint URL explicitly instead of the endpoint inferred from the specified realm. |
|
|
Use |
|
|
Removes the Splunk OpenTelemetry Collector for Linux. |
Automatic discovery with zero-code instrumentation for back-end services π
Option |
Description |
Default value |
---|---|---|
|
Whether to install the |
|
|
Whether to install the |
|
|
Whether to enable zero-code instrumentation for a specific language. This option takes a comma separated set of values representing supported auto-instrumentation SDKs. Currently supported values: |
|
|
If zero-code instrumentation for Node.js is enabled, |
|
|
Set the |
|
|
Override the auto-generated service names for all instrumented applications with the specified value. The value will be set to the |
|
|
Set the OTLP endpoint for captured traces, logs, and metrics for all activated SDKs. The value will be set to the |
|
|
Set the protocol for the OTLP endpoint, for example |
|
|
Comma-separated list of exporters for collected metrics by all activated SDKs, for example |
|
|
Set the exporter for collected logs by all activated SDKs, for example |
|
|
Activate or deactivate AlwaysOn CPU Profiling for all activated SDKs that support the |
|
|
Activate or deactivate AlwaysOn Memory Profiling for all activated SDKs that support the |
|
|
Activate or deactivate collection and exporting metrics for all activated SDKs that support the |
|
|
The |
|
Fluentd π
Option |
Description |
Default value |
---|---|---|
|
Whether to install and configure fluentd to forward log events to the Collector. See Collect Linux logs with Fluentd for more information. |
|
|
By default, a apt/yum repo definition file will be created to download the fluentd deb/rpm package from |
Next steps π
After you have installed the package, see: