共用方式為


將匯出工具和管線新增至遙測路由器部署

注意

  • 遙測路由器處於公開預覽狀態,且應該僅針對測試目的部署。
  • 雖然遙測路由器處於公開預覽狀態,但請注意未來預覽版本可能包含 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" 是計量管線的有效名稱。

  1. 透過 Kubernetes 秘密在 credentials 區段中提供您的用戶端和 CA 憑證
  2. exporters 區段中宣告新的匯出工具,其中包含所需的設定 - 名稱、憑證、訊息代理程式和索引。 請務必在適用類型下列出新的匯出工具 ("kakfa:")
  3. 將規格 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 匯出工具新增為第二個匯出工具。 我們會將其新增至記錄管線來啟用第二個匯出工具。

  1. 透過 Kubernetes 秘密在 credentials 區段中提供您的用戶端和 CA 憑證
  2. exporters 區段下方宣告新的匯出工具,其中包含所需的設定 - 名稱、憑證、端點和索引。 請務必在適用類型下列出新的匯出工具 ("Elasticsearch:")。
  3. 將規格 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 自訂資源將會進入更新狀態,收集器服務將會重新開機。