Deploy the Collector with Chef 🔗
Chef is a configuration management technology used to manage infrastructure on physical or virtual machines. Chef uses cookbooks to define a scenario.
Cookbooks are fundamental working units of Chef, which consists of all the details related to working units, having the capability to modify configuration and the state of any system configured as a node on Chef infrastructure. Cookbooks can run multiple tasks.
Prerequisites 🔗
You need the following resources to use Chef:
Double-check exposed ports to make sure your environment doesn’t have conflicts. You can change ports in the Collector configuration. See Exposed ports and endpoints for more information.
Linux 🔗
The following Linux distributions and versions:
Amazon Linux: 2
CentOS, Red Hat, Oracle: 7, 8, 9
Debian: 9, 10, 11
SUSE: 12, 15 (Note: Only for Collector versions 0.34.0 or higher. Log collection with Fluentd not currently supported.)
Ubuntu: 18.04, 20.04, 22.04
Windows 🔗
The following Windows versions. All versions require using PowerShell 3.0 or newer.
Windows Server 2019 64-bit
Windows Server 2022 64-bit
Caution
On Windows, the Collector is installed as a Windows service and its environment variables are set at the service scope, so they’re only available to the Collector service and not to the entire machine.
Install and use the Collector with Chef 🔗
Download the Chef cookbook from the Chef Supermarket , which is the site for community cookbooks.
To install the Collector, include the splunk_otel_collector::default
recipe in the run_list
, and set the attributes on the node’s run_state
. The following is an example configuration that shows how to configure the required splunk_access_token
attribute and some optional attributes:
{
"splunk-otel-collector": {
"splunk_access_token": "<SPLUNK_ACCESS_TOKEN>",
"splunk_realm": "<SPLUNK_REALM>",
}
}
Attributes for Linux 🔗
For Linux, the cookbook accepts the attributes described in the following table:
Name |
Description |
Default value |
---|---|---|
|
Version of the Collector package to install, for example, |
None |
|
The Splunk access token to authenticate requests. This attribute is required. |
None |
|
Which realm to send the data to, for example, |
None |
|
Sets the Splunk ingest URL explicitly instead of the URL inferred by the |
|
|
Sets the Splunk API URL explicitly instead of the URL inferred by the |
|
|
Sets the Splunk trace endpoint URL explicitly instead of the URL inferred by the |
|
|
The path to the Smart Agent bundle directory. The default path is provided by the Collector package. If the specified path is changed from the default value, the path should be an existing directory on the node. The |
|
|
The path to the collectd configuration directory for the Smart Agent bundle. The default path is provided by the Collector package. If the specified path is changed from the default value, the path should be an existing directory on the node. The |
|
|
Total memory in MIB to allocate to the Collector; automatically calculates the ballast size. The |
|
|
|
|
|
The source path to the Collector configuration YAML file. This file is copied to the |
|
|
Destination path of the Collector configuration file on the node. The |
|
|
The Collector configuration object. Everything underneath this object gets directly converted to YAML and becomes the Collector configuration file. Using this option preempts |
|
|
Sets the user or group ownership for the Collector service. The user or group is created if they do not exist. |
|
|
The Collector package repository stage to use. Can be |
|
|
Whether to install or manage Fluentd and dependencies for log collection. On Linux, the dependencies include |
|
|
Version of the td-agent (Fluentd) package to install |
|
|
Source path to the Fluentd configuration file. This file is copied to the |
|
|
Destination path to the Fluentd configuration file on the node. Only applicable if |
|
Configure auto instrumentation for Java and Node.js (Linux only) 🔗
You can automatically instrument your Java and Node.js applications along with the Collector installation. Auto instrumentation removes the need to install and configure OpenTelemetry agents separately. See Splunk OpenTelemetry Zero Configuration Auto Instrumentation for more information. The applications to be instrumented on the node need to be started or restarted separately after installation or any configuration changes for auto instrumentation to take effect.
The following table shows the variables that can be configured with this Chef cookbook:
Name |
Description |
Default value |
---|---|---|
|
Whether to install or manage Splunk OpenTelemetry Zero Config Auto Instrumentation for Node.js and Splunk OpenTelemetry Zero Configuration Auto Instrumentation for Java. When set to |
|
|
Version of the |
|
|
Whether to activate and configure the auto instrumentation for |
|
|
By default, the |
|
|
Configure the OpenTelemetry instrumentation resource attributes, for example, |
|
|
Explicitly sets the service name for all instrumented applications on the node, for example, |
|
|
Activates or deactivates AlwaysOn CPU Profiling. To learn more, see Node.js settings for AlwaysOn Profiling. |
|
|
Activates or deactivates AlwaysOn Memory Profiling. To learn more, see Node.js settings for AlwaysOn Profiling. |
|
|
Activates or deactivates exporting instrumentation metrics. |
|
|
Sets the OTLP gRPC endpoint that receives traces. Only applicable for OpenTelemetry Collector versions |
|
|
The auto instrumentation language SDKs to install and activate. |
|
|
Path to the Splunk OpenTelemetry Java agent. The default path is provided by the |
|
|
The path to the pre-installed |
|
Configure auto instrumentation for SignalFx .NET (Windows only) 🔗
You can automatically instrument your .NET applications along with the Collector installation. Auto instrumentation removes the need to install and configure the SignalFx .NET agent separately. See Splunk OpenTelemetry Zero Configuration Auto Instrumentation for more information.
The cookbook accepts the attributes described in the following table:
Name |
Description |
Default value |
---|---|---|
|
Whether to install or manage Splunk OpenTelemetry Zero Configuration Auto Instrumentation for .NET. When set to |
|
|
Version of the |
|
|
Specify the URL to download the MSI from a custom host, for example |
|
|
By default, the |
|
|
Whether to configure auto instrumentation for all .NET applications on the node. When set to |
|
|
Sets the deployment environment variable that is reported to Splunk APM, for example |
|
|
Sets the service name for the instrumented application, for example, |
|
|
Activates or deactivates AlwaysOn Profiling. The value will be assigned to the |
|
|
Activates or deactivates AlwaysOn Memory Profiling. The value will be assigned to the |
|
|
Hash of additional options to be added to the Windows registry in addition to the options above. To learn more, see Configure the SignalFx Instrumentation for .NET. |
|
Additional environment variables 🔗
Use collector_additional_env_vars
to include any additional environment variables from the Collector configuration file for the Collector’s service. {}
by default.
For example, if the Collector’s configuration file includes references to ${MY_CUSTOM_VAR1}
and ${MY_CUSTOM_VAR2}
, specify the following to allow the Collector service to expand these variables:
collector_additional_env_vars: {'MY_CUSTOM_VAR1' => 'value1', 'MY_CUSTOM_VAR2' => 'value2'}
On Linux, the variables/values will be added to the /etc/otel/collector/splunk-otel-collector.conf
systemd environment file.
On Windows, the variables/values will be added to the Environment value under the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\splunk-otel-collector
registry key.