Condividi tramite


Aggiungere esportazioni e pipeline alla distribuzione del router di telemetria

Nota

  • Il router dei dati di telemetria è disponibile in anteprima pubblica e deve essere distribuito esclusivamente a scopo di test.
  • Anche se il router dei dati di telemetria è disponibile in anteprima pubblica, le future versioni di anteprima potrebbero includere modifiche alle specifiche CRD, ai comandi dell'interfaccia della riga di comando e/o ai messaggi del router dei dati di telemetria.
  • L'anteprima corrente non supporta gli aggiornamenti sul posto di un controller dei dati distribuito con il router dei dati di telemetria Arc abilitato. Per installare o aggiornare un controller dei dati in una versione futura, sarà necessario disinstallare il controller dei dati e reinstallarlo.

Cosa sono le utilità di esportazione e le pipeline?

Le utilità di esportazione e le pipeline sono due dei componenti principali del router di telemetria. Le utilità di esportazione descrivono come inviare dati a un sistema di destinazione, ad esempio Kafka. Quando si crea un’utilità di esportazione, la si associa a una pipeline per indirizzare tale tipo di dati di telemetria a tale destinazione. È possibile avere più utilità di esportazione per ogni pipeline.

Questo articolo fornisce esempi di come configurare le proprie utilità di esportazione e pipeline per instradare i dati di telemetria di monitoraggio al proprio utilità di esportazione supportata.

Utilità di esportazione supportate

Esportatore Tipi di pipeline supportati
Kafka log, metriche
Elasticsearch log

Configurazioni

Tutte le configurazioni vengono specificate tramite la specifica di risorsa personalizzata del router di telemetria e supportano la configurazione di utilità di esportazione e pipeline.

Esportatori

Per l'anteprima pubblica, le utilità di esportazione sono parzialmente configurabili e supportano le soluzioni seguenti:

Esportatore Tipi di telemetria supportati
Kafka log, metriche
Elasticsearch log

Durante l'anteprima pubblica sono attualmente configurabili le proprietà seguenti:

Impostazioni generali di esportazione

Impostazione Descrizione
certificateName Certificato client per esportare nella soluzione di monitoraggio
caCertificateName Autorità di certificazione del cluster o certificato fornito dal cliente per l'utilità di esportazione

Impostazioni utilità di esportazione Kafka

Impostazione Descrizione
argomento Nome dell'argomento da esportare
broker Elenco di broker a cui connettersi
codifica Codifica per i dati di telemetria: otlp_json o otlp_proto

Impostazioni dell'utilità di esportazione Elasticsearch

Impostazione Descrizione
index Questa impostazione può essere il nome di un indice o un nome del flusso di dati per pubblicare gli eventi
endpoint Endpoint di Elasticsearch in cui eseguire l'esportazione

Pipeline

Il router di telemetria supporta le pipeline di log e metriche. Queste pipeline vengono esposte nella specifica della risorsa personalizzata del router di telemetria Arc e disponibili per la modifica.

Non è possibile rimuovere l'ultima pipeline dal router di telemetria. Se si applica un file yaml che rimuove l'ultima pipeline, il servizio rifiuta l'aggiornamento.

Impostazioni della pipeline

Impostazione Descrizione
log Può dichiarare solo nuove pipeline di log
Metriche Può dichiarare solo nuove pipeline delle metriche
esportatori Elenco delle utilità di esportazione. Può essere multiplo dello stesso tipo

Credenziali

Impostazioni delle credenziali

Impostazione Descrizione
certificateName Il nome del certificato deve corrispondere al nome del certificato specificato nella dichiarazione di esportazione
secretName Nome del segreto fornito tramite Kubernetes
secretNamespace Spazio dei nomi con segreto fornito tramite Kubernetes

Esempio di specifica 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

Esempio 1: aggiunta di un utilità di esportazione Kafka per una pipeline delle metriche

È possibile testare la creazione di un’utilità di esportazione Kafka per una pipeline delle metriche in grado di inviare dati delle metriche alla propria istanza di Kafka. È necessario anteporre il nome della pipeline delle metriche con kafka/. È possibile avere un'istanza senza nome per ogni tipo di telemetria. Ad esempio, "kafka" è un nome valido per una pipeline delle metriche.

  1. Fornire i certificati client e CA nella sezione credentials tramite i segreti Kubernetes
  2. Dichiarare la nuova Utilità di esportazione nella sezione exporters con le impostazioni necessarie: nome, certificati, broker e indice. Assicurarsi di elencare la nuova utilità di esportazione nel tipo applicabile ("kakfa:")
  3. Elencare l'utilità di esportazione nella sezione pipelines della specifica come pipeline delle metriche. Il nome dell'utilità di esportazione deve essere preceduto dal tipo di esportazione. Ad esempio, kafka/myMetrics

In questo esempio è stata aggiunta una pipeline delle metriche denominata "metriche" con una singola utilità di esportazione (kafka/myMetrics) che instrada all'istanza di 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>

È stata aggiunta una pipeline delle metriche che esegue l’esportazione nell'istanza di Kafka. Dopo aver applicato le modifiche al file yaml, la risorsa personalizzata TelemetryRouter passerà a uno stato di aggiornamento e il servizio agente di raccolta verrà riavviato.

Esempio 2: aggiunta di un’utilità di esportazione Elasticsearch per una pipeline di log

La distribuzione del router di telemetria può esportare in più destinazioni configurando più utilità di esportazione. Sono supportati più tipi di utilità di esportazione in una determinata distribuzione del router di telemetria. In questo esempio viene illustrata l'aggiunta di un’utilità di esportazione Elasticsearch come seconda utilità di esportazione. Questa seconda utilità di esportazione viene attivata aggiungendolo a una pipeline di log.

  1. Fornire i certificati client e CA nella sezione credentials tramite i segreti Kubernetes
  2. Dichiarare la nuova Utilità di esportazione sotto la sezione exporters con le impostazioni necessarie: nome, certificati, endpoint e indice. Assicurarsi di elencare la nuova utilità di esportazione nel tipo applicabile ("Elasticsearch:").
  3. Elencare l'utilità di esportazione nella sezione pipelines della specifica come pipeline di log. Il nome dell'utilità di esportazione deve essere preceduto dal tipo di esportazione. Ad esempio, elasticsearch/myLogs

Questo esempio si basa sull'esempio precedente aggiungendo una pipeline di log per un’utilità di esportazione Elasticsearch (elasticsearch/myLogs). Alla fine dell'esempio sono presenti due utilità di esportazione con ogni utilità di esportazione aggiunta a una pipeline diversa.

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>

Sono ora disponibili le utilità di esportazione Kafka ed Elasticsearch, aggiunte alle metriche e alle pipeline di log. Dopo aver applicato le modifiche al file yaml, la risorsa personalizzata TelemetryRouter passerà a uno stato di aggiornamento e il servizio agente di raccolta verrà riavviato.