Adicionar exportadores e pipelines à implantação do roteador de telemetria
Nota
- O roteador de telemetria está em visualização pública e deve ser implantado apenas para fins de teste.
- Enquanto o roteador de telemetria estiver em Visualização Pública, esteja ciente de que versões futuras de visualização podem incluir alterações nas especificações CRD, comandos da CLI e/ou mensagens do roteador de telemetria.
- A visualização atual não suporta atualizações in-loco de um controlador de dados implantado com o roteador de telemetria Arc habilitado. Para instalar ou atualizar um controlador de dados em uma versão futura, você precisará desinstalar o controlador de dados e, em seguida, reinstalar.
O que são Exportadores e Oleodutos?
Exportadores e Pipelines são dois dos principais componentes do roteador de telemetria. Os exportadores descrevem como enviar dados para um sistema de destino como o Kafka. Ao criar um exportador, associe-o a um pipeline para rotear esse tipo de dados de telemetria para esse destino. Você pode ter vários exportadores para cada pipeline.
Este artigo fornece exemplos de como você pode configurar seus próprios exportadores e pipelines para rotear dados de telemetria de monitoramento para seu próprio exportador compatível.
Exportadores suportados
Exportador | Tipos de pipeline suportados |
---|---|
Kafka | logs, métricas |
Elasticsearch | registos |
Configurações
Todas as configurações são especificadas através da especificação de recursos personalizada do roteador de telemetria e suportam a configuração de exportadores e pipelines.
Exportadores
Para a Pré-visualização Pública, os exportadores são parcialmente configuráveis e suportam as seguintes soluções:
Exportador | Tipos de telemetria suportados |
---|---|
Kafka | logs, métricas |
Elasticsearch | registos |
As seguintes propriedades são atualmente configuráveis durante a Pré-visualização Pública:
Configurações gerais do exportador
Definição | Descrição |
---|---|
Nome do certificado | O certificado do cliente para exportar para a solução de monitoramento |
caCertificateName | A Autoridade de Certificação do cluster ou o certificado fornecido pelo cliente para o Exportador |
Configurações do exportador de Kafka
Definição | Descrição |
---|---|
topic | Nome do tópico a ser exportado |
corretores | Lista de corretores aos quais se conectar |
codificação | Codificação para a telemetria: otlp_json ou otlp_proto |
Configurações do Exportador do Elasticsearch
Definição | Descrição |
---|---|
index | Essa configuração pode ser o nome de um índice ou nome de fluxo de dados para publicar eventos |
endpoint | Ponto de extremidade do Elasticsearch para o qual exportar |
Pipelines
O Roteador de Telemetria suporta logs e pipelines de métricas. Esses pipelines são expostos na especificação de recursos personalizados do roteador de telemetria Arc e estão disponíveis para modificação.
Não é possível remover o último pipeline do roteador de telemetria. Se você aplicar um arquivo yaml que remove o último pipeline, o serviço rejeitará a atualização.
Configurações do pipeline
Definição | Descrição |
---|---|
registos | Só pode declarar novos pipelines de logs |
metrics | Só pode declarar novos pipelines de métricas |
Exportadores | Lista de exportadores. Pode ser múltiplo do mesmo tipo |
Credenciais
Configurações de credenciais
Definição | Descrição |
---|---|
Nome do certificado | O nome do certificado deve corresponder ao nome do certificado especificado na declaração do exportador |
secretName | Nome do segredo fornecido através do Kubernetes |
secretNamespace | Namespace com segredo fornecido através do Kubernetes |
Exemplo de especificação 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
Exemplo 1: Adicionando um exportador de Kafka para um pipeline de métricas
Você pode testar a criação de um exportador de Kafka para um pipeline de métricas que pode enviar dados de métricas para sua própria instância de Kafka. Você precisa prefixar o nome do seu pipeline de métricas com kafka/
. Você pode ter uma instância sem nome para cada tipo de telemetria. Por exemplo, "kafka" é um nome válido para um pipeline de métricas.
- Forneça seus certificados de cliente e CA na seção através dos segredos do
credentials
Kubernetes - Declare o novo exportador na
exporters
seção com as configurações necessárias - nome, certificados, corretor e índice. Certifique-se de listar o novo exportador sob o tipo aplicável ("kakfa:") - Liste
pipelines
seu exportador na seção da especificação como um pipeline de métricas. O nome do exportador tem de ser precedido do tipo de exportador. Por exemplo,kafka/myMetrics
Neste exemplo, adicionamos um pipeline de métricas chamado "métricas" com um único exportador (kafka/myMetrics
) que roteia para sua instância do Kafka.
arc-telemetria-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>
Você adicionou um pipeline de métricas que exporta para sua instância do Kafka. Depois de aplicar as alterações ao arquivo yaml, o recurso personalizado TelemetryRouter entrará em um estado de atualização e o serviço de coletor será reiniciado.
Exemplo 2: Adicionando um exportador do Elasticsearch para um pipeline de logs
A implantação do roteador de telemetria pode exportar para vários destinos configurando mais exportadores. Vários tipos de exportadores são suportados em uma determinada implantação de roteador de telemetria. Este exemplo demonstra a adição de um exportador do Elasticsearch como um segundo exportador. Ativamos este segundo exportador adicionando-o a um pipeline de logs.
- Forneça seus certificados de cliente e CA na seção através dos segredos do
credentials
Kubernetes - Declare o novo Exportador abaixo da
exporters
seção com as configurações necessárias - nome, certificados, ponto de extremidade e índice. Certifique-se de listar o novo exportador sob o tipo aplicável ("Elasticsearch:"). - Liste
pipelines
seu exportador na seção da especificação como um pipeline de logs. O nome do exportador tem de ser precedido do tipo de exportador. Por exemplo,elasticsearch/myLogs
Este exemplo se baseia no exemplo anterior adicionando um pipeline de logs para um exportador do Elasticsearch (elasticsearch/myLogs
). No final do exemplo, temos dois exportadores com cada exportador adicionado a um pipeline diferente.
arc-telemetria-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>
Agora você tem exportadores Kafka e Elasticsearch, adicionados a pipelines de métricas e logs. Depois de aplicar as alterações ao arquivo yaml, o recurso personalizado TelemetryRouter entrará em um estado de atualização e o serviço de coletor será reiniciado.