Zero-code instrumentation for back-end applications in Linux 🔗
The Splunk Distribution of the OpenTelemetry Collector uses automatic discovery with zero-code instrumentation to automatically detect back-end applications running in your Linux environment. By deploying the Collector with zero-code instrumentation, you can monitor applications and send data to Splunk Observability Cloud without editing your application’s code or configuring files.
Zero-code instrumentation for Linux can detect and configure the following applications and language runtimes:
Java
Node.js
.NET
How zero-code instrumentation for Linux works 🔗
Zero-code instrumentation for Linux operates as a mode of the Splunk Distribution of the OpenTelemetry Collector. You install and activate zero-code instrumentation for the Collector by using the Linux installer script or package manager. During installation, you can specify the types of language runtimes you want the Collector to detect.
インストール後、Collector は Linux 環境で実行され、アプリケーションへのリクエストをリッスンします。Collector はアクティビティを検出すると、アプリケーションのランタイムからテレメトリデータを収集し、このデータを Splunk Application Performance Monitoring (APM) に送信します。
要件 🔗
You need the following components to use zero-code instrumentation for back-end Linux applications:
systemd
curl
sudo
使用言語のランタイムに固有のコンポーネントもインストールされていることを確認してください:
Java version 8 or higher and supported libraries. See Javaエージェントの互換性と要件 for more information.
Node.jsのバージョン14以上とサポートされているライブラリ。詳しくは Splunk OTel JS の互換性と要件 を参照してください。
.NET version 6.0 or higher and supported libraries. See OpenTelemetry .NET インストルメンテーションの互換性と要件 for more information.
Zero-code instrumentation for .NET is only supported for x86_64/AMD64 architectures.
はじめに 🔗
To install and use zero-code instrumentation for Linux, follow these steps:
パッケージをインストールする 🔗
Using the installer script, you can install and activate zero-code instrumentation for either all supported applications on the host via the system-wide method or only for applications running as systemd
services.
Using the installer script, you can install the zero-code instrumentation package for Java and activate zero-code instrumentation for Java for either all supported Java applications on the host via the system-wide method or for only Java applications running as systemd
services.
注釈
By default, zero-code instrumentation is activated for all languages (Java, Node.js, and .NET) when using the installer script. To deactivate zero-code instrumentation for other languages, add the --without-instrumentation-sdk [language]
option in the installer script command.
次の例に示すように、--with-instrumentation
オプションを指定してインストーラ・スクリプトを実行します。<SPLUNK_REALM>
と <SPLUNK_ACCESS_TOKEN>
をそれぞれ Splunk Observability Cloud レルムとトークンに置き換えてください。
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-instrumentation --realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN>
注釈
If you wish to collect logs for the target host, make sure Fluentd is installed and enabled in your Collector instance by specifying the --with-fluentd
option.
The system-wide zero-code instrumentation method automatically adds environment variables to /etc/splunk/zeroconfig/java.conf
.
インストール時にオプションの deployment.environment
リソース属性を自動的に定義するには、--deployment-environment <env>
オプションを指定してインストーラ・スクリプトを実行します。次の例に示すように、<env>
を希望する属性値、例えば prod
で置き換えます:
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-instrumentation --deployment-environment prod \
--realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN>
次の例のように、追加オプションを使用して、CPU とメモリ、およびメトリクスの AlwaysOn Profilingを有効にできます:
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-instrumentation --deployment-environment prod \
--realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN> \
--enable-profiler --enable-profiler-memory --enable-metrics
Next, ensure the service is running and restart your application. See コレクターサービスが実行されていることを確認します。 and アプリケーションを開始する.
次の例に示すように、--with-systemd-instrumentation
オプションを指定してインストーラ・スクリプトを実行します。<SPLUNK_REALM>
と <SPLUNK_ACCESS_TOKEN>
をそれぞれ Splunk Observability Cloud レルムとトークンに置き換えてください。
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-systemd-instrumentation --realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN>
systemd
のインストルメンテーションは、環境変数を /usr/lib/systemd/system.conf.d/00-splunk-otel-auto-instrumentation.conf
に自動的に追加します。
注釈
If you wish to collect logs for the target host, make sure Fluentd is installed and enabled in your Collector instance by specifying the --with-fluentd
option.
インストール時にオプションの deployment.environment
リソース属性を自動的に定義するには、--deployment-environment <env>
オプションを指定してインストーラ・スクリプトを実行します。次の例に示すように、<env>
を希望する属性値、例えば prod
で置き換えます:
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-systemd-instrumentation --deployment-environment prod \
--realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN>
次の例のように、追加オプションを使用して、CPU とメモリ、およびメトリクスの AlwaysOn Profilingを有効にできます:
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-systemd-instrumentation --deployment-environment prod \
--realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN> \
--enable-profiler --enable-profiler-memory --enable-metrics
Next, ensure the service is running and restart your application. See コレクターサービスが実行されていることを確認します。 and アプリケーションを開始する.
注釈
まず、ダウンロードしたパッケージを使用して Collector for Linux をインストールします。 を使用して Splunk OpenTelemetry Collector をインストールする必要があります。
Collector をインストールした後、以下の手順に従って、Debian または RPM リポジトリを使用して root
権限でパッケージをインストールしてください:
GitHub Releases ページ から直接
splunk-otel-auto-instrumentation
パッケージをダウンロードするか、Linux ホストのパッケージ・リポジトリに Splunk リポジトリを追加してください。パッケージ・リポジトリの設定方法については Debian または RPM パッケージ・リポジトリ を参照してください。以下のコマンドを実行してパッケージをインストールします。
<path to splunk-otel-auto-instrumentation deb/rpm>
はダウンロードしたパッケージのローカルパスに置き換えてください。sudo dpkg -i <path to splunk-otel-auto-instrumentation deb>
sudo rpm -ivh <path to splunk-otel-auto-instrumentation rpm>
/etc/otel/collector/splunk-otel-collector.conf
ファイルを編集して、SPLUNK_ACCESS_TOKEN
とSPLUNK_REALM
変数を先ほど取得した値に設定します。ファイルが存在しない場合は、/etc/otel/collector/splunk-otel-collector.conf.example
で提供されているサンプルを出発点として使用してください。SPLUNK_ACCESS_TOKEN=<access_token> SPLUNK_REALM=<realm>
コレクタサービスを開始します:
sudo systemctl start splunk-otel-collector
Using the installer script, you can install and activate zero-code instrumentation for Node.js for either all supported Node.js applications on the host via the system-wide method or for only Node.js applications running as systemd
services.
インストーラスクリプトは、npm install
コマンドを使用して Node.js パッケージをインストールします。インストールに npm
へのカスタムパスを指定するには、次の例のように --npm-path <path>
オプションを使用します:
--npm-path /custom/path/to/npm
注釈
By default, zero-code instrumentation is activated for all languages (Java, Node.js, and .NET) when using the installer script. To deactivate zero-code instrumentation for other languages, add the --without-instrumentation-sdk [language]
option in the installer script command.
パッケージをインストールするには、Collector インストーラスクリプトを --with-instrumentation
オプションを付けて実行します。インストーラスクリプトは、Splunk Distribution of OpenTelemetry JS から Collector と Node.js エージェントをインストールします。Node.js エージェントは、ローカルマシンで Node.js アプリケーションが起動すると自動的にロードされます。
次の例に示すように、--with-instrumentation
オプションを指定してインストーラ・スクリプトを実行します。<SPLUNK_REALM>
と <SPLUNK_ACCESS_TOKEN>
をそれぞれ Splunk Observability Cloud レルムとトークンに置き換えてください。
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \ sh /tmp/splunk-otel-collector.sh --with-instrumentation --realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN>注釈
If you wish to collect logs for the target host, make sure Fluentd is installed and enabled in your Collector instance by specifying the
--with-fluentd
option.
The system-wide zero-code instrumentation method automatically adds environment variables to /etc/splunk/zeroconfig/node.conf
.
次の例のように、追加オプションを使用して、CPU とメモリ、およびメトリクスの AlwaysOn Profilingを有効にできます:
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-instrumentation --deployment-environment prod \
--realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN> \
--enable-profiler --enable-profiler-memory --enable-metrics
Next, ensure the collector service is running and restart your Node.js application(s). See コレクターサービスが実行されていることを確認します。 and アプリケーションを開始する.
次の例に示すように、--with-systemd-instrumentation
オプションを指定してインストーラ・スクリプトを実行します。<SPLUNK_REALM>
と <SPLUNK_ACCESS_TOKEN>
をそれぞれ Splunk Observability Cloud レルムとトークンに置き換えてください。
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \ sudo sh /tmp/splunk-otel-collector.sh --with-systemd-instrumentation --realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN>The
systemd
zero-code instrumentation method automatically adds environment variables to/usr/lib/systemd/system.conf.d/00-splunk-otel-auto-instrumentation.conf
.注釈
If you wish to collect logs for the target host, make sure Fluentd is installed and enabled in your Collector instance by specifying the
--with-fluentd
option.
次の例のように、追加オプションを使用して、CPU とメモリ、およびメトリクスの AlwaysOn Profilingを有効にできます:
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-systemd-instrumentation --deployment-environment prod \
--realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN> \
--enable-profiler --enable-profiler-memory --enable-metrics
Next, ensure the collector service is running and restart your Node.js application(s). See コレクターサービスが実行されていることを確認します。 and アプリケーションを開始する.
Using the installer script, you can install and activate zero-code instrumentation for .NET for either all supported .NET applications on the host via the system-wide method or for only .NET applications running as systemd
services.
注釈
By default, zero-code instrumentation is activated for all languages (Java, Node.js, and .NET) when using the installer script. To deactivate zero-code instrumentation for other languages, add the --without-instrumentation-sdk [language]
option in the installer script command.
次の例に示すように、--with-instrumentation
オプションを指定してインストーラ・スクリプトを実行します。<SPLUNK_REALM>
と <SPLUNK_ACCESS_TOKEN>
をそれぞれ Splunk Observability Cloud レルムとトークンに置き換えてください。
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-instrumentation --realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN>
注釈
If you wish to collect logs for the target host, make sure Fluentd is installed and enabled in your Collector instance by specifying the --with-fluentd
option.
The system-wide zero-code instrumentation method automatically adds environment variables to /etc/splunk/zeroconfig/dotnet.conf
.
インストール時にオプションの deployment.environment
リソース属性を自動的に定義するには、--deployment-environment <env>
オプションを指定してインストーラ・スクリプトを実行します。次の例に示すように、<env>
を希望する属性値、例えば prod
で置き換えます:
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-instrumentation --deployment-environment prod \
--realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN>
次の例のように、追加オプションを使用して、CPU とメモリ、およびメトリクスの AlwaysOn Profilingを有効にできます:
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-instrumentation --deployment-environment prod \
--realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN> \
--enable-profiler --enable-profiler-memory --enable-metrics
Next, ensure the service is running and restart your application. See コレクターサービスが実行されていることを確認します。 and アプリケーションを開始する.
次の例に示すように、--with-systemd-instrumentation
オプションを指定してインストーラ・スクリプトを実行します。<SPLUNK_REALM>
と <SPLUNK_ACCESS_TOKEN>
をそれぞれ Splunk Observability Cloud レルムとトークンに置き換えてください。
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-systemd-instrumentation --realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN>
systemd
のインストルメンテーションは、環境変数を /usr/lib/systemd/system.conf.d/00-splunk-otel-auto-instrumentation.conf
に自動的に追加します。
注釈
If you wish to collect logs for the target host, make sure Fluentd is installed and enabled in your Collector instance by specifying the --with-fluentd
option.
インストール時にオプションの deployment.environment
リソース属性を自動的に定義するには、--deployment-environment <env>
オプションを指定してインストーラ・スクリプトを実行します。次の例に示すように、<env>
を希望する属性値、例えば prod
で置き換えます:
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-systemd-instrumentation --deployment-environment prod \
--realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN>
次の例のように、追加オプションを使用して、CPU とメモリ、およびメトリクスの AlwaysOn Profilingを有効にできます:
curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-systemd-instrumentation --deployment-environment prod \
--realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN> \
--enable-profiler --enable-profiler-memory --enable-metrics
Next, ensure the service is running and restart your application. See コレクターサービスが実行されていることを確認します。 and アプリケーションを開始する.
コレクターサービスが実行されていることを確認します。 🔗
インストールに成功したら、以下のコマンドを実行し、splunk-otel-collector
サービスが実行されていることを確認します:
sudo systemctl status splunk-otel-collector
サービスが起動していない場合は、以下のコマンドで起動または再起動します:
sudo systemctl restart splunk-otel-collector
サービスが開始できない場合は、/etc/otel/collector/splunk-otel-collector.conf
の SPLUNK_REALM
と SPLUNK_ACCESS_TOKEN
が正しいことを確認します。このコマンドでサービスのログを見ることもできます:
sudo journalctl -u splunk-otel-collector
アプリケーションを開始する 🔗
For zero-code instrumentation to take effect, you must either restart the host or manually start or restart any applications on the host where you installed the package. You must restart the host or applications after installing the zero-code instrumentation package for the first time and whenever you make any changes to the configuration file.
After your applications are running, you can verify your data. See Splunk APM で結果を表示する. You can also configure instrumentation settings. See (オプション)インストルメンテーションの設定.
(オプション)インストルメンテーションの設定 🔗
You can configure the Splunk Distribution of OpenTelemetry Collector to suit your instrumentation needs. In most cases, modifying the basic configuration is enough to get started.
To learn more, see the following resources:
Update zero-code instrumentation 🔗
パッケージリポジトリを使うか、Debian や RPM パッケージを使うことで、パッケージをアップグレードできます。
インストーラ・スクリプトを使ってパッケージをインストールした場合、または Debian や RPM のパッケージリポジトリを手動で設定した場合は、プラットフォームに応じて以下のコマンドを実行してください。パッケージのアップグレードには root
権限が必要です。
以下のコマンドを実行します:
sudo apt-get update
sudo apt-get --only-upgrade splunk-otel-auto-instrumentation
You might see a prompt to keep or overwrite the configuration file(s) in /etc/splunk/zeroconfig/
. If you choose to overwrite, the configuration file reverts to the default file provided by the upgraded package.
RPMパッケージ管理システムについては、以下のコマンドを実行します:
yum:
sudo yum upgrade splunk-otel-auto-instrumentation
dnf:
sudo dnf upgrade splunk-otel-auto-instrumentation
zypper:
sudo zypper refresh
sudo zypper update splunk-otel-auto-instrumentation
パッケージをアップグレードしたら、ホスト上のJavaアプリケーションを手動で起動または再起動して、変更を有効にします。
パッケージを手動でアップグレードするには:
GitHub Releases ページ から、ターゲットシステム用の
splunk-auto-auto-instrumentation
Debian パッケージまたは RPM パッケージをダウンロードします。以下のコマンドを実行してパッケージをインストールします。
<path to splunk-otel-auto-instrumentation deb/rpm>
はダウンロードしたパッケージのローカルパスに置き換えてください:
sudo dpkg -i <path to splunk-otel-auto-instrumentation deb>
sudo rpm -Uvh <path to splunk-otel-auto-instrumentation rpm>
After upgrading the Debian package, you might see a prompt to keep or overwrite the configuration file(s) in /etc/splunk/zeroconfig/
. If you choose to overwrite, the configuration file reverts to the default file provided by the upgraded package.
Collector と同じパッケージリポジトリを使用してアップグレードすることもできます。詳細は Debian または RPM パッケージ を参照してください。
To update the Node.js agent to the latest provided version, you must first update the splunk-otel-auto-instrumentation
package.
パッケージリポジトリを使うか、Debian や RPM パッケージを使うことで、パッケージをアップグレードできます。
インストーラ・スクリプトを使ってパッケージをインストールした場合、または Debian や RPM のパッケージリポジトリを手動で設定した場合は、プラットフォームに応じて以下のコマンドを実行してください。パッケージのアップグレードには root
権限が必要です。
以下のコマンドを実行します:
sudo apt-get update
sudo apt-get --only-upgrade splunk-otel-auto-instrumentation
You might see a prompt to keep or overwrite the configuration file(s) in /etc/splunk/zeroconfig/
. If you choose to overwrite, the configuration file reverts to the default file provided by the upgraded package.
RPMパッケージ管理システムについては、以下のコマンドを実行します:
yum:
sudo yum upgrade splunk-otel-auto-instrumentation
dnf:
sudo dnf upgrade splunk-otel-auto-instrumentation
zypper:
sudo zypper refresh
sudo zypper update splunk-otel-auto-instrumentation
After you’ve upgraded the packages, manually start or restart the Node.js applications on the host for the changes to take effect.
パッケージを手動でアップグレードするには:
GitHub Releases ページ から、ターゲットシステム用の
splunk-auto-auto-instrumentation
Debian パッケージまたは RPM パッケージをダウンロードします。以下のコマンドを実行してパッケージをインストールします。
<path to splunk-otel-auto-instrumentation deb/rpm>
はダウンロードしたパッケージのローカルパスに置き換えてください:
sudo dpkg -i <path to splunk-otel-auto-instrumentation deb>
sudo rpm -Uvh <path to splunk-otel-auto-instrumentation rpm>
After upgrading the Debian package, you might see a prompt to keep or overwrite the configuration file(s) in /etc/splunk/zeroconfig/
. If you choose to overwrite, the configuration file reverts to the default file provided by the upgraded package.
Collector と同じパッケージリポジトリを使用してアップグレードすることもできます。詳細は Debian または RPM パッケージ を参照してください。
splunk-otel-auto-instrumentation
パッケージを更新したら、以下のコマンドを実行します:
cd /usr/lib/splunk-instrumentation/splunk-otel-js && \
sudo npm install /usr/lib/splunk-instrumentation/splunk-otel-js.tgz
The default zero-code instrumentation configuration expects the Node.js agent to be installed under the /usr/lib/splunk-instrumentation/splunk-otel-js
path.
Node.jsエージェントが別のパスにインストールされている場合は、NODE_OPTIONS
環境変数のパスを、システム全体サービスの場合は /etc/splunk/zeroconfig/node.conf
、systemd
サービスの場合は /usr/lib/systemd/system.conf.d/00-splunk-otel-auto-instrumentation.conf
を手動で更新してください。例:
NODE_OPTIONS=-r /custom/nodejs/install/path/@splunk/otel/instrument
パッケージリポジトリを使うか、Debian や RPM パッケージを使うことで、パッケージをアップグレードできます。
インストーラ・スクリプトを使ってパッケージをインストールした場合、または Debian や RPM のパッケージリポジトリを手動で設定した場合は、プラットフォームに応じて以下のコマンドを実行してください。パッケージのアップグレードには root
権限が必要です。
以下のコマンドを実行します:
sudo apt-get update
sudo apt-get --only-upgrade splunk-otel-auto-instrumentation
You might see a prompt to keep or overwrite the configuration file(s) in /etc/splunk/zeroconfig/
. If you choose to overwrite, the configuration file reverts to the default file provided by the upgraded package.
RPMパッケージ管理システムについては、以下のコマンドを実行します:
yum:
sudo yum upgrade splunk-otel-auto-instrumentation
dnf:
sudo dnf upgrade splunk-otel-auto-instrumentation
zypper:
sudo zypper refresh
sudo zypper update splunk-otel-auto-instrumentation
After you’ve upgraded the packages, manually start or restart the .NET applications on the host for the changes to take effect.
パッケージを手動でアップグレードするには:
GitHub Releases ページ から、ターゲットシステム用の
splunk-auto-auto-instrumentation
Debian パッケージまたは RPM パッケージをダウンロードします。以下のコマンドを実行してパッケージをインストールします。
<path to splunk-otel-auto-instrumentation deb/rpm>
はダウンロードしたパッケージのローカルパスに置き換えてください:
sudo dpkg -i <path to splunk-otel-auto-instrumentation deb>
sudo rpm -Uvh <path to splunk-otel-auto-instrumentation rpm>
After upgrading the Debian package, you might see a prompt to keep or overwrite the configuration file(s) in /etc/splunk/zeroconfig/
. If you choose to overwrite, the configuration file reverts to the default file provided by the upgraded package.
Collector と同じパッケージリポジトリを使用してアップグレードすることもできます。詳細は Debian または RPM パッケージ を参照してください。
トラブルシューティング 🔗
To troubleshoot common errors that occur when instrumenting applications, see the following troubleshooting guides:
Splunk APM で結果を表示する 🔗
After activating zero-code instrumentation, ensure your data is flowing into Splunk Observability Cloud. See データがSplunk APMに取り込まれていることを確認する.