Saltを使用してCollector for Linuxをデプロイする

Salt式を使用してSplunk Observability Cloud OpenTelemetry Collector for Linuxをデプロイします。

Formula を使用して Collector をインストールおよび設定し、Linux マシンからメトリクス、トレース、ログを収集し、Splunk Observability Cloud にデータを送信することができます。Salt モジュールをダウンロードするには、GitHub リポジトリを参照してください。

Formula は、あらかじめ作成された Salt State です。Salt State そのものと同様に自由で、パッケージのインストール、サービスの設定と開始、ユーザーやアクセス許可の設定、その他多くの一般的なタスクに使用できます。

前提条件

Salt を使うには以下のリソースが必要です:

サポートされている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

はじめに

Salt では、ユーザー定義データを minion に提供するために、「ピラー」と呼ばれる Key-Value 型のデータストアを使用します。Salt は minion を、マネージャからのコマンドをリッスンして要求されたタスクを実行できる Salt minion daemon を稼働させているサーバーとして定義します。一般に、minion は Salt を使用して制御されるサーバーです。

splunk-otel-collector ピラーですべての属性を設定することができます。例:

splunk-otel-collector:
splunk_access_token: "MY_ACCESS_TOKEN"
splunk_realm: "SPLUNK_REALM"
splunk_repo_base_url: https://splunk.jfrog.io/splunk
splunk_otel_collector_config: '/etc/otel/collector/agent_config.yaml'
splunk_service_user: splunk-otel-collector
splunk_service_group: splunk-otel-collector

Linux 対応の属性

Linuxの場合、数式は以下の表に示す属性を受け付けます:

Name

説明

デフォルト値

collector_version

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

なし

gomemlimit

Collector バージョン 0.97.0 以降で、splunk_ballast_size_mib に置き換わります。詳細については、「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 以降では廃止されています。この変数を使用している場合は「設定の更新方法」を参照してください。

splunk_memory_total_mib 合計の1/3

splunk_otel_collector_config_source

制御ホスト上の Collector 設定 YAML ファイルのソースパスで、リモートホスト上の splunk_otel_collector_config に設定されている値の代わりにアップロードして配置されます。カスタム Collector 構成を使用するには、構成ファイルを Salt ディレクトリに追加します。たとえば、salt://templates/agent_config.yaml です。

""、つまり、何もコピーされず、既存の splunk_otel_collector_config が使用されます

service_user および $service_group

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

splunk-otel-collector

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

Collector のインストールと同時に、バックエンドアプリケーションを自動でインストルメンテーションできます。自動検出機能により、OpenTelemetry SDK を個別にインストールおよび設定する必要がなくなります。詳細は「バックエンドアプリケーションの自動ディスカバリーを設定する」を参照してください。

次の表に、このSaltモジュールで設定可能な変数を示します:

Name

説明

デフォルト値

install_auto_instrumentation

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

false

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_java_agent_path

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

auto_instrumentation_resource_attributes

OpenTelemetryインストルメンテーションリソースの属性を設定します。例: deployment.environment=prod

''

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についてデフォルトに延期します。

次のステップ