パート2:Collectorの設定を編集して新しいコンポーネントを追加する

新しいコンポーネント、機能、または設定を追加する必要がある場合は、Collector の構成ファイルを編集します。たとえば、Splunk Distribution of OpenTelemetry Collector には、メトリクスを収集し、Collector が Splunk Observability Cloud にデータをエクスポートする準備を整えるための Collector コンポーネントが設定されています。

前のステップでは、Collector をインストールし、Collector の構成ファイルについて学習しました。次の手順では、デフォルトの Collector 設定にいくつかのコンポーネントを追加し、変更を適用するために Collector サービスを再起動します。次のコンポーネントを追加します。

  • TCPでログを収集するためのSyslogレシーバー

  • レシーバを使用して収集したデータをフィルタリングするためのフィルタプロセッサ。

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

デフォルトの設定ファイルを見つける

任意のコードまたはテキストエディタを使用して、/etc/otel/collector 内の agent_config.yaml ファイルを開きます。パート 1 で Collector をホストモニタリングモードでデプロイしたように、編集する必要があるのはこの設定ファイルです。

少し時間を取って設定ファイルを読み込んでください。Splunk ディストリビューションに含まれるエージェント設定には、ホストメトリクスレシーバや HEC エクスポータなど、すでにいくつかの重要なコンポーネントが含まれていることが確認できます。

syslogレシーバーを追加する

続いて Syslog レシーバを追加します。設定ファイルを開き、receivers セクションに syslog: を追加します。

receivers:
  syslog:

コンポーネントはデフォルト値を使うことが多いので、前の例のように空のエントリを追加するだけで十分な場合もあります。Syslog レシーバの場合は、アドレスとプロトコルを定義する必要がある場合があります。

receivers:
  syslog:
    tcp:
      listen_address: "0.0.0.0:54526"
    protocol: rfc5424

Syslog レシーバを追加したら、service.pipelines の下のレシーバリストに追加してください。この場合 Syslog レシーバがログを収集するため、パイプラインのタイプは logs となります。

service:
  pipelines:
  #
  # Other pipelines
  #
    logs:
      # Add syslog at the end of the list
      receivers: [fluentforward, otlp, syslog]
      processors:
      - memory_limiter
      - batch
      - resourcedetection
      exporters: [splunk_hec, splunk_hec/profiling]

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

フィルタープロセッサーを追加する

これで、Collector が Syslog ログを受信するように設定できました。次にフィルタプロセッサを追加し、重大度レベル 5(情報)の Syslog メッセージをすべて除外して、より重大度の高いログだけをエクスポートするようにします。

例として、以下のようにログをフィルタリングしたいとします:

*Apr 29 03:02:42: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to down

agent_config.yaml ファイルで processors セクションを見つけて、フィルタプロセッサを追加します。次のスニペットは、重大度 5 以下のすべてのメッセージを除外するようにログをフィルタリングします。

processors:
  filter/severity_text:
    logs:
      exclude:
        match_type: regexp
          severity_texts:
          - -[5-7]-

フィルタプロセッサは、正規表現と OpenTelemetry Transformation Language(OTTL)を使用した複数のフィルタ操作をサポートします。プロセッサを初めて設定する際は、まずそのドキュメントをよく読んで理解してください。詳しくは GitHub の「OpenTelemetry Transformation Language (OTTL) 」を参照してください。

最後に、処理を必要とする同じログパイプラインにこのフィルタープロセッサーを追加します:

service:
  pipelines:
  #
  # Other pipelines
  #
    logs:
      # Add syslog at the end of the list
      receivers: [fluentforward, otlp, syslog]
      processors:
      - memory_limiter
      - batch
      - resourcedetection
      - filter/severity_text
      exporters: [splunk_hec, splunk_hec/profiling]

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

Collector の再起動

ご利用のLinuxマシンで動作しているCollectorに設定を適用するには、Collectorサービスを再起動します:

sudo systemctl restart splunk-otel-collector

サービスを再起動することで、Collectorが新しい設定を読み取り、それに従って動作するようになります。

次のステップ

これで、チュートリアルのパート2は終了です。Collector の設定を編集して新しいコンポーネントを追加し、ホスト上の Collector に適用しました。

しかし、問題が生じる可能性があります。Collector 設定に関する一般的な問題の解決法については、「パート3:Collector の設定に関する一般的な問題のトラブルシューティング」をご確認ください。

さらに詳しく

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