パート 2:Collectorの設定を編集して、ログをフィルタリングしSplunk Cloud Platformに送信する

このチュートリアルでは、これまでにローカルの Kubernetes クラスターに Splunk Distribution of OpenTelemetry Collector をインストールしました。チュートリアルの概要については、「チュートリアル:Kubernetes 上での Splunk Distribution of OpenTelemetry Collector の設定」を参照してください。

次は、さまざまなコンポーネントを追加したり、既存の設定を編集したりすることによって、デフォルトの設定を編集してCollectorの機能を変更または拡張します。

次の手順では、YAML ファイルと Helm を使用してコレクタの設定を編集します。チュートリアルのこのパートの終わりには、次のタスクを完了できます。

  1. FilelogレシーバーとOpenTelemetryプロトコル(OTLP)を使用してログ収集を有効化する。

  2. フィルタープロセッサーを使用してログをフィルタリングする。

  3. フィルタリングしたログをSplunk Cloud Platformにエクスポートする。

デフォルトのvalues.yamlファイルをダウンロードして調査する。

デフォルトでは、OpenTelemetry Collector の Splunk Distribution の Helm チャートは、事前定義された設定で Collector をデプロイします。可能なすべての設定は、values.yaml ファイルに記載されています。設定を変更するには、既存の設定を上書きするか、YAML ファイルまたはコマンドライン引数を使用して新しい設定を追加します。

デフォルトの values.yaml ファイルを GitHub からダウンロードし、後で参照できるディレクトリに保存します。お好みのコードエディタまたはテキストエディタを使用してファイルを開きます。

values.yaml ファイルに目を通し、その構造を確認してください。各セクションで、Splunk Observability Cloud や Splunk Cloud Platform といった異なるターゲットに対して Collector がどのように設定されているかに注目してください。ファイル内のコメントには、使用できる値とその効果に関する有用な説明が含まれています。

Splunk HECのエンドポイントおよびトークンを設定する

Splunk OpenTelemetry Collector for Kubernetes は、デフォルトでログを収集します。このログを Splunk Cloud Platform に送信するには、Splunk HTTP Event Collector(HEC)のエンドポイントとトークンを設定に追加する必要があります。「Splunk HEC トークンとエンドポイント」を参照してください。

  1. 新しい YAML ファイルを作成します。たとえば、hec.yaml というファイルにします。

  2. このhec.yamlファイルを、コードエディターまたはテキストエディターで開きます。

  3. このファイル内に、以下のスニペットを貼り付けます:

    splunkPlatform:
      endpoint: "<your_hec_endpoint>"
      token: "<your_hec_token>"

    ログは、main インデックスがデフォルトです。このチュートリアルで別のインデックスを使用している場合は、使用しているインデックスに一致するインデックスを設定してください。

    splunkPlatform:
      endpoint: "<your_hec_endpoint>"
      token: "<your_hec_token>"
      index: "<your_index>"
  4. ファイルを保存します。

この設定ファイルを使用して、Splunk Cloud Platformにログを送信する機能的なCollectorをデプロイすることができます。

フィルタープロセッサーの設定ファイルを作成する

前のステップで作成したhec.yamlファイルと同じディレクトリに、filter.yamlという新しいファイルを作成します。

このファイルをコードエディターまたはテキストエディターで開き、以下のスニペットを追加します:

agent:
  config:
    processors:
      filter/exclude_logs_from_pod:
        logs:
          exclude:
            match_type: regexp
            resource_attributes:
              - key: k8s.pod.name
                value: '^(podNameX)$'
      filter/exclude_logs_from_node:
        logs:
          exclude:
            match_type: regexp
            resource_attributes:
              - key: k8s.node.name
                value: '^(nodeNameX)$'
    service:
      pipelines:
        logs:
          processors:
            - memory_limiter
            - k8sattributes
            - filter/logs
            - batch
            - resourcedetection
            - resource
            - resource/logs
            - filter/exclude_logs_from_pod
            - filter/exclude_logs_from_node

前のスニペットは、エージェント設定にフィルタプロセッサ設定を追加し、デフォルトプロセッサと一緒にログパイプラインに追加するよう Helm に指示します。フィルタは、指定した正規表現に一致するポッドとノードからログを除外します。

filter.yaml設定ファイルを保存し、次のステップに進みます。

新しい設定を適用する

ご利用のKubernetesクラスター上で動作しているCollectorに設定を適用するには、YAMLファイルを含むディレクトリから以下のコマンドを実行します:

helm upgrade --reuse-values -f ./filter.yaml -f ./hec.yaml splunk-otel-collector-1709226095 splunk-otel-collector-chart/splunk-otel-collector --set="splunkPlatform.insecureSkipVerify=true"

Tabキーを使用して、ファイル名、リリース、およびこのチュートリアルのパート1でインストールしたチャートをオートコンプリートします。

コマンドの以下の部分に注目してください:

  • --reuse-values は、あなたが指定した設定のみをCollectorが更新することを保証します。

  • --set はコマンドラインを通して設定を定義します。YAML ファイルを渡す代わりにこの方法を使用することができます。

  • splunkPlatform.insecureSkipVerify=true は、SSLをオフにします。Splunk Cloud Platform の無料トライアルでは SSL をサポートしていないためです。

注意: 運用環境では、データのセキュリティが侵害される可能性があるため、insecureSkipVerifytrue に設定しないでください。Splunk Cloud Platform のトライアルバージョンはサポートされていないため、このチュートリアルでは SSL をオフにする必要があります。

設定のアップグレード後、Helmは次の例のようなメッセージを表示します:

Release "splunk-otel-collector-1709226095" has been upgraded. Happy Helming!
NAME: splunk-otel-collector-1709226095
LAST DEPLOYED: Thu Mar  7 19:23:30 2024
NAMESPACE: default
STATUS: deployed
NOTES:
Splunk OpenTelemetry Collector is installed and configured to send data to Splunk Platform endpoint "https://<your-splunk-cloud-trial-stack>.splunkcloud.com:8088/services/collector".

Splunk OpenTelemetry Collector is installed and configured to send data to Splunk Observability realm us0.

Splunk Cloud Platformでログが受信されていることを確認する

  1. Splunk Cloud Platformにログインし、Search & Reporting アプリに移動します。

  2. 検索バーに index="<your_index>" と入力すると、ローカルの Kubernetes クラスターから送られているログが表示されます。

Splunk Cloud Platformに送信されているKubernetesのログ

検索結果にイベントが表示される場合は、KubernetesクラスターからのログがSplunk Cloud Platformに届いています。

さらに詳しく

これでチュートリアルは終了です。ローカル Kubernetes クラスターを作成して設定し、ログを Splunk Cloud Platform に送信しました。うまくいきましたね! これで、Helm チャートのさまざまな設定を引き続き調べることができます。

Collectorのインストールとコンポーネントの詳細については、以下のリソースを参照してください: