Partilhar via


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 pipelines de logs e 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.

  1. Forneça seus certificados de cliente e CA na seção através dos segredos do credentials Kubernetes
  2. 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:")
  3. 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.

  1. Forneça seus certificados de cliente e CA na seção através dos segredos do credentials Kubernetes
  2. 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:").
  3. 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.