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

Linux に Splunk Observability Cloud OpenTelemetry Collector Ansible ロールをインストールする方法を説明します。

Ansibleコレクションをインストールする

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

Ansibleコレクションをインストールする前に、以下を実行します:

Ansible Galaxy は、Ansible のコンテンツを共有するための Ansible の公式ハブです。プレイブックについて、詳しくは「Ansible Collection for the Splunk Distribution of OpenTelemetry Collector」を参照してください。

以下のコマンドを実行して、Ansible GalaxyからAnsibleコレクションをインストールします:

ansible-galaxy collection install signalfx.splunk_otel_collector

ロールを使用するには、プレイブックに signalfx.splunk_otel_collector.collector role 呼び出しを含めてください。ロールにはルートアクセスが必要となります。以下の例では、必要最小限の構成を持ってプレイブック内でこのロールを使用する方法を示します:

- name: Install the Splunk Distribution of OpenTelemetry Collector
  hosts: all
  become: yes
  tasks:
    - name: "Include splunk_otel_collector"
      include_role:
        name: "signalfx.splunk_otel_collector.collector"
      vars:
        splunk_access_token: YOUR_ACCESS_TOKEN
        splunk_realm: SPLUNK_REALM

次の表は、このロールに設定できる変数について説明したものです:

変数

説明

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 レルムを見つけるには、「Note about realms」を参照してください。

splunk_ingest_url

Splunk インジェスト URL です。https://ingest.us0.signalfx.com などを使用します。この変数は、サービスのこの値で設定されます。デフォルト値は https://ingest.{{ splunk_realm }}.signalfx.com です。

splunk_api_url

Splunk API の URL です。https://api.us0.signalfx.com などを使用します。この変数は、サービスのこの値で設定されます。デフォルト値は https://api.{{ splunk_realm }}.signalfx.com です。

splunk_trace_url

Splunk トレースエンドポイント URL です。https://ingest.us0.signalfx.com/v2/trace などを使用します。この変数は、サービスのこの値で設定されます。デフォルト値は {{ splunk_ingest_url }}/v2/trace です。

splunk_hec_url

Splunk HEC エンドポイント URL です。https://ingest.us0.signalfx.com/v1/log などを使用します。この変数は、サービスのこの値で設定されます。デフォルト値は {{ splunk_ingest_url }}/v1/log です。

splunk_otel_collector_version

インストールするパッケージのバージョンです。0.25.0 などを使用します。デフォルト値は latest です。

splunk_otel_collector_config

YAML で作成される設定ファイルです。この変数を /etc/otel/collector/gateway_config.yaml に設定することで、パッケージをデータ転送(ゲートウェイ)モードでインストールできます。デフォルトの場所は /etc/otel/collector/agent_config.yaml です。

splunk_config_override

デフォルトのコンフィギュレーションにマージされるカスタムコンフィギュレーション。

splunk_config_override_list_merge

splunk_config_override のリストとデフォルト設定のリストをマージするための list_merge オプション設定に使用される変数です。適用可能オプションは、replacekeepappendprependappend_rp、または prepend_rp です。デフォルト値は replace です。この変数に関して、詳しくは「Ansible Documentation site」をご確認ください。

splunk_otel_collector_config_source

これは、制御ホスト上の設定ファイルのソースパスで、リモートホスト上の splunk_otel_collector_config に設定されている値の代わりにアップロードされて配置されます。この変数は、./custom_collector_config.yaml などのカスタム設定の送信に使用できます。デフォルト値は ""です。これは、何もコピーされず、splunk_otel_collector_config で設定された構成ファイルが使用されることを表します。

splunk_bundle_dir

バンドルディレクトリへのパスです。デフォルトのパスは、パッケージによって提供されます。指定するパスがデフォルト値から変更されている場合、パスはノード上の既存のディレクトリにする必要があります。この変数は、サービスのこの値で設定されます。デフォルトの場所は /usr/lib/splunk-otel-collector/agent-bundle です。

splunk_collectd_dir

バンドル用の collectd 設定ディレクトリへのパスです。デフォルトのパスは、パッケージによって提供されます。指定するパスがデフォルト値から変更されている場合、パスはノード上の既存のディレクトリにする必要があります。この変数は、サービスのこの値で設定されます。デフォルトの場所は /usr/lib/splunk-otel-collector/agent-bundle です。

splunk_service_user および splunk_service_group

サービスのユーザーあるいはグループ所有権です。ユーザーまたはグループが存在しない場合は作成されます。デフォルト値は splunk-otel-collector です。

splunk_otel_collector_proxy_http および splunk_otel_collector_proxy_https

http_proxyhttps_proxy 環境変数にそれぞれ対応する、少なくとも 1 つの環境変数が空でない場合にサービスで使用されるプロキシアドレスです。値は、http://user:pass@10.0.0.42 などの完全な URL である必要があります。このプロキシは、デプロイ中に Ansible 自体では使用されない点に注意してください。デフォルト値は "" です。

splunk_memory_total_mib

割り当てられたメモリの量(MiB 単位)です。デフォルト値は 512、つまり 500 x 2^20 バイトのメモリです。

splunk_ballast_size_mib

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

バックエンドアプリケーションのゼロコードインストルメンテーションでオートディスカバリーを設定する(Linuxのみ)

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

次の表は、この Ansible ロールに設定できる変数を示しています:

変数

説明

デフォルト値

install_splunk_otel_auto_instrumentation

Java、Node.js、および .NET のバックエンドアプリケーション向けに、自動検出機能をインストールまたは管理します。 true に設定すると、splunk-otel-auto-instrumentation Debian / RPMパッケージが Collector リポジトリからダウンロードおよびインストールされます。自動検出または設定変更を有効にするには、インストール後にノードのアプリケーションを個別に起動または再起動する必要があります。

false

splunk_otel_auto_instrumentation_sdks

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

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

splunk_otel_auto_instrumentation_version

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

latest

splunk_otel_auto_instrumentation_systemd

デフォルトでは、ノードの /etc/ld.so.preload ファイルは、splunk-otel-auto-instrumentation パッケージが提供する /usr/lib/splunk-instrumentation/libsplunk.so 共有オブジェクトライブラリ用に構成され、サポートされているすべてのアプリケーションを対象とするシステム全体の自動検出をアクティブ化および構成します。あるいはこのオプションを true に設定することで、systemd サービスとして実行されているサポート対象のアプリケーションに対してのみ自動検出をアクティブ化し、設定することも可能です。このオプションが true に設定されている場合、/usr/lib/splunk-instrumentation/libsplunk.so は /etc/ld.so.preload に追加されません。代わりに、/usr/lib/systemd/system.conf.d/00-splunk-otel-auto-instrumentation.conf systemd ドロップインファイルが作成され、デフォルトオプションと指定したオプションに基づいて環境変数が設定されます。

false

splunk_otel_auto_instrumentation_ld_so_preload

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

なし

splunk_otel_auto_instrumentation_java_agent_jar

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

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

splunk_otel_auto_instrumentation_npm_path

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

npm

splunk_otel_auto_instrumentation_resource_attributes

OpenTelemetry インストルメンテーションリソースの属性を設定します。例: deployment.environment=prod。リソース属性は、ユーザー定義のカンマ区切りの key=value ペアです。 詳しくは JavaNode.js.NET を参照してください。

なし

splunk_otel_auto_instrumentation_service_name

インストルメンテーションされたアプリケーションのサービス名を明示的に設定します(my.service など)。デフォルトでは、サービス名はノード上の各実行可能ファイルの引数から自動的に導出されます。 詳しくは JavaNode.js.NET を参照してください。

なし

splunk_otel_auto_instrumentation_enable_profiler

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

false

splunk_otel_auto_instrumentation_enable_profiler_memory

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

false

splunk_otel_auto_instrumentation_enable_metrics

JVM メトリクスをアクティブまたは非アクティブにします。

false

splunk_otel_auto_instrumentation_otlp_endpoint

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

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

splunk_otel_auto_instrumentation_otlp_protocol_protocol

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

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

splunk_otel_auto_instrumentation_metrics_exporter

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

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

splunk_otel_auto_instrumentation_logs_exporter

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

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

次のステップ