Freigeben über


Hinzufügen von Exportern und Pipelines zur Bereitstellung Ihres Telemetrierouters

Hinweis

  • Der Telemetrierouter befindet sich in der öffentlichen Vorschau und soll nur zu Testzwecken bereitgestellt werden.
  • Beim Telemetrierouter in der öffentlichen Vorschau beachten Sie, dass zukünftige Vorschauversionen möglicherweise Änderungen an CRD-Spezifikationen, CLI-Befehlen und/oder Telemetrieroutermeldungen enthalten.
  • Die aktuelle Vorschau unterstützt keine direkten Upgrades eines Datencontrollers, der mit aktiviertem Arc-Telemetrierouter bereitgestellt wird. Um einen Datencontroller in einem zukünftigen Release zu installieren, müssen Sie den Datencontroller deinstallieren und dann erneut installieren.

Was sind Exporter und Pipelines?

Exporter und Pipelines sind zwei der Hauptkomponenten des Telemetrierouters. Die Exporter beschreiben, wie Daten an ein Zielsystem wie Kafka gesendet werden. Beim Erstellen eines Exporters ordnen Sie ihn einer Pipeline zu, um den jeweiligen Telemetriedatentyp an den entsprechenden Zielort weiterzuleiten. Sie können über mehrere Exporter für jede Pipeline verfügen.

Dieser Artikel enthält Beispiele, wie Sie eigene Exporter und Pipelines einrichten können, um Telemetriedaten an Ihren eigenen unterstützten Exporter weiterzuleiten.

Unterstützte Exporter

Exporteur Unterstützte Pipelinetypen
Kafka Protokolle, Metriken
Elasticsearch protokolle

Konfigurationen

Alle Konfigurationen werden über die Spezifikation der benutzerdefinierten Ressource des Telemetrierouters festgelegt und unterstützen die Konfiguration der Exporter und Pipelines.

Exporteure

In der öffentlichen Vorschauphase sind Exporter teilweise konfigurierbar. Sie unterstützen folgende Lösungen:

Exporteur Unterstützte Telemetrietypen
Kafka Protokolle, Metriken
Elasticsearch protokolle

Die folgenden Eigenschaften können derzeit während der öffentlichen Vorschauphase konfiguriert werden:

Allgemeine Exportereinstellungen

Einstellung Beschreibung
certificateName Das Clientzertifikat zum Exportieren in die Überwachungslösung
caCertificateName Von der Zertifizierungsstelle des Clusters oder vom Kunden bereitgestelltes Zertifikat für den Exporter

Kafka-Exportereinstellungen

Einstellung Beschreibung
topic Name des zu exportierenden Themas
brokers Liste der zu vernetzenden Broker
encoding Codierung für die Telemetrie: otlp_json oder otlp_proto

Einstellungen für den Elasticsearch-Exporter

Einstellung Beschreibung
Index Diese Einstellung kann der Name eines Index oder Datenstroms sein, in dem Ereignisse veröffentlicht werden sollen.
endpoint Endpunkt der Elasticsearch, nach der exportiert werden soll

Pipelines

Der Telemetrierouter unterstützt Protokolle und Metrikpipelines. Diese Pipelines werden in der benutzerdefinierten Ressourcenspezifikation des Arc-Telemetrierouters verfügbar gemacht und stehen zur Änderung zur Verfügung.

Die letzte Pipeline können Sie aus dem Telemetrierouter nicht entfernen. Wenn Sie eine YAML-Datei anwenden, die die letzte Pipeline entfernt, lehnt der Dienst das Update ab.

Pipelineeinstellungen

Einstellung Beschreibung
protokolle Kann nur neue Protokollpipelines deklarieren
metrics Kann nur neue Metrikpipelines deklarieren
exporters Liste der Exporter. Können mehrere desselben Typs sein

Anmeldeinformationen

Anmeldeinformationseinstellungen

Einstellung Beschreibung
certificateName Der Name des Zertifikats muss dem in der Exporterdeklaration angegebenen Zertifikatnamen entsprechen.
secretName Name des Geheimnisses, das über Kubernetes bereitgestellt wird
secretNamespace Namespace mit über Kubernetes bereitgestelltem Geheimnis

Beispiel einer TelemetryRouter-Spezifikation

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

Beispiel 1: Hinzufügen eines Kafka-Exporters für eine Metrikpipeline

Sie können das Erstellen eines Kafka-Exporters für eine Metrikpipeline testen, die Metrikdaten an Ihre eigene Kafka-Instanz senden kann. Den Namen Ihrer Metrikpipeline müssen Sie mit dem Präfix kafka/ versehen. Sie können für jeden Telemetrietyp eine unbenannte Instanz verwenden. Beispielsweise ist "kafka" ein gültiger Name für eine Metrikpipeline.

  1. Stellen Sie Ihre Client- und Zertifizierungsstellenzertifikate im Abschnitt credentialsüber Kubernetes-Geheimnisse bereit
  2. Deklarieren Sie den neuen Exporter im Abschnitt exporters mit den erforderlichen Einstellungen – Name, Zertifikate, Broker und Index. Achten Sie darauf, dass Sie den neuen Exporter unter dem entsprechenden Typ auflisten ("kakfa:")
  3. Listen Sie Ihren Exporter im pipelines Abschnitt der Spezifikation als Metrikpipeline auf. Der Name des Exporters erfordert den Exportertyp als Präfix. Beispiel: kafka/myMetrics

In diesem Beispiel haben wir eine Metrikpipeline namens "Metriken" mit einem einzelnen Exporter (kafka/myMetrics) hinzugefügt, der an Ihre Kafka-Instanz weitergeleitet wird.

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>

Sie haben eine Metrikpipeline hinzugefügt, die in Ihre Kafka-Instanz exportiert wird. Nachdem Sie die Änderungen auf die Yaml-Datei angewendet haben, wechselt die benutzerdefinierte TelemetryRouter-Ressource in einen Aktualisierungszustand, und der Sammeldienst wird neu gestartet.

Beispiel 2: Hinzufügen eines Elasticsearch-Exporters für eine Protokollpipeline

Konfigurieren weiterer Exporter ermöglicht Exportieren in mehrere Zielorte durch Ihre Telemetrierouterbereitstellung. Bei einer bestimmten Telemetrierouterbereitstellung werden mehrere Arten von Exportern unterstützt. In diesem Beispiel wird Hinzufügen eines Elasticsearch-Exporters als zweiter Exporter veranschaulicht. Wir aktivieren diesen zweiten Exporter durch Hinzufügen zu einer Protokollpipeline.

  1. Stellen Sie Ihre Client- und Zertifizierungsstellenzertifikate im Abschnitt credentialsüber Kubernetes-Geheimnisse bereit
  2. Deklarieren Sie den neuen Exporter unterhalb dem exporters Abschnitt mit den erforderlichen Einstellungen – Name, Zertifikate, Endpunkt und Index. Stellen Sie sicher, dass Sie den neuen Exporter unter dem entsprechenden Typ auflisten ("Elasticsearch:").
  3. Listen Sie Ihren Exporter im pipelines Abschnitt der Spezifikation als Protokollpipeline auf. Der Name des Exporters erfordert den Exportertyp als Präfix. Beispiel: elasticsearch/myLogs

Dieses Beispiel baut auf dem vorherigen auf. Eine Protokollpipeline wird für einen Elasticsearch-Exporter (elasticsearch/myLogs) hinzugefügt. Am Ende des Beispiels haben wir zwei Exporter, die zwei unterschiedlichen Pipelines hinzugefügt sind.

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>

Jetzt haben Sie Kafka- und Elasticsearch-Exporter, die Metriken und Protokollpipelinen hinzugefügt sind. Nachdem Sie die Änderungen auf die Yaml-Datei angewendet haben, wechselt die benutzerdefinierte TelemetryRouter-Ressource in einen Aktualisierungszustand, und der Sammeldienst wird neu gestartet.