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.
- Stellen Sie Ihre Client- und Zertifizierungsstellenzertifikate im Abschnitt
credentials
über Kubernetes-Geheimnisse bereit - 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:") - 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.
- Stellen Sie Ihre Client- und Zertifizierungsstellenzertifikate im Abschnitt
credentials
über Kubernetes-Geheimnisse bereit - 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:"). - 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.