インストーラ・スクリプトを使用して Linux 用 Collector をインストールします。

OpenTelemetry Collector for Linux の Splunk ディストリビューションをスクリプトまたはデプロイツールを使用してインストールする方法について説明します。

Splunk Distribution of the OpenTelemetry Collector for Linuxは、すべてのデータタイプに対して統合された収集と転送を提供するパッケージです。

以下のいずれかの方法でパッケージをインストールします:

対応バージョン

Collector は以下のLinuxディストリビューションとバージョンをサポートしています:

  • Amazon Linux: 2、2023

  • CentOS: 7、8、9

  • Red Hat: 7、8、9

  • Oracle: 8、9

  • Debian: 11、12

  • SUSE:バージョン 0.34.0 以降の場合は 12、15

  • Ubuntu:16.04、18.04、20.04、22.04、24.04

  • Rocky Linux:8, 9

含まれるパッケージ

インストーラ・スクリプトは、これらの要素をデプロイし、設定します:

  • Splunk Distribution of the OpenTelemetry Collector for Linux

  • JMXメトリクスギャザラー

インストーラ・スクリプトを使用してCollectorをインストールする

インストーラ・スクリプトを使用してCollectorパッケージをインストールするには、以下の手順に従ってください:

  1. systemdcurlsudo がインストールされていることを確認します。

  2. このコマンドを使用して、インストーラ・スクリプトをダウンロードして実行します。

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

以下の変数を環境に合わせて置き換えてください:

  • SPLUNK_REALM:データ送信先のレルムです。デフォルトは us0 です。Splunk レルムを見つけるには、「Note about realms」を参照してください。

  • SPLUNK_MEMORY_TOTAL_MIB:割り当てられたメモリの合計値(MiB)です。たとえば、512 は、512 MiB(500 x 2^20 バイト)のメモリを割り当てます。

  • SPLUNK_ACCESS_TOKEN:データ取り込みリクエストを認証するための、base64 エンコードされたアクセストークンです。「Splunk Observability Cloud を使用した組織のアクセストークンの作成および管理」を参照してください。

メモリ割り当てを設定する

メモリ割り当てを設定するには、--memory パラメータを変更します。デフォルトでは、このパラメータはメモリの 512 MiB(500 x 2^20 バイト)に設定されます。設定を増やすことで、より多くのメモリを割り当てることができます。以下の例を参照してください。

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

プロキシ設定を構成する

OpenTelemetry Collector をインストールして実行するためのプロキシ設定を行うには、「Configure proxy settings for the Collector」を参照してください。

設定されたレポを使用する

デフォルトでは、apt/yum/zypper のリポジトリ定義ファイルが作成され、https://splunk.jfrog.io/splunk から deb/rpm パッケージをダウンロードします。

これらの手順を省略し、splunk-otel-collectorおよび td-agent deb/rpm パッケージを提供するターゲットシステム上の設定済みリポジトリを使用するには、--skip-collector-repo オプションを指定します。例:

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 \
 -- $SPLUNK_ACCESS_TOKEN

バックエンドアプリケーションの自動ディスカバリーを設定する

Collector のインストールとあわせて、Java、Node.js、および .NET アプリケーションを自動的に計測対象にすることもできます。自動検出により、各バックエンドアプリケーションに対してレシーバを設定する必要がなくなります。詳しくは「Linux でのバックエンドアプリケーションのゼロコードインストルメンテーション」を参照してください。

APM インストルメンテーションの詳細については、次を参照してください:

DockerのあるCollector for Linux

Dockerを使用してホストでCollectorをインストールする

Docker を使用して Collector インスタンスをホストにインストールしている場合は、daemon との接続を確立するためにクライアントを設定する必要があります。Docker のインストールと Collector のデプロイメント方法に応じて、次のいずれかのオプションを試してください。

  1. daemon がドメインソケット(例:/var/run/docker.sock)を受信する場合、Collector サービスまたは実行ファイルには適切な権限とアクセス権が必要です。システムで設定されている Docker グループに splunk-otel-collector ユーザーを追加します。

    $ usermod -aG docker splunk-otel-collector
  2. quay.io/signalfx/splunk-otel-collector 画像を使用する場合は、デフォルトのコンテナユーザーを、システムで設定されている必要なグループに追加し、ドメインソケットをバインドしてマウントします。

    $ 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 <...>

コンテナで自動ディスカバリーを使用する

CollectorインスタンスがDockerコンテナで実行され、検出ターゲットもコンテナである場合、Collectorコンテナを起動するときにDockerソケットを共有する必要があります:

$ docker run -v /var/run/docker.sock:/var/run/docker.sock:ro --group-add <socket_gid>

ホストバインディングを使用するには、次のコマンドを実行します:

--set=splunk.discovery.extensions.docker_observer.config.use_host_bindings=true

Collector for Linuxインストーラ・スクリプトのオプション

Linux インストーラスクリプトは、Collector とバックエンドサービスのゼロコードインストルメンテーションによる自動検出をサポートしています。

スクリプトがサポートするすべての設定オプションを表示するには、-h フラグを使用します。

curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh;
sh /tmp/splunk-otel-collector.sh -h

Collector

オプション

説明

デフォルト値

--api-url <url>

指定されたレルムから推測されるエンドポイントを使用する代わりに、API エンドポイント URL を明示的に設定します。

https://api.REALM.signalfx.com

--collector-config <path>

Collector パッケージが提供するデフォルトの設定ファイルの代わりに、Collector サービス用の既存のカスタム設定ファイルへのパスを --mode <agent|gateway> オプションに基づいて指定します。指定されたファイルにカスタム環境変数が必要な場合は、インストール後に変数と値の両方を /etc/otel/collector/splunk-otel-collector.conf に手動で追加できます。sudo systemctl restart splunk-otel-collector コマンドで Collector サービスを再起動して、変更を適用します。

agentモード用 /etc/otel/collector/agent_config.yamlgateway モード用 /etc/otel/collector/gateway_config.yaml

--collector-version <version>

インストールする Collector パッケージのバージョン。

latest

--discovery

Collector で検出モードを有効にします。詳細については、「アプリとサービスの自動検出」を参照してください。

--hec-token <token>

指定された access_token と異なる場合は、HECトークンを設定します。

--hec-url <url>

指定されたレルムから推測されるエンドポイントを使う代わりに、明示的にHECエンドポイントURLを設定します。

https://ingest.REALM.signalfx.com/v1/log

--ingest-url <url>

指定されたレルムから推測されるエンドポイントを使用する代わりに、明示的にインジェスト・エンドポイントのURLを設定します。

https://ingest.REALM.signalfx.com

--memory <memory size>

Collector に割り当てるメモリの合計(MiB単位)。このオプションは、バラストサイズを自動的に計算します。Collector のスケーリングとサイズの詳細については、「Sizing and scaling」を 参照してください。

512

--mode <agent|gateway>

Collector サービスをホスト監視(agent)またはデータ転送(gateway)で実行するように構成します。詳細については、「Collector deployment modes」を参照してください。

agent

--listen-interface <ip>

Collector レシーバーがリッスンするネットワーク・インターフェイス。

agent モード用 127.0.0.1、それ以外の場合は 0.0.0.0

--realm <us0|us1|eu0|...>

使用する Splunk レルム。インジェスト、API、トレース、HEC のエンドポイント URL は、この値を使用して自動的に生成されます。

us0

--service-group <group>

splunk-otel-collector サービスのグループを設定します。このオプションは、グループが存在しない場合にグループを作成します。

splunk-otel-collector

--service-user <user>

splunk-otel-collector サービスのユーザーを設定します。このオプションは、ユーザーが存在しない場合にユーザーを作成します。

splunk-otel-collector

--skip-collector-repo

デフォルトでは、apt、yum、または zypper のリポジトリ定義ファイルが作成され、https://splunk.jfrog.io から Collector パッケージがダウンロードされます。前の手順をスキップして、ターゲットシステム上の事前設定済みリポジトリから splunk-otel-collector deb または rpm パッケージを利用するには、このオプションを使用します。

--trace-url <url>

指定されたレルムから推測されるエンドポイントではなく、明示的にトレースエンドポイント URL を設定します。

https://ingest.REALM.signalfx.com/v2/trace

--

アクセストークンが - で始まる場合(-- -MY-ACCESS-TOKEN など)は、-- を使用します。

--uninstall

Linux 用 Splunk OpenTelemetry Collector を削除します。

バックエンドサービスのゼロコードインストルメンテーションによるオートディスカバリー

オプション

説明

デフォルト値

--with[out]-instrumentation

ホスト上のすべてのサポート対象プロセスに対してゼロコード計測を有効化するために、splunk-otel-auto-instrumentation パッケージをインストールし、libsplunk.so 共有ライブラリを /etc/ld.so.preload に追加するかどうかを指定します。 --with-systemd-instrumentation オプションと組み合わせることはできません。詳細については、「Linux でのバックエンドアプリケーションのゼロコードインストルメンテーション」を参照してください。

--without-instrumentation

--with[out]-systemd-instrumentation

systemd サービスとして実行されているすべてのサポート対象アプリケーションに対してゼロコード計測を有効化するために、splunk-otel-auto-instrumentationパッケージをインストールし、systemd のドロップインファイルを設定するかどうかを定義します。 --with-instrumentation オプションと組み合わせることはできません。詳細については、「Linux でのバックエンドアプリケーションのゼロコードインストルメンテーション」を参照してください。

--without-systemd-instrumentation

--with[out]-instrumentation-sdk <sdk>

特定の言語でゼロコードインストルメンテーションを有効にするかどうかを定義します。このオプションは、サポートされている自動インストルメンテーション SDK を表すカンマ区切りの値のセットを取得します。現在サポートされている値: javanode、および dotnet。指定した言語(--with-instrumentation-sdk java など)のみを有効にするには --with-instrumentation-sdk を使用します。注:.NET(dotnet)のゼロコードインストルメンテーションは、x86_64/amd64 でのみサポートされます。

--with-instrumentation-sdk java,nodejs,dotnet

--npm-path <path>

Node.js のゼロコードインストルメンテーションが有効になっている場合、Node.js パッケージに含まれている Splunk OpenTelemetry ゼロコードインストルメンテーションをインストールするために npm が必要となります。 npmcommand -v npm シェルコマンドで見つからない場合、またはインストールが失敗した場合、Node.js のゼロコードインストルメンテーションはアクティブになりません。--npm-path /my/path/to/npm など、npm へのカスタムパスを指定する場合はこのオプションを使用します。

npm

--deployment-environment <value>

deployment.environment リソース属性を、指定した値に設定します。指定しない場合、Splunk APM UI の Environment は、インストルメンテーションされたすべてのアプリケーションで unknown として表示されます。リソース属性が OTEL_RESOURCE_ATTRIBUTES 環境変数に追加されます。

--service-name <name>

インストルメンテーションされたすべてのアプリケーションに対して、自動生成されたサービス名を指定した値で上書きします。値は OTEL_SERVICE_NAME 環境変数に設定されます。

--otlp-endpoint <host:port>

取得したトレース、ログ、メトリクスのすべての有効 SDK に対して OTLP エンドポイントを設定します。 値は OTEL_EXPORTER_OTLP_ENDPOINT 環境変数に設定されます。指定しない場合、デフォルトの動作は、アクティブ化された各 SDK のデフォルトの OTEL_EXPORTER_OTLP_ENDPOINT 値に従います。

--otlp-endpoint-protocol <protocol>

OTLP エンドポイントのプロトコルを設定します(grpchttp/protobuf)。値は OTEL_EXPORTER_OTLP_PROTOCOL 環境変数に設定されます。指定しない場合、デフォルトの動作は、アクティブ化された各 SDK のデフォルトの OTEL_EXPORTER_OTLP_PROTOCOL 値に従います。

--metrics-exporter <exporters>

すべてのアクティブ化された SDK によって収集されたメトリクスのエクスポータのカンマ区切りリスト( otlp,prometheusなど)。メトリクスの収集とエクスポートを停止するには、値を none" に設定します。値は OTEL_METRICS_EXPORTER 環境変数に設定されます。デフォルトの動作は、アクティブ化された各 SDK のデフォルトの OTEL_METRICS_EXPORTER 値に従います。

--logs-exporter <exporter>

あらゆる有効 SDK が収集したログにエクスポータを設定します(otlp など)。ログの収集とエクスポートを停止するには、値を none に設定します。 OTEL_LOGS_EXPORTER 環境変数にはこの値が含まれます。デフォルトでは、アクティブ化された各 SDK はデフォルトの OTEL_LOGS_EXPORTER 値を使用します。

--[enable|disable]-profiler

SPLUNK_PROFILER_ENABLED 環境変数をサポートする、すべてのアクティブにされたSDKのAlwaysOn CPU Profilingをアクティブまたは非アクティブにします。

--disable-profiler

--[enable|disable]-profiler-memory

SPLUNK_PROFILER_MEMORY_ENABLED 環境変数をサポートする、すべてのアクティブにされたSDKのAlwaysOn Memory Profilingをアクティブまたは非アクティブにします。

--disable-profiler-memory

--[enable|disable]-metrics

SPLUNK_METRICS_ENABLED 環境変数をサポートする、すべてのアクティブにされたSDKのメトリクス収集およびエクスポートをアクティブまたは非アクティブにします。

--disable-metrics

--instrumentation-version

インストールする splunk-otel-auto-instrumentation パッケージのバージョン。注:Java および Node.js ゼロコードインストルメンテーションの最小サポートバージョンは 0.87.0 で、.NET ゼロコードインストルメンテーションの最小サポートバージョンは 0.99.0 です。

latest

次のステップ