テレメトリ ルーターのデプロイにエクスポーターとパイプラインを追加する
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" はメトリック パイプラインの有効な名前です。
- Kubernetes シークレットを使用して、
credentials
セクションでクライアントおよび CA 証明書を指定します - 必要な設定 (名前、証明書、ブローカー、インデックス) を使用して、
exporters
セクションで新しいエクスポーターを宣言します。 該当する型 ("kakfa:") の下に新しいエクスポーターを必ず一覧表示してください 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 番目のエクスポーターをアクティブにします。
- Kubernetes シークレットを使用して、
credentials
セクションでクライアントおよび CA 証明書を指定します - 必要な設定 (名前、証明書、エンドポイント、インデックス) を使用して、
exporters
セクションの下に新しいエクスポーターを宣言します。 該当する種類 ("Elasticsearch:") の下に新しいエクスポーターを必ず一覧表示してください。 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 カスタム リソースが更新状態になり、コレクター サービスが再起動します。