Adicionar exportadores e pipelines à implantação do roteador de telemetria
Observação
- O roteador de telemetria está em Visualização Pública e deve ser implantado somente 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 oferece suporte a 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, reinstalá-lo.
O que são Exportadores e Pipelines?
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, você o associa 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 com suporte.
Exportadores suportados
Exportador | Tipos de pipeline suportados |
---|---|
Kafka | logs, métricas |
Elasticsearch | logs |
Configurações
Todas as configurações são especificadas por meio da especificação de recursos personalizados do roteador de telemetria e oferecem suporte à configuração de exportadores e pipelines.
Exportadores
Para a Visualização Pública, os exportadores são parcialmente configuráveis e oferecem suporte às seguintes soluções:
Exportador | Tipos de telemetria suportados |
---|---|
Kafka | logs, métricas |
Elasticsearch | logs |
No momento, as propriedades a seguir são configuráveis durante a Visualização Pública:
Configurações gerais do exportador
Configuração | Descrição |
---|---|
certificateName | O certificado do cliente para exportar para a solução de monitoramento |
caCertificateName | O certificado da Autoridade de Certificação do cluster ou fornecido pelo cliente para o exportador |
Configurações do exportador kafka
Configuração | Descrição |
---|---|
tópico | Nome do tópico a ser exportado |
agentes | Lista de corretores aos quais se conectar |
encoding | Codificação para a telemetria: otlp_json ou otlp_proto |
Configurações do exportador Elasticsearch
Configuração | Descrição |
---|---|
índice | 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 oferece suporte a logs e pipelines de métricas. Esses pipelines são expostos na especificação de recurso personalizado 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
Configuração | Descrição |
---|---|
logs | Só é possível declarar novos pipelines de logs |
Métricas | Só pode declarar novos pipelines de métricas |
exportadores | Lista de exportadores. Pode ser múltiplo do mesmo tipo |
Credenciais
Configurações de credenciais
Configuração | Descrição |
---|---|
certificateName | O nome do certificado deve corresponder ao nome do certificado especificado na declaração do exportador |
secretName | Nome do segredo fornecido por meio do Kubernetes |
secretNamespace | Namespace com segredo fornecido por meio 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
credentials
por meio de segredos do Kubernetes - Declare o novo Exportador na seção
exporters
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 seu exportador na seção
pipelines
da especificação como um pipeline de métricas. O nome do exportador precisa ser prefixado com o 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-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>
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. Há suporte para vários tipos de exportadores 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 esse segundo exportador adicionando-o a um pipeline de logs.
- Forneça seus certificados de cliente e CA na seção
credentials
por meio de segredos do Kubernetes - Declare o novo Exportador abaixo da seção
exporters
com as configurações necessárias - nome, certificados, ponto de extremidade e índice. Certifique-se de listar o novo exportador no tipo aplicável ("Elasticsearch:"). - Liste seu exportador na seção
pipelines
da especificação como um pipeline de logs. O nome do exportador precisa ser prefixado com o tipo de exportador. Por exemplo,elasticsearch/myLogs
Este exemplo baseia-se 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-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>
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 coletor será reiniciado.