次の方法で共有


テレメトリ ルーターのデプロイにエクスポーターとパイプラインを追加する

Note

  • テレメトリ ルーターはパブリック プレビュー段階であり、テスト目的でのみデプロイする必要があります。
  • テレメトリ ルーターがパブリック プレビュー段階にある間、将来のプレビュー リリースには、CRD 仕様、CLI コマンド、テレメトリ ルーター メッセージの変更が含まれる可能性があることに留意してください。
  • 現在のプレビューでは、Arc テレメトリ ルーターが有効になっている状態でデプロイされたデータ コントローラーのインプレース アップグレードはサポートされていません。 将来のリリースでデータ コントローラーをインストールまたはアップグレードするには、データ コントローラーをアンインストールしてから再インストールする必要があります。

エクスポーターとパイプラインとは?

エクスポーターとパイプラインは、テレメトリ ルーターの主要な 2 つのコンポーネントです。 エクスポーターは、Kafka などの宛先システムにデータを送信する方法を記述します。 エクスポーターを作成するときは、その種類のテレメトリ データをその宛先にルーティングするために、エクスポーターをパイプラインに関連付けます。 パイプラインごとに複数のエクスポーターを使用できます。

この記事では、監視テレメトリ データを、サポートされている独自のエクスポーターにルーティングするように独自のエクスポーターとパイプラインを設定する方法の例を示します。

サポートされているエクスポーター

輸出者 サポートされているパイプラインの種類
Kafka ログ、メトリック
Elasticsearch logs

構成

すべての構成は、テレメトリ ルーターのカスタム リソース仕様を通じて指定され、エクスポーターとパイプラインの構成をサポートします。

輸出者

パブリック プレビューでは、エクスポーターは部分的に構成可能であり、次のプライマリ エクスポーターがサポートされます:

輸出者 サポートされているテレメトリの種類
Kafka ログ、メトリック
Elasticsearch logs

パブリック プレビュー期間中は現在、次のプロパティを構成できます。

一般的なエクスポーター設定

設定 説明
certificateName 監視ソリューションにエクスポートするためのクライアント証明書
caCertificateName クラスターの証明機関または顧客によって提供されたエクスポーター用の証明書

Kafka エクスポーターの設定

設定 説明
topic エクスポートするトピックの名前
brokers 接続先のブローカーのリスト
encoding テレメトリのエンコード: otlp_json または otlp_proto

Elasticsearch エクスポーターの設定

設定 説明
インデックス この設定には、イベント発行先のインデックスまたはデータストリームの名前を指定できます
endpoint エクスポートする Elasticsearch のエンドポイント

Pipelines

テレメトリ ルーターは、ログとメトリック パイプラインをサポートします。 これらのパイプラインは、Arc テレメトリ ルーターのカスタム リソース仕様で公開され、変更可能です。

テレメトリ ルーターから最後のパイプラインを削除することはできません。 最後のパイプラインを削除する yaml ファイルを適用すると、サービスは更新を拒否します。

パイプラインの設定

設定 説明
logs 新しいログ パイプラインのみを宣言できます
metrics 新しいメトリック パイプラインのみを宣言できます
exporters エクスポーターの一覧。 同じ型の倍数を指定できます

資格情報

資格情報の設定

設定 説明
certificateName 証明書の名前は、エクスポーター宣言で指定された証明書名に対応している必要があります
secretName Kubernetes で提供されるシークレットの名前
secretNamespace Kubernetes で提供されるシークレットを含む名前空間

TelemetryRouter 仕様の例

apiVersion: arcdata.microsoft.com/v1beta4
kind: TelemetryRouter
metadata:
  name: arc-telemetry-router
  namespace: <namespace>
spec:
  credentials:
    certificates:
    - certificateName: arcdata-elasticsearch-exporter
    - certificateName: cluster-ca-certificate
  exporters:
    elasticsearch:
    - caCertificateName: cluster-ca-certificate
      certificateName: arcdata-elasticsearch-exporter
      endpoint: https://logsdb-svc:9200
      index: logstash-otel
      name: arcdata
  pipelines:
    logs:
      exporters:
      - elasticsearch/arcdata

例 1: メトリック パイプラインに Kafka エクスポーターを追加する

メトリック データを Kafka の独自のインスタンスに送信できるメトリック パイプラインの Kafka エクスポーターの作成をテストできます。 メトリック パイプラインの名前の前に kafka/ を付ける必要があります。 テレメトリの種類ごとに、名前のないインスタンスを 1 つ持つことができます。 たとえば、"kafka" はメトリック パイプラインの有効な名前です。

  1. Kubernetes シークレットを使用して、credentials セクションでクライアントおよび CA 証明書を指定します
  2. 必要な設定 (名前、証明書、ブローカー、インデックス) を使用して、exporters セクションで新しいエクスポーターを宣言します。 該当する型 ("kakfa:") の下に新しいエクスポーターを必ず一覧表示してください
  3. pipelines セクションでエクスポーターをメトリック パイプラインとして一覧表示します。 エクスポーター名には、エクスポーターの種類のプレフィックスを付ける必要があります。 たとえば、kafka/myMetrics のように指定します。

この例では、Kafka のインスタンスにルーティングする 1 つのエクスポーター (kafka/myMetrics) を含む "metrics" というメトリック パイプラインを追加しました。

arc-telemetry-router.yaml

apiVersion: arcdata.microsoft.com/v1beta4
kind: TelemetryRouter
metadata:
  name: arc-telemetry-router
  namespace: <namespace>
spec:
  credentials:
    certificates:
    # Step 1. Provide your client and ca certificates through Kubernetes secrets
    # where the name of the secret and its namespace are specified.
    - certificateName: <kafka-client-certificate-name>
      secretName: <name_of_secret>
      secretNamespace: <namespace_with_secret>
    - certificateName: <ca-certificate-name>
      secretName: <name_of_secret>
      secretNamespace: <namespace_with_secret>
  exporters:
    kafka:
    # Step 2. Declare your Kafka exporter with the needed settings 
    # (name, certificates, endpoint, and index to export to)
    - name: myMetrics
      # Provide your client and CA certificate names
      # for the exporter as well as any additional settings needed
      caCertificateName: <ca-certificate-name>
      certificateName: <kafka-client-certificate-name>
      broker: <kafka_broker>
      # Index can be the name of an index or datastream name to publish events to
      index: <kafka_index>
  pipelines:
    metrics:
      exporters:
      # Step 3. Assign your kafka exporter to the list
      # of exporters for the metrics pipeline.
      - kafka/myMetrics
kubectl apply -f arc-telemetry-router.yaml -n <namespace>

Kafka のインスタンスにエクスポートするメトリック パイプラインを追加しました。 変更を yaml ファイルに適用すると、TelemetryRouter カスタム リソースが更新状態になり、コレクター サービスが再起動します。

例 2: ログ パイプラインに Elasticsearch エクスポーターを追加する

テレメトリ ルーターのデプロイでは、より多くのエクスポーターを構成することで、複数の宛先にエクスポートできます。 特定のテレメトリ ルーターのデプロイでは、複数の種類のエクスポーターがサポートされています。 この例では、Elasticsearch エクスポーターを 2 番目のエクスポーターとして追加する方法を示します。 ログ パイプラインに追加して、この 2 番目のエクスポーターをアクティブにします。

  1. Kubernetes シークレットを使用して、credentials セクションでクライアントおよび CA 証明書を指定します
  2. 必要な設定 (名前、証明書、エンドポイント、インデックス) を使用して、exporters セクションの下に新しいエクスポーターを宣言します。 該当する種類 ("Elasticsearch:") の下に新しいエクスポーターを必ず一覧表示してください。
  3. pipelines セクションでエクスポーターを ログ パイプラインとして一覧表示します。 エクスポーター名には、エクスポーターの種類のプレフィックスを付ける必要があります。 たとえば、elasticsearch/myLogs のように指定します。

この例は、Elasticsearch エクスポーター (elasticsearch/myLogs) のログ パイプラインを追加することで、前の例をベースにしています。 この例の最後には、各エクスポーターが異なるパイプラインに追加された 2 つのエクスポーターがあります。

arc-telemetry-router.yaml

apiVersion: arcdata.microsoft.com/v1beta4
kind: TelemetryRouter
metadata:
  name: arc-telemetry-router
  namespace: <namespace>
spec:
  credentials:
    certificates:
    # Step 1. Provide your client and ca certificates through Kubernetes secrets
    # where the name of the secret and its namespace are specified.
    - certificateName: <elasticsearch-client-certificate-name>
      secretName: <name_of_secret>
      secretNamespace: <namespace_with_secret>
    - certificateName: <kafka-client-certificate-name>
      secretName: <name_of_secret>
      secretNamespace: <namespace_with_secret>
    - certificateName: <ca-certificate-name>
      secretName: <name_of_secret>
      secretNamespace: <namespace_with_secret>
  exporters:
    Elasticsearch:
    # Step 2. Declare your Elasticsearch exporter with the needed settings 
    # (certificates, endpoint, and index to export to)
    - name: myLogs
      # Provide your client and CA certificate names
      # for the exporter as well as any additional settings needed
      caCertificateName: <ca-certificate-name>
      certificateName: <elasticsearch-client-certificate-name>
      endpoint: <elasticsearch_endpoint>
      # Index can be the name of an index or datastream name to publish events to
      index: <elasticsearch_index>
    kafka:
    - name: myMetrics
      caCertificateName: <ca-certificate-name>
      certificateName: <kafka-client-certificate-name>
      broker: <kafka_broker>
      index: <kafka_index>
  pipelines:
    logs:
      exporters:
        # Step 3. Add your Elasticsearch exporter to 
        # the exporters list of a logs pipeline.
      - elasticsearch/myLogs
    metrics:
      exporters:
      - kafka/myMetrics
kubectl apply -f arc-telemetry-router.yaml -n <namespace>

これで、Kafka および Elasticsearch エクスポーターがメトリックとログ パイプラインに追加されました。 yaml ファイルに変更を適用すると、TelemetryRouter カスタム リソースが更新状態になり、コレクター サービスが再起動します。