Collector for Linuxを手動でインストールする

OpenTelemetry Collector for Linux の Splunk ディストリビューションを手動でインストールする方法について説明します。

Splunk Distribution of the OpenTelemetry Collector for Linuxは、すべてのデータタイプに対して統合された収集と転送を提供するパッケージです。パッケージを手動でインストールするには、このドキュメントを参照してください。

注: また、インストーラスクリプトまたはデプロイおよび構成管理ツールを使用してパッケージをインストールすることも可能です。

Splunk には以下の手動設定オプションがあります:

アクセス許可

ユーザーに関係なく、root権限なしでCollectorを実行できるようにするには、少なくともこれらの機能が必要です:

  • cap_dac_read_search:ファイルの読み取り権限チェック、およびディレクトリの読み取りと実行の権限チェックをバイパスできるようにします。

  • cap_sys_ptrace:任意のプロセスのトレース、管理、データ転送を可能にします。

これらの推奨機能については、「Linux capabilities - manual page」を参照してください。

注: あなたのシステムには、より高い、またはより多くのカスタムアクセス許可が必要である可能性があります。

すでに setcap/libcap2 がインストールされている場合は、インストーラスクリプトにより許可設定が行われます。インストールをしていない場合、次の setcap コマンドを使用して権限をインストールしてください。

setcap CAP_SYS_PTRACE,CAP_DAC_READ_SEARCH=+eip /usr/bin/otelcol

Collector のインストール後にカスタムアクセス許可を設定するには、以下を使用します:

setcap {CUSTOM_CAPABILITIES}=+eip /usr/bin/otelcol

環境変数

Dockerバイナリファイル、または Tar ファイルを使用する場合は、環境変数を使用して Collector を構成できます。次の環境変数が必要です。

  • SPLUNK_REALM(デフォルトなし):データ送信先のレルムを決定します。次に例を示します。us0

  • SPLUNK_ACCESS_TOKEN (デフォルトなし):リクエストを認証するためのアクセストークン。

パッケージリポジトリを使用して Collector for Linux をインストールします。

Splunk Observability Cloud は、CentOS、Debian、Oracle、Red Hat 、Ubuntu などの Intel、AMD、ARM システムベースのすべてのオペレーティングシステムをサポートしています。インテグレーションの手動インストールは、コンテナ化された環境、またはその他の一般的なデプロイメントオプションを使用する場合に役立ちます。

各インストール方法には、独自の環境変数セットを含むデフォルトの設定が付属しており、その値はインストール方法や特定のニーズによって異なります。

注意: Collector をサービスとして実行するには systemctl が必要です。これは、systemd のシステムおよびサービスマネージャの状態を確認および制御するための主要なツールです。それ以外の場合は、Collector を実行する必要があります。

Debian を使用して Collector for Linux をインストールする

Debian パッケージを使用して Collector for Linux をインストールするには、パッケージリポジトリを設定し、Collector パッケージをインストールします:

curl -sSL https://splunk.jfrog.io/splunk/otel-collector-deb/splunk-B3CD4420.gpg > /etc/apt/trusted.gpg.d/splunk.gpg
echo 'deb https://splunk.jfrog.io/splunk/otel-collector-deb release main' > /etc/apt/sources.list.d/splunk-otel-collector.list
apt-get update
apt-get install -y splunk-otel-collector

# Optional: install Splunk OpenTelemetry automatic discovery for language runtimes
apt-get install -y splunk-otel-auto-instrumentation

こちらも参照してください:

RPM を使用して Collector for Linux をインストールする

RPM パッケージを使用して Collector for Linux をインストールするには、パッケージリポジトリを設定し、Collector パッケージをインストールします:

yum
yum install -y libcap  # Required for enabling cap_dac_read_search and cap_sys_ptrace capabilities on the Collector

cat <<EOH > /etc/yum.repos.d/splunk-otel-collector.repo
[splunk-otel-collector]
name=Splunk OpenTelemetry Collector Repository
baseurl=https://splunk.jfrog.io/splunk/otel-collector-rpm/release/$basearch
gpgcheck=1
gpgkey=https://splunk.jfrog.io/splunk/otel-collector-rpm/splunk-B3CD4420.pub
enabled=1
EOH

yum install -y splunk-otel-collector

# Optional: install Splunk OpenTelemetry zero-code instrumentation
yum install -y splunk-otel-auto-instrumentation
dnf
dnf install -y libcap  # Required for enabling cap_dac_read_search and cap_sys_ptrace capabilities on the Collector

cat <<EOH > /etc/yum.repos.d/splunk-otel-collector.repo
[splunk-otel-collector]
name=Splunk OpenTelemetry Collector Repository
baseurl=https://splunk.jfrog.io/splunk/otel-collector-rpm/release/\$basearch
gpgcheck=1
gpgkey=https://splunk.jfrog.io/splunk/otel-collector-rpm/splunk-B3CD4420.pub
enabled=1
EOH

dnf install -y splunk-otel-collector

# Optional: install Splunk OpenTelemetry zero-code instrumentation
dnf install -y splunk-otel-auto-instrumentation
zypper
zypper install -y libcap-progs  # Required for enabling cap_dac_read_search and cap_sys_ptrace capabilities on the Collector

cat <<EOH > /etc/zypp/repos.d/splunk-otel-collector.repo
[splunk-otel-collector]
name=Splunk OpenTelemetry Collector Repository
baseurl=https://splunk.jfrog.io/splunk/otel-collector-rpm/release/\$basearch
gpgcheck=1
gpgkey=https://splunk.jfrog.io/splunk/otel-collector-rpm/splunk-B3CD4420.pub
enabled=1
EOH

zypper install -y splunk-otel-collector

# Optional: install Splunk OpenTelemetry zero-code instrumentation
zypper install -y splunk-otel-auto-instrumentation

こちらも参照してください:

ダウンロードしたパッケージを使用して Collector for Linux をインストールします。

インストーラスクリプトや Debian/RPM リポジトリを使用せずに Collector をインストールしたい場合は、GitHub のリリースページから個々の Debian または RPM パッケージをダウンロードし、以下のようにインストールしてください。

次の点に注意してください:

  • root 権限が必要です。

  • Splunk OTel Collector リリース」から GitHub のリリースを検索します。

  • setcap 依存関係と Collector パッケージをインストールするには、<path to splunk-otel-collector deb/rpm> をダウンロードした Collector パッケージのローカルパスに置き換えます。

Debian
apt-get update && apt-get install -y libcap2-bin  # Required for enabling cap_dac_read_search and cap_sys_ptrace capabilities on the Collector
dpkg -i <path to splunk-otel-collector deb>
RPM と yum
yum install -y libcap  # Required for enabling cap_dac_read_search and cap_sys_ptrace capabilities on the Collector
rpm -ivh <path to splunk-otel-collector rpm>
RPM と dnf
dnf install -y libcap  # Required for enabling cap_dac_read_search and cap_sys_ptrace capabilities on the Collector
rpm -ivh <path to splunk-otel-collector rpm>
RPM と zypper
zypper install -y libcap-progs  # Required for enabling cap_dac_read_search and cap_sys_ptrace capabilities on the Collector
rpm -ivh <path to splunk-otel-collector rpm>

こちらも参照してください:

Debian/RPM のインストール後の設定

以下が該当します:

  • デフォルトの設定ファイルが存在していない場合は、/etc/otel/collector/agent_config.yaml にインストールされます。

  • /etc/otel/collector/splunk-otel-collector.conf 環境ファイルは、splunk-otel-collector systemd サービスを開始するために必要です。

    • インストールまたはアップグレード中にこのファイルが存在すると、サービスが自動的に開始します。

    • サンプル環境ファイルは /etc/otel/collector/splunk-otel-collector.conf.example にインストールされ、デフォルト設定に必要な環境変数が含まれています。このサンプルファイルを使用するには、変数を必要に応じて設定し、そのファイルを /etc/otel/collector/splunk-otel-collector.conf として保存します。

  • 設定ファイルや環境ファイルの変更を有効にするには、サービスを再起動する必要があります。サービスを開始または再起動するには、次のコマンドを実行します。

    sudo systemctl restart splunk-otel-collector
  • splunk-otel-collector サービスの状態を確認するには、以下を実行してください:

    sudo systemctl status splunk-otel-collector
  • splunk-otel-collector サービスのログとエラーを表示するには、systemd ジャーナルを実行します:

    sudo journalctl -u splunk-otel-collector

Debian と RPM パッケージによるゼロコードインストルメンテーション

インストーラスクリプトや Debian/RPM リポジトリを使用せずに Collector をインストールしたい場合は、GitHub のリリースページから個々の Debian または RPM パッケージをダウンロードし、以下のようにインストールしてください。

次の点に注意してください:

  • root 権限が必要です。

  • Splunk OTel Collector リリースで GitHub の対象システムに適した splunk-otel-auto-instrumentation Debian パッケージまたは RPM パッケージをダウンロードします。

  • <path to splunk-otel-auto-instrumentation deb/rpm> をダウンロードしたゼロコードインストルメンテーションパッケージのローカルパスに置き換えます。

以下のコマンドを実行して、ゼロコードインストルメンテーションパッケージをインストールします:

Debian
dpkg -i <path to splunk-otel-auto-instrumentation deb>
RPM
rpm -ivh <path to splunk-otel-auto-instrumentation rpm>

ゼロコードインストルメンテーションパッケージをアップグレードするには、以下を実行します:

Debian
sudo dpkg -i <path to splunk-otel-auto-instrumentation deb>
RPM
sudo rpm -Uvh <path to splunk-otel-auto-instrumentation rpm>

ゼロコードインストルメンテーションエージェント

splunk-otel-auto-instrumentation deb/rpm パッケージは、以下のゼロコードインストルメンテーションエージェントをインストールし、設定をサポートします:

  • Java

  • Node.js

  • .Net

詳しくは「Linux でのバックエンドアプリケーションのゼロコードインストルメンテーション」を参照してください。

Docker

Splunk Distribution of OpenTelemetry Collector の Linux docker イメージには、AMD64、ARM64、ppc64le アーキテクチャ用のイメージを指定する multiarch マニフェストが含まれています。Dockerはこのマニフェストを使用して、ターゲットプラットフォームの正しいイメージをダウンロードします。

以下のコマンドを実行して、Dockerを使ってパッケージをインストールします:

docker run --rm -e SPLUNK_ACCESS_TOKEN=12345 -e SPLUNK_REALM=us0 \
    -p 13133:13133 -p 14250:14250 -p 14268:14268 -p 4317:4317 -p 6060:6060 \
    -p 7276:7276 -p 8888:8888 -p 9080:9080 -p 9411:9411 -p 9943:9943 \
    --name otelcol quay.io/signalfx/splunk-otel-collector:latest
    # Use a semantic versioning (semver) tag instead of the ``latest`` tag.
    # Semantic versioning is a formal convention for determining the version
    # number of new software releases.

以下のリストは、docker run コマンド・オプションの詳細です:

  • --rm は、コンテナが終了すると自動的に削除されます。

  • -e は、実行中のコンテナ内で単純な(配列でない)環境変数を設定するか、実行しているイメージの Docker ファイルで定義されている変数を上書きします。

  • -p はコンテナのポートをホストに公開します。

以下のコマンドを実行して、コンテナ上で対話型の bash シェルを実行し、Collector のステータスを確認します:

docker exec -it containerID bash
注: Collector を --read-only モードで実行している際に、Smart Agent レシーバのレガシー collectd モニタータイプを使用する場合は、--read-only --tmpfs /usr/lib/splunk-otel-collector/agent-bundle/run:uid=999,gid=999(デフォルト)または Smart Agent 拡張機能の collectd::configDir パスで設定された書き込み可能な設定ディレクトリを指定する必要があります。

カスタムDockerコンフィギュレーションを作成する

デフォルト設定ファイルの代わりにカスタム設定ファイルを指定できます。環境変数 SPLUNK_CONFIG またはコマンドライン引数 --config を使用して、このファイルへのパスを指定します。

コマンドラインで、環境変数 SPLUNK_CONFIG_YAML を使用してカスタム構成ファイルを指定することもできます。これは基礎となるファイルシステムにアクセスしにくい環境で便利です。たとえば、AWS Fargate では、カスタム設定の YAML を AWS Systems Manager パラメータストアのパラメータに保存し、コンテナ定義で SPLUNK_CONFIG_YAML を指定してパラメータから設定を取得できます。

コマンドライン引数は、環境変数よりも優先されます。これは --config--mem-ballast-size-mib に適用されます。SPLUNK_CONFIGSPLUNK_CONFIG_YAML よりも優先されます。例:

docker run --rm -e SPLUNK_ACCESS_TOKEN=12345 -e SPLUNK_REALM=us0 \
    -e SPLUNK_CONFIG=/etc/collector.yaml -p 13133:13133 -p 14250:14250 \
    -p 14268:14268 -p 4317:4317 -p 6060:6060 -p 8888:8888 \
    -p 9080:9080 -p 9411:9411 -p 9943:9943 \
    -v "${PWD}/collector.yaml":/etc/collector.yaml:ro \
    # A volume mount might be required to load the custom configuration file.
    --name otelcol quay.io/signalfx/splunk-otel-collector:latest
    # Use a semantic versioning (semver) tag instead of the ``latest`` tag.
    # Semantic versioning is a formal convention for determining the version
    # number of new software releases.

以下の設定を使用して、CPU メトリクスを収集して記録します。cat コマンドは CONFIG_YAML パラメータを YAML に割り当てます。docker run コマンドはパラメータ CONFIG_YAML を展開し、環境変数 SPLUNK_CONFIG_YAMLに割り当てます。YAML では、空白のインデントを維持する必要があることに注意してください。

CONFIG_YAML=$(cat <<-END
receivers:
   hostmetrics:
      collection_interval: 1s
      scrapers:
         cpu:
exporters:
   debug:
      # Can be changed to info
      verbosity: detailed
service:
   pipelines:
      metrics:
         receivers: [hostmetrics]
         exporters: [logging]
END
)

docker run --rm \
    -e SPLUNK_CONFIG_YAML=${CONFIG_YAML} \
    --name otelcol quay.io/signalfx/splunk-otel-collector:latest
    # Use a semantic versioning (semver) tag instead of the ``latest`` tag.
    # Semantic versioning is a formal convention for determining the version
    # number of new software releases.

バイナリファイル

バイナリファイルを使用して Collector をインストールするには、以下の手順に従います:

  1. GitHub リリースから、お使いのアーキテクチャのバイナリをダウンロードしてください。

  2. 既存の設定ファイルまたはカスタム設定ファイルを使用していない場合は、Collector 用のデフォルト設定ファイルをダウンロードしてください。詳しくは「Collector for Linux のデフォルト設定」をご確認ください。

  3. コマンドラインからバイナリを実行します:

# see available command-line options
$ <download dir>/otelcol_<platform>_<arch> --help
Usage of otelcol:
   --config string          Locations to the config file(s), note that only a single location can be set per flag entry e.g. --config=/path/to/first --config=path/to/second. (default "[]")
   --feature-gates string   Comma-delimited list of feature gate identifiers. Prefix with '-' to disable the feature. '+' or no prefix will enable the feature. (default "[]")
   --no-convert-config      Do not translate old configurations to the new format automatically. By default, old configurations are translated to the new format for backward compatibility.
   --set string             Set arbitrary component config property. The component has to be defined in the config file and the flag has a higher precedence. Array config properties are overridden and maps are joined. Example --set=processors.batch.timeout=2s (default "[]")
   -v, --version                Version of the collector.

# start the collector with the SPLUNK_REALM and SPLUNK_ACCESS_TOKEN env vars required in our default config files
$ SPLUNK_REALM=<realm> SPLUNK_ACCESS_TOKEN=<token> <download dir>/otelcol_<platform>_<arch> --config=<path to config file>

# alternatively, use the SPLUNK_CONFIG env var instead of the --config command-line option
$ SPLUNK_CONFIG=<path to config file> SPLUNK_REALM=<realm> SPLUNK_ACCESS_TOKEN=<token> <download dir>/otelcol_<platform>_<arch>

# type Ctrl-c to stop the collector

Tar ファイル

ディストリビューションの tar.gz アーカイブも利用できます。これには、環境変数を含むデフォルトのエージェントとゲートウェイの設定ファイルが含まれています。

tarファイルを使う:

  1. それをターゲットシステム上の任意のディレクトリにアーカイブ解除します。

tar xzf splunk-otel-collector_<version>_<arch>.tar.gz
  1. amd64 システムで、アーカイブされていない agent-bundle ディレクトリに移動し、bin/patch-interpreter $(pwd)を実行します。お使いのホストのローダーには互換性がない可能性があるため、この操作によってバンドル内のバイナリに正しいローダーが設定されていることが確認できます。

デフォルト以外の場所での作業

デフォルト以外の場所から Collector を実行する場合、Smart Agent レシーバとエージェント設定ファイルでは、Smart Agent 拡張機能で現在使用されている 2 つの環境変数を設定する必要があります。

  • SPLUNK_BUNDLE_DIR:Smart Agent バンドルのパスです。たとえば、/usr/lib/splunk-otel-collector/agent-bundle のようになります。

  • SPLUNK_COLLECTD_DIR:Smart Agent の collectd 設定ディレクトリへのパスです。たとえば、/usr/lib/splunk-otel-collector/agent-bundle/run/collectd のようになります。

次のステップ