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.
- Fornire i certificati client e CA nella sezione
credentials
tramite i segreti Kubernetes - 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:") - 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.
- Fornire i certificati client e CA nella sezione
credentials
tramite i segreti Kubernetes - 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:"). - 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.