Lägga till exportörer och pipelines i distributionen av telemetriroutern
Kommentar
- Telemetriroutern är i offentlig förhandsversion och bör endast distribueras i testsyfte.
- Även om telemetriroutern är i offentlig förhandsversion bör du se till att framtida förhandsversioner kan innehålla ändringar i CRD-specifikationer, CLI-kommandon och/eller telemetriroutermeddelanden.
- Den aktuella förhandsversionen stöder inte uppgraderingar på plats av en datakontrollant som distribueras med Arc-telemetriroutern aktiverad. För att kunna installera eller uppgradera en datakontrollant i en framtida version måste du avinstallera datastyrenheten och sedan installera om.
Vad är exportörer och pipelines?
Exportörer och pipelines är två av huvudkomponenterna i telemetriroutern. Exportörer beskriver hur du skickar data till ett målsystem, till exempel Kafka. När du skapar en exportör associerar du den med en pipeline för att dirigera den typen av telemetridata till målet. Du kan ha flera exportörer för varje pipeline.
Den här artikeln innehåller exempel på hur du kan konfigurera egna exportörer och pipelines för att dirigera övervakningstelemetridata till din egen exporterare som stöds.
Exporterare som stöds
Exportör | Pipelinetyper som stöds |
---|---|
Kafka | loggar, mått |
Elasticsearch | loggar |
-konfigurationer
Alla konfigurationer anges via telemetrirouterns anpassade resursspecifikation och stöder konfigurationen av exportörer och pipelines.
Exportörer
För den offentliga förhandsversionen kan exportörer delvis konfigureras och har stöd för följande lösningar:
Exportör | Telemetrityper som stöds |
---|---|
Kafka | loggar, mått |
Elasticsearch | loggar |
Följande egenskaper kan för närvarande konfigureras under den offentliga förhandsversionen:
Allmänna exportörsinställningar
Inställning | beskrivning |
---|---|
certificateName | Klientcertifikatet för att exportera till övervakningslösningen |
caCertificateName | Klustrets certifikatutfärdare eller kundcertifikat för exportören |
Inställningar för Kafka-exportör
Inställning | beskrivning |
---|---|
Avsnitt | Namnet på det ämne som ska exporteras |
Mäklare | Lista över asynkrona koordinatorer att ansluta till |
kodning | Kodning för telemetrin: otlp_json eller otlp_proto |
Elasticsearch Exporter-inställningar
Inställning | beskrivning |
---|---|
index | Den här inställningen kan vara namnet på ett index eller ett dataströmsnamn för att publicera händelser |
slutpunkt | Slutpunkten för Elasticsearch som ska exporteras till |
Pipelines
Telemetriroutern stöder loggar och måttpipelines. Dessa pipelines exponeras i den anpassade resursspecifikationen för Arc-telemetriroutern och är tillgängliga för ändring.
Du kan inte ta bort den sista pipelinen från telemetriroutern. Om du använder en yaml-fil som tar bort den senaste pipelinen avvisar tjänsten uppdateringen.
Pipelineinställningar
Inställning | beskrivning |
---|---|
loggar | Kan bara deklarera nya loggpipelines |
metrics | Kan bara deklarera nya måttpipelines |
Exportörer | Lista över exportörer. Kan vara flera av samma typ |
Merit
Inställningar för autentiseringsuppgifter
Inställning | beskrivning |
---|---|
certificateName | Certifikatets namn måste motsvara certifikatnamnet som anges i exporteringsdeklarationen |
secretName | Namnet på hemligheten som tillhandahålls via Kubernetes |
secretNamespace | Namnområde med hemlighet som tillhandahålls via Kubernetes |
Exempel på TelemetryRouter-specifikation
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
Exempel 1: Lägga till en Kafka-exportör för en måttpipeline
Du kan testa att skapa en Kafka-exportör för en måttpipeline som kan skicka måttdata till din egen instans av Kafka. Du måste prefixa namnet på din måttpipeline med kafka/
. Du kan ha en namnlös instans för varje telemetrityp. Till exempel är "kafka" ett giltigt namn för en måttpipeline.
- Ange dina klient- och CA-certifikat i
credentials
avsnittet via Kubernetes-hemligheter - Deklarera den nya exportören i
exporters
avsnittet med nödvändiga inställningar – namn, certifikat, asynkron meddelandekö och index. Se till att lista den nya exportören under tillämplig typ ("kakfa:") - Lista din exportör i avsnittet i
pipelines
specifikationen som en måttpipeline. Exportörens namn måste vara prefix med typen av exportör. Till exempel:kafka/myMetrics
I det här exemplet har vi lagt till en måttpipeline med namnet "metrics" med en enskild exportör (kafka/myMetrics
) som dirigerar till din instans av Kafka.
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>
Du har lagt till en måttpipeline som exporterar till din instans av Kafka. När du har tillämpat ändringarna på yaml-filen går den anpassade TelemetryRouter-resursen i uppdateringstillstånd och insamlingstjänsten startas om.
Exempel 2: Lägga till en Elasticsearch-exportör för en loggpipeline
Distributionen av telemetriroutern kan exporteras till flera mål genom att konfigurera fler exportörer. Flera typer av exportörer stöds i en viss distribution av telemetriroutrar. Det här exemplet visar hur du lägger till en Elasticsearch-exportör som en andra exportör. Vi aktiverar den här andra exportören genom att lägga till den i en loggpipeline.
- Ange dina klient- och CA-certifikat i
credentials
avsnittet via Kubernetes-hemligheter - Deklarera den nya exportören under
exporters
avsnittet med nödvändiga inställningar – namn, certifikat, slutpunkt och index. Se till att lista den nya exportören under tillämplig typ ("Elasticsearch:"). - Lista exportören i
pipelines
avsnittet i specifikationen som en loggpipeline. Exportörens namn måste vara prefix med typen av exportör. Till exempel:elasticsearch/myLogs
Det här exemplet bygger på föregående exempel genom att lägga till en loggpipeline för en Elasticsearch-exportör (elasticsearch/myLogs
). I slutet av exemplet har vi två exportörer där varje exportör har lagts till i en annan pipeline.
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>
Nu har du Kafka- och Elasticsearch-exportörer som lagts till i pipelines för mått och loggar. När du har tillämpat ändringarna på yaml-filen kommer den anpassade TelemetryRouter-resursen att få ett uppdateringstillstånd och insamlingstjänsten startas om.