HelmでCollector for Kubernetesを設定します:コンポーネントとデータソースを追加する

Splunk Distribution of OpenTelemetry Collector for Kubernetesのオプション設定。コンポーネントまたは新しいデータソースを追加します。

Collector for Kubernetes設定に追加のコンポーネントまたはデータソースを追加する方法については、続きをお読みください。実行時に新しいレシーバを作成する方法については、「Receiver creator receiver」を参照してください。

その他の設定オプションについては、こちらを参照してください:

Kubernetes 用に Collector を設定する方法の実践的な例については「チュートリアル:Kubernetes での OpenTelemetry Collector の Splunk 配布の設定」を参照してください。

設定にその他のコンポーネントを追加する

追加の OTel コンポーネント、統合、またはレガシーモニターを使用するには、values.yaml ファイルの関連する構成セクションに追加します。要件に応じて、values.yaml の agent.config または clusterReceiver.config セクションに含めることができます。詳しくは「Helm chart architecture and components」を参照してください。

使用可能なコンポーネントとその設定方法については「Collector コンポーネント」を参照してください。使用可能なアプリケーション統合のリストについては「Supported integrations in Splunk Observability Cloud」を参照してください。

データ収集方法: エージェントかクラスターレシーバーか?

次の表を読んで、データを収集するためにどのオプションを選ぶかを決めます:

Collector エージェント経由で収集する

Collector クラスターレシーバー経由で収集する

データはどこで収集されますか?

ノードレベルで。

Kubernetes のサービスレベルで、単一のポイントを通じて。

メリット

  • Granularity:このオプションを使用すると、クラスターのパフォーマンスと健全性を完全に把握できます。

  • Fault tolerance:ノードが孤立したり問題が発生したりしても、そのノードのメトリクスは独立して収集されます。これにより、個々のノードに影響を与える問題を可視化できます。

簡潔さ:このオプションは、セットアップと管理を簡素化します。

考慮事項

複雑さ:各ノードでエージェントを管理設定することは、特にエージェント設定ファイルの管理など、運用の複雑さを増す可能性があります。

Uncomplete data:このオプションを使用すると、クラスターの健全性やパフォーマンスの一部しか把握できない可能性があります。サービスがノードのサブセットからのみメトリクスを収集する場合、クラスターの一部からの重要なメトリクスが失われる可能性があります。

ユースケース

  • 各ノードの動作を詳細に把握する必要がある環境で、このオプションを使用してください。これにより、問題の診断やパフォーマンスの最適化がより効果的に行えます。

  • 複数のノードで実行可能な複数のレプリカを持つアプリケーションポッドからメトリクスを収集する場合に使用します。

運用のシンプルさが優先される環境や、クラスターがすでにシンプルでノードが 1つしかない場合に使用します。

例: MySQLレシーバーを追加する

この例では、MySQL レシーバを設定ファイルに追加する方法を示しています。

agent セクションに MySQL レシーバを追加する

agent セクション

CollectorエージェントのDaemonSetを使用して、エージェントがデプロイされているすべてのノードからmysqlメトリクスを収集するには、次の設定を追加します:

agent:
  config:
    receivers:
      mysql:
        endpoint: localhost:3306
        ...

clusterReceiver セクションに MySQL レシーバを追加する

clusterReceiver セクション clusterReceiver セクション

Collector クラスターレシーバのデプロイを使用して、単一のエンドポイントから mysql メトリクスを収集するには、これを設定に追加します:

clusterReceiver:
  config:
    receivers:
      mysql:
        endpoint: mysql-k8s-service:3306
        ...

例: Rabbit MQ モニターを追加する

この例では RabbitMQ インテグレーションを設定ファイルに追加する方法を示します。

agent セクションに RabbitMQ を追加する

agent セクション

CollectorエージェントのDaemonSetでRabbitMQモニターを有効にする場合は、設定ファイルのエージェントセクションのreceiversセクションにmysqlを追加します:

agent:
  config:
    receivers:
      smartagent/rabbitmq:
        type: collectd/rabbitmq
        host: localhost
        port: 5672
        username: otel
        password: ${env:RABBITMQ_PASSWORD}

次に、設定ファイルの service セクションの metrics パイプラインに、レシーバーを含めます:

service:
  pipelines:
    metrics:
      receivers:
        - smartagent/rabbitmq

clusterReceiver セクションに RabbitMQ を追加する

clusterReceiver セクション clusterReceiver セクション

同様に、クラスターレシーバーで RabbitMQ モニターを有効にしたい場合は、設定ファイルのクラスターレシーバーセクションのreceivers セクションに mysql を追加します:

clusterReceiver:
  config:
    receivers:
      smartagent/rabbitmq:
        type: collectd/rabbitmq
        host: rabbitmq-service
        port: 5672
        username: otel
        password: ${env:RABBITMQ_PASSWORD}

次に、設定ファイルの service セクションの metrics パイプラインに、レシーバーを含めます:

service:
  pipelines:
    metrics:
      receivers:
        - smartagent/rabbitmq

Collectorでディスカバリーモードを有効にします。

Splunk Distribution of OpenTelemetry Collector の検出モードを使用してメトリクスソースを検出し、その結果に基づいて設定を作成します。

Helm チャートでディスカバリモードを有効化する方法については、「Deploy the Collector with automatic discovery」を参照してください。

テレメトリ・ソースの追加

追加のテレメトリ・ソースを有効にするには、autodetect 設定オプションを使用します。

一般的な Prometheus スタイルのアノテーションを持つポッドから、Collector に Prometheus メトリクスをスクレイピングさせたい場合は、autodetect.prometheus=trueを設定します。ポッドに次のアノテーションを追加して、スクラッププロセスを細かく制御できるようにします。

  • prometheus.io/scrape: true:デフォルト設定ではすべてのポッドを取得します。このアノテーションが false に設定されている場合、ポッドはスクレイピングの対象から除外されます。

  • prometheus.io/path:メトリクスをスクレイピングするパスです。デフォルト値は /metrics です。

  • prometheus.io/port:メトリクスをスクレイピングするポートです。デフォルト値は 9090 です。

CollectorがIstio環境で実行されている場合は、autodetect.istio=true を Istioによって報告されるすべてのトレース、メトリクス、およびログが統一された方法で収集されるように設定します。

例えば、以下の設定を使用して、Prometheus と Istio の両方のテレメトリ・ソースの自動検出を有効にします:

splunkObservability:
  accessToken: xxxxxx
  realm: us0
clusterName: my-k8s-cluster
autodetect:
  istio: true
  prometheus: true

特定の種類のテレメトリを無効にする

デフォルトでは、OpenTelemetry はメトリクスとトレースのみを Splunk Observability Cloud に送信し、ログのみを Splunk Platform に送信します。特定の送信先に対して、任意の種類のテレメトリデータ収集を有効化または無効化できます。

たとえば次の設定では、Collector が収集したすべてのテレメトリデータを、適切に設定されていれば Splunk Observability Cloud および Splunk Platform に送信できるようになります。

splunkObservability:
  metricsEnabled: true
  tracesEnabled: true
  logsEnabled: true
splunkPlatform:
  metricsEnabled: true
  logsEnabled: true