Dela via


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.

  1. Ange dina klient- och CA-certifikat i credentials avsnittet via Kubernetes-hemligheter
  2. 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:")
  3. 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.

  1. Ange dina klient- och CA-certifikat i credentials avsnittet via Kubernetes-hemligheter
  2. 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:").
  3. 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.