Puppetを使用してLinux用のCollectorをデプロイする

Linux に Splunk Observability Cloud OpenTelemetry Collector Puppet モジュールをインストールする方法を説明します。

このモジュールを活用し Linux に Collector をインストールして設定します。モジュールを Puppet Forge からダウンロードしてインストールします。モジュールをダウンロードした後、class パラメータを使用してカスタマイズを追加できます。

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

Linux システム上では、puppetlabs/stdlib module は必須です。

注: systemdはサービス管理のためにホストにインストールする必要があります。

Puppetモジュールを使用する

このモジュールを使用するには、サポートされているパラメータを使用して、splunk_otel_collector クラスをマニフェストに含めます(使用可能なパラメータについては、「クラスパラメータを変更する」を参照してください)。たとえば、次のデプロイ定義は、デフォルトのパラメータを使用した最も単純なデプロイ定義です(VERSION を希望の Collector バージョンに、SPLUNK_ACCESS_TOKEN をリクエストを認証する Splunk アクセストークンに、SPLUNK_REALM をデータ送信先のレルムに置き換えてください)。

class { splunk_otel_collector:
  collector_version => 'VERSION'
  splunk_access_token => 'SPLUNK_ACCESS_TOKEN',
  splunk_realm => 'SPLUNK_REALM',
}

クラスのパラメータを変更する

このクラスは、以下の表に示すパラメータを受け付けます:

Name

説明

デフォルト値

collector_version

インストールする Collector パッケージのバージョンです。0.25.0 などを使用します。バージョン番号は、先頭の v を除いた GitHub Releases と一致している必要があります。Linuxでは、このパラメータが指定されていない場合、最新の Collector バージョンがインストールされます。

なし

gomemlimit

Collector バージョン 0.97.0 以降で、splunk_ballast_size_mib に置き換わります。GO ランタイムでのメモリ使用量を制限できるようにし、ガベージコレクションの効率を向上させ、メモリ不足の状況を防ぐのに役立ちます。詳細については、「how to update memory ballast in your configuration」を参照してください。

splunk_total_mem_mib の90%

splunk_access_token

リクエストを認証するためのSplunkアクセストークン。属性は必須です。

なし

splunk_realm

データを送信するレルムを指定します(us0 など)。Splunk の取り込みと API のURL は、この値によって指定されます。SPLUNK_REALM 環境変数は、Collector サービス用にこの値で設定されます。属性は必須です。Splunk レルムを見つけるには、「Note about realms」を参照してください。

なし

splunk_ingest_url

$splunk_realm パラメータによって指定された URL の代わりに、Splunk の取り込み URL を明示的に設定します。SPLUNK_INGEST_URL 環境変数は、Collector サービス用にこの値で設定されます。

https://ingest.${splunk_realm}.signalfx.com

splunk_api_url

$splunk_realm パラメータによって推定される URL の代わりに、Splunk API の URL を明示的に設定します。SPLUNK_API_URL 環境変数は、Collector サービス用にこの値で設定されます。

https://api.${splunk_realm}.signalfx.com

splunk_trace_url

$splunk_ingest_url パラメータによって推定される URL の代わりに、Splunk トレースエンドポイントの URL を明示的に設定します。SPLUNK_TRACE_URL 環境変数は、Collector サービス用にこの値で設定されます。

${splunk_ingest_url}/v2/trace

splunk_hec_url

$splunk_ingest_url パラメータによって推定される URL の代わりに、Splunk HEC エンドポイントの URL を明示的に設定します。SPLUNK_HEC_URL 環境変数は、Collector サービス用にこの値で設定されます。

${splunk_ingest_url}/v1/log

splunk_hec_token

$splunk_access_token と異なる場合は、Splunk HEC 認証トークンを設定します。SPLUNK_HEC_TOKEN 環境変数は、Collector サービス用にこの値で設定されます。

$splunk_access_token

splunk_bundle_dir

Smart Agent バンドルディレクトリのパスです。デフォルトのパスは、Collector パッケージによって提供されます。指定するパスがデフォルト値から変更されている場合、パスはノード上の既存のディレクトリにする必要があります。Collector サービスでは、SPLUNK_BUNDLE_DIR 環境変数がこの値に設定されます。

/usr/lib/splunk-otel-collector/agent-bundle

splunk_collectd_dir

Smart Agent バンドル用の collectd 設定ディレクトリへのパスです。デフォルトのパスは、Collector パッケージによって提供されます。指定するパスがデフォルト値から変更されている場合、パスはノード上の既存のディレクトリにする必要があります。Collector サービスでは、SPLUNK_COLLECTD_DIR 環境変数がこの値に設定されます。

${splunk_bundle_dir}/run/collectd

splunk_memory_total_mib

Collector に割り当てる合計メモリ(MIB 単位)です。バラストサイズは自動的に計算されます。Collector サービスでは、SPLUNK_MEMORY_TOTAL_MIB 環境変数がこの値に設定されます。

512

splunk_ballast_size_mib

splunk_ballast_size_mib は Collector バージョン 0.97.0 以降では廃止されています。この変数を使用している場合は「設定の更新方法」を参照してください。

なし

collector_config_source

Collector 設定 YAML ファイルへのソースパス。このファイルは、ノードの $collector_config_dest パスにコピーされます。サポートされている値の種類については、ファイルリソースの「source 属性」を参照してください。デフォルトのソースファイルは、Collector パッケージによって提供されます。

/etc/otel/collector/agent_config.yaml

collector_config_dest

ノード上の Collector 構成ファイルの保存先パス。SPLUNK_CONFIG 環境変数は、Collector サービス用にこの値で設定されます。

/etc/otel/collector/agent_config.yaml

service_user and $service_group

Collector サービスのユーザーまたはグループの所有権を設定します。ユーザーまたはグループが存在しない場合は作成されます。

splunk-otel-collector

バックエンドアプリケーションの自動ディスカバリーの設定(Linuxのみ)

自動検出を使用して、Collector のインストールとともにバックエンドアプリケーションを自動的にインストルメンテーションできます。自動検出(以前のゼロ構成自動インストルメンテーション)により、OpenTelemetry SDK を個別にインストールして構成する必要がなくなります。詳細については、「アプリとサービスの自動検出」を参照してください。

次の表に、このPuppetモジュールで設定できる変数を示します:

Name

説明

デフォルト値

with_auto_instrumentation

バックエンドアプリケーションの自動検出をインストールまたは管理するかどうかを決定します。true に設定すると、splunk-otel-auto-instrumentation deb/rpm パッケージが Collector リポジトリからダウンロードおよびインストールされます。自動検出または設定変更を有効にするには、インストール後にノードのアプリケーションを再起動する必要があります。詳しくは「Linux でのバックエンドアプリケーションのゼロコードインストルメンテーション」を参照してください。

false

with_auto_instrumentation_sdks

インストールしてアクティブ化する自動検出 SDK です。注: dotnet は現在、x86_64/amd64 でのみサポートされています。

['java', 'nodejs', 'dotnet']

auto_instrumentation_version

インストールする splunk-otel-auto-instrumentation パッケージのバージョンです。0.50.0 などを使用します。サポートされる最小バージョンは Javaの場合は 0.48.0、Node.jsの場合は 0.87.0、.NETの場合は 0.99.0 です。

latest

auto_instrumentation_systemd

systemd サービスに対してのみ自動検出をアクティブ化し、設定するかどうかを決定します。true に設定すると、自動検出環境変数が /usr/lib/systemd/system.conf.d/00-splunk-otel-auto-instrumentation.conf に追加されます。

false

auto_instrumentation_ld_so_preload

デフォルトでは、ノード上の /etc/ld.so.preload ファイルは splunk-otel-auto-instrumentation パッケージが提供する /usr/lib/splunk-instrumentation/libsplunk.so 共有オブジェクトライブラリ用に設定されています。このファイルは自動検出パッケージをプリロードし、自動検出に必要です。この変数を設定して、/path/to/my.library.so などの追加ライブラリパスを含めることができます。

なし

auto_instrumentation_resource_attributes

OpenTelemetryインストルメンテーションリソースの属性を設定します。例: deployment.environment=prod。詳細については、「General settings」および「General settings」を参照してください。

なし

auto_instrumentation_service_name

インストルメンテーションされたすべてのアプリケーションのサービス名を明示的に設定します(my.service など)。デフォルトでは、サービス名はノード上で計測対象となる各実行可能ファイルの引数から自動的に導出されます。ただし、この変数が空でない値に設定されている場合、その値は派生したサービス名をすべて上書きします。

なし

auto_instrumentation_enable_profiler

AlwaysOn CPU プロファイリングを有効または無効にします。

false

auto_instrumentation_enable_profiler_memory

AlwaysOn Memory Profiling を有効または無効にします。

false

auto_instrumentation_enable_metrics

インストルメンテーションメトリクスのエクスポートを有効または無効にします。

false

auto_instrumentation_otlp_endpoint

あらゆる有効 SDK が収集したメトリクス、トレース、ログに OTLP エンドポイントを設定します。 auto_instrumentation_versionlatest または 0.87.0 以上の場合にのみ適用されます。

'' で、それぞれのアクティブにれたSDKについてデフォルトに延期します。

auto_instrumentation_otlp_endpoint_protocol

grpchttp/protobuf など、あらゆる有効 SDK が収集したメトリクス、トレース、ログに OTLP エンドポイントプロトコルを設定します。 auto_instrumentation_versionlatest または 0.104.0 以上の場合にのみ適用されます。

'' で、それぞれのアクティブにれたSDKについてデフォルトに延期します。

auto_instrumentation_metrics_exporter

すべてのアクティブ化された SDK によって収集されたメトリクスのエクスポータのカンマ区切りリスト( otlp,prometheusなど)。メトリクスの収集とエクスポートを停止するには、値を none に設定します。 auto_instrumentation_versionlatest または 0.104.0 以上の場合にのみ適用されます。

'' で、それぞれのアクティブにれたSDKについてデフォルトに延期します。

auto_instrumentation_logs_exporter

あらゆる有効 SDK が収集したログにエクスポータを設定します(otlp など)。ログの収集とエクスポートを停止するには、値を none に設定します。 auto_instrumentation_versionlatest または 0.108.0 以上の場合にのみ適用されます。

'' で、それぞれのアクティブにれたSDKについてデフォルトに延期します。

auto_instrumentation_java_agent_jar

Splunk OpenTelemetry Java エージェントへのパスです。デフォルトのパスは、splunk-otel-auto-instrumentation パッケージによって提供されます。パスがデフォルト値から変更されている場合は、ノードの既存のファイルに設定する必要があります。

/usr/lib/splunk-instrumentation/splunk-otel-javaagent.jar

auto_instrumentation_npm_path

Node.js SDK をインストールするために必要な、プリインストールされた npm コマンドへのパスです。たとえば、/my/custom/path/to/npm のようになります。

npm

次のステップ