パート 1:Collectorのインストールと、設定ファイルの場所

このチュートリアルのパート 1 では、Linux インストーラスクリプトを使用して Splunk Distribution of OpenTelemetry Collector をインストールすることから始めます。インストーラーはデフォルトの設定ファイルをデプロイしますが、これを任意のテキストエディタを使用して変更することができます。

チュートリアルの概要については、「チュートリアル:Linux ホスト上での Splunk Distribution of OpenTelemetry Collector の設定」を参照してください。

Collector for Linux のインストール

ターミナルセッションで、以下の環境変数を定義します:

export SPLUNK_REALM="<splunk_o11y_cloud_realm>"
export SPLUNK_ACCESS_TOKEN="<splunk_access_token>"
export SPLUNK_MEMORY_TOTAL_MIB="512"

SPLUNK_REALM 変数の値は Splunk Observability Cloud レルムで、たとえば us0 です。アカウントのレルム名を検索するには、次の手順に従います。

  1. Splunk Observability Cloud のナビゲーションメニューを開きます。

  2. Settings を選択します。

  3. ユーザー名の下にある View Profile を選択します。

  4. Organizations セクションでレルム名を探します。

アクセストークンを取得するには、「Splunk Observability Cloud を使用したユーザー API アクセストークンの取得と管理」を参照してください。

環境変数を設定したら、同じターミナルセッションで以下のコマンドを実行して、Linuxインストーラ・スクリプトをダウンロードおよび実行します:

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

以下のメッセージが表示されるまで待ちます:

The Splunk OpenTelemetry Collector for Linux has been successfully installed.
注: Splunk Observability Cloud で「Collector ガイド付きセットアップ」を使用して、事前入力済みのコマンドを生成できます。

データがSplunk Observability Cloudに入ってきていることを確認する

Splunk Observability Cloud を開き、Infrastructure に移動して、Linux マシンからのデータを確認します。次のスクリーンショットは、CPU 負荷、ディスク使用量、ホスト上で実行中のプロセスのリストなど、Splunk Observability Cloud に入ってくる典型的なホストメトリクスを示しています。

Splunk Infrastructure MonitoringでのCollectorのメトリクス

設定ファイルを見つける

Collector をインストールしたら、/etc/otel/collector に移動して設定ファイルを探します。ファイルを一覧表示すると次のような結果が確認できます。

.
|-- agent_config.yaml
|-- config.d
|-- gateway_config.yaml
|-- splunk-otel-collector.conf
|-- splunk-otel-collector.conf.example
`-- splunk-support-bundle.sh

agent_config.yaml ファイルと gateway_config.yaml ファイルには、ホストモニタリングモードまたはデータ転送モードで Collector を展開するための設定が含まれています。設定の構造とモードは、デプロイメントモードに関係なく同じです。このチュートリアルでは、Collector をエージェントとして設定するため、agent_config.yaml ファイルを使用します。

splunk-otel-collector.conf ファイルには、Splunk Observability Cloud アクセストークンや Splunk Observability Cloud レルムを含む systemd の環境変数が含まれています。Collector をサービスとして実行する場合は、必ずこのファイルに正しい値が含まれていることを確認してください。

サンプル設定ファイルを作成する

Collectorのすべての設定は、YAML形式で記述された以下のコンポーネントで構成されます:

  • レシーバー:1つまたは複数のソースからテレメトリを収集します。

  • プロセッサー:エクスポーターへの送信前にデータを修正または変換します。

  • エクスポーター:オブザーバビリティバックエンドや他の宛先にデータを送信します。

  • コネクター:2つのパイプラインを結合し、エクスポーターとレシーバーの両方の役割を果たします。

  • エクステンション:Collectorの機能を拡張するアクセサリ。

独自のユースケースにあわせてCollectorを構成する際、多くの場合は、前のすべてのコンポーネントを組み合わせたCollector設定ファイルを編集または作成する必要があります。

任意のコードまたはテキストエディタを使用して、新しい構成ファイルを作成します。該当ファイルを sample.yaml として保存し、以下のように、レシーバ、プロセッサ、エクスポータ、拡張機能を記述したセクションを追加します。

extensions:
  health_check:
    endpoint: "${SPLUNK_LISTEN_INTERFACE}:13133"

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: "${SPLUNK_LISTEN_INTERFACE}:4317"
      http:
        endpoint: "${SPLUNK_LISTEN_INTERFACE}:4318"

processors:
  batch:

exporters:
  otlp:
    endpoint: "${SPLUNK_GATEWAY_URL}:4317"
    tls:
      insecure: true

すべてのコンポーネントは、特別な service セクションを介してパイプラインで接続されます。次のフラグメントを sample.yaml ファイル末尾に追加してください。

service:
  pipelines:
    traces:
      receivers:
      - otlp
      processors:
      - batch
      exporters:
      - otlp
  # Extensions don't go inside pipelines
  extensions: [health_check]
注: 各設定は YAML の書式規則に従い、必ず 2 つ以上のスペースでインデントしてください。構成エラーは多くの場合、不正なインデントが原因となります。

前のCollector設定ファイルが有効かどうかを確認するには、そのファイルをsample.yamlとして保存し、validate コマンドと --config オプションを使用してCollectorに渡します。これは、使用する設定をCollectorに指示するものです:

otelcol validate --config=sample.yaml

設定が有効であることを示す、以下の応答のような出力が表示されます:

2024/02/19 16:28:44 settings.go:479: Set config to [sample.yaml]
2024/02/19 16:28:44 settings.go:532: Set ballast to 168 MiB
2024/02/19 16:28:44 settings.go:548: Set memory limit to 460 MiB
2024/02/19 16:28:44 settings.go:415: set "SPLUNK_LISTEN_INTERFACE" to "0.0.0.0"

次のステップ

これでチュートリアルの最初のパートは終了です。これでチュートリアルの最初のパートは完了です。Collector 設定の機能と、その保存場所を学習しました。

新しいコンポーネントを追加するための Collctor 設定ファイルの編集方法については、「パート2:Collector の設定を編集して新規コンポーネントを追加する」からご確認ください。

さらに詳しく

Collectorの設定の形式と構造の詳細については、以下のリソースを参照してください: