將匯出工具和管線新增至遙測路由器部署
注意
- 遙測路由器處於公開預覽狀態,且應該僅針對測試目的部署。
- 雖然遙測路由器處於公開預覽狀態,但請注意未來預覽版本可能包含 CRD 規格、CLI 命令和/或遙測路由器訊息的變更。
- 目前預覽版不支援就地升級以啟用的 Arc 遙測路由器部署的資料控制器。 若要在未來版本中安裝或升級資料控制器,您必須解除安裝資料控制器,然後重新安裝。
什麼是匯出工具和管線?
匯出工具和管線是遙測路由器的兩個主要元件。 匯出工具描述如何將資料傳送至目的地系統,例如 Kafka。 建立匯出工具時,您會將其與管線產生關聯,以便將該類型的遙測資料路由傳送至該目的地。 每個管線可以有多個匯出工具。
本文提供的範例說明如何設定自己的匯出工具和管線,以將監視遙測資料路由傳送至您自己的支援導出工具。
支援的匯出工具
Exporter | 支援的管線類型 |
---|---|
Kafka | 記錄、計量 |
Elasticsearch | 記錄 |
設定
所有設定都是透過遙測路由器的自訂資源規格來指定,並支援匯出工具和管線的設定。
出口商
針對公開預覽版,匯出工具是部分可設定的,並支援下列解決方案:
Exporter | 支援的遙測類型 |
---|---|
Kafka | 記錄、計量 |
Elasticsearch | 記錄 |
下列屬性目前可在公開預覽期間設定:
一般匯出工具設定
設定 | 描述 |
---|---|
certificateName | 要匯出至監視解決方案所需的用戶端憑證 |
caCertificateName | 叢集的憑證授權單位或客戶提供的匯出工具憑證 |
Kafka 匯出工具設定
設定 | 描述 |
---|---|
主題 | 要匯出主題的名稱 |
訊息代理程式 | 要連線目標的訊息代理程序清單 |
編碼 | 遙測的編碼方式:otlp_json 或 otlp_proto |
Elasticsearch 匯出工具設定
設定 | 描述 |
---|---|
index | 此設定可以是發行事件目標的索引名稱或資料流程名稱 |
endpoint | 要匯出目標的 Elasticsearch 端點 |
Pipelines
遙測路由器支援記錄和計量管線。 這些管線會公開在 Arc 遙測路由器的自訂資源規格中,並可供修改。
您無法從遙測路由器移除最後一個管線。 如果您套用移除最後一個管線的 yaml 檔案,則服務會拒絕更新。
管線設定
設定 | 描述 |
---|---|
記錄 | 只能宣告新的記錄管線 |
metrics | 只能宣告新的計量管線 |
匯出程式 | 匯出工具清單。 可以有多個相同類型 |
認證
認證設定
設定 | 描述 |
---|---|
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/
。 針對每個遙測類型可以有一個未命名的執行個體。 例如,"kafka" 是計量管線的有效名稱。
- 透過 Kubernetes 秘密在
credentials
區段中提供您的用戶端和 CA 憑證 - 在
exporters
區段中宣告新的匯出工具,其中包含所需的設定 - 名稱、憑證、訊息代理程式和索引。 請務必在適用類型下列出新的匯出工具 ("kakfa:") - 將規格
pipelines
區段中的匯出工具列為計量管線。 匯出工具名稱前面必須加上匯出工具的類型。 例如,kafka/myMetrics
在此範例中,我們已新增名為 "metrics" 的計量管線,其中包含路由至 Kafka 執行個體的單一匯出工具 (kafka/myMetrics
)。
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 匯出工具新增為第二個匯出工具。 我們會將其新增至記錄管線來啟用第二個匯出工具。
- 透過 Kubernetes 秘密在
credentials
區段中提供您的用戶端和 CA 憑證 - 在
exporters
區段下方宣告新的匯出工具,其中包含所需的設定 - 名稱、憑證、端點和索引。 請務必在適用類型下列出新的匯出工具 ("Elasticsearch:")。 - 將規格
pipelines
區段中的匯出工具列為記錄管線。 匯出工具名稱前面必須加上匯出工具的類型。 例如,elasticsearch/myLogs
此範例會藉由為 Elasticsearch 匯出工具 (elasticsearch/myLogs
) 新增記錄管線,以建置在上一個範例之上。 在範例結尾,我們有兩個匯出工具,每個匯出工具都會新增至不同的管線。
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 自訂資源將會進入更新狀態,收集器服務將會重新開機。