Configuração do pipeline do Azure Monitor na borda

O pipeline do Azure Monitor é um pipeline de ingestão de dados que fornece uma coleta de dados consistente e centralizada para o Azure Monitor. O pipeline na borda habilita a coleta em escala e o roteamento dos dados telemétricos antes de serem enviados para a nuvem. Pode armazenar dados em cache localmente e sincronizar com a nuvem quando a conectividade for restaurada, além de rotear a telemetria para o Azure Monitor nos casos em que a rede é segmentada e os dados não podem ser enviados diretamente para a nuvem. Este artigo descreve como habilitar e configurar o pipeline na borda no seu ambiente.

Visão geral

O pipeline na borda do Azure Monitor é uma solução conteinerizada implantada em um cluster do Kubernetes habilitado para Arc e utiliza o Coletor de OpenTelemetry como base. O diagrama a seguir mostra os componentes do pipeline na borda. Um ou mais fluxos de dados escutam os dados de entrada dos clientes e a extensão de pipeline encaminha os dados para a nuvem, usando o cache local, se necessário.

O arquivo de configuração de pipeline define os fluxos de dados e as propriedades de cache do pipeline na borda. O DCR define o esquema dos dados enviados para o pipeline de nuvem, uma transformação para filtrar ou modificar os dados e o destino para o qual os dados devem ser enviados. Cada definição de fluxo de dados para a configuração de pipeline especifica o DCR e o fluxo nesse DCR que processará esses dados no pipeline de nuvem.

Diagrama de visão geral do fluxo de dados do pipeline na borda do Azure Monitor.

Observação

O link privado é compatível com o pipeline na borda para a conexão com o pipeline de nuvem.

Os componentes e as configurações a seguir são necessários para habilitar o pipeline na borda do Azure Monitor. Se você usar o portal do Azure para configurar o pipeline na borda, cada um desses componentes será criado para você. Com outros métodos, você precisará configurar cada um deles.

Componente Descrição
Extensão do controlador de pipeline de borda Extensão adicionada ao cluster do Kubernetes habilitado para Arc para dar suporte à funcionalidade de pipeline – microsoft.monitor.pipelinecontroller.
Instância do controlador de pipeline de borda Instância de pipeline de borda em execução no cluster do Kubernetes habilitado para Arc.
Fluxo de dados Combinação de receptores e exportadores executados na instância do controlador de pipeline. Os receptores aceitam dados de clientes e exportadores para entregar esses dados ao Azure Monitor.
Configuração do pipeline Arquivo de configuração que define os fluxos de dados para a instância de pipeline. Cada fluxo de dados inclui um receptor e um exportador. O receptor escuta os dados de entrada e o exportador envia os dados para o destino.
Ponto de extremidade de coleta de dados (DCE) Ponto de extremidade em que os dados são enviados para o pipeline do Azure Monitor. A configuração do pipeline inclui uma propriedade para a URL do DCE para que a instância de pipeline saiba para onde enviar os dados.
Configuração Descrição
DCR (regra de coleta de dados) Arquivo de configuração que define como os dados serão recebidos no pipeline de nuvem e para onde serão enviados. O DCR também pode incluir uma transformação para filtrar ou modificar os dados antes de serem enviados para o destino.
Configuração do pipeline Configuração que define os fluxos de dados para a instância de pipeline, incluindo os fluxos de dados e o cache.

Configurações com suporte

Distribuições com suporte
Há suporte para o pipeline na borda do Azure Monitor nas seguintes distribuições do Kubernetes:

  • Canônico
  • Provedor de API de Cluster do Azure
  • K3
  • Mecanismo Kubernetes do Rancher
  • Grade Kubernetes do VMware Tanzu

Locais com suporte
Há suporte para o pipeline na borda do Azure Monitor nas seguintes regiões do Azure:

  • Leste dos EUA 2
  • Oeste dos EUA 2
  • Europa Ocidental

Pré-requisitos

Workflow

Você não precisa de uma compreensão detalhada das diferentes etapas executadas pelo pipeline do Azure Monitor para configurá-lo usando o portal do Azure. Talvez você precise de uma compreensão mais detalhada dele, se usar outro método de instalação ou se precisar executar uma configuração mais avançada, como transformar os dados antes que eles sejam armazenados no destino.

As tabelas e diagramas a seguir descrevem as etapas detalhadas e os componentes no processo para coletar dados usando o pipeline na borda e passá-los para o pipeline de nuvem para armazenamento no Azure Monitor. A configuração necessária para cada um desses componentes também está incluída nas tabelas.

Etapa Ação Configuração de suporte
1. O cliente envia os dados para o receptor de pipeline de borda. O cliente é configurado com o IP e a porta do receptor de pipeline de borda e envia os dados no formato esperado para o tipo de receptor.
2. O receptor encaminha os dados para o exportador. O receptor e o exportador são configurados no mesmo pipeline.
3. O exportador tenta enviar os dados para o pipeline de nuvem. O exportador na configuração de pipeline inclui a URL do DCE, um identificador exclusivo para o DCR e o fluxo no DCR que define como os dados serão processados.
3a. O exportador armazenará os dados no cache local, se não puder se conectar ao DCE. Volume persistente para o cache e a configuração do cache local está habilitada na configuração do pipeline.

Diagrama detalhado das etapas e componentes da coleta de dados usando o pipeline na borda do Azure Monitor.

Etapa Ação Configuração de suporte
4. O pipeline de nuvem aceita os dados de entrada. A DCR inclui uma definição de esquema para o fluxo de entrada que deve corresponder ao esquema dos dados provenientes do pipeline na borda.
5. O pipeline de nuvem aplica uma transformação aos dados. O DCR inclui uma transformação que filtra ou modifica os dados antes de serem enviados para o destino. A transformação pode filtrar dados, remover ou adicionar colunas ou alterar completamente o esquema. A saída da transformação deve corresponder ao esquema da tabela de destino.
6. O pipeline de nuvem envia os dados para o destino. O DCR inclui um destino que especifica o workspace e a tabela do Log Analytics em que os dados serão armazenados.

Diagrama detalhado das etapas e componentes da coleta de dados usando o pipeline de nuvem do Azure Monitor.

Rede segmentada

A segmentação de rede é um modelo em que você usa os perímetros definidos pelo software para criar uma postura de segurança diferente para diferentes partes da rede. Nesse modelo, você pode ter um segmento de rede que não pode se conectar à Internet ou a outros segmentos de rede. O pipeline na borda pode ser usado para coletar dados desses segmentos de rede e enviá-los para o pipeline de nuvem.

Diagrama de uma rede em camadas para o pipeline na borda do Azure Monitor.

Para usar o pipeline do Azure Monitor em uma configuração de rede em camadas, você deve adicionar as seguintes entradas à lista de permissões para o cluster do Kubernetes habilitado para Arc. Confira Configurar a Versão Prévia do Gerenciamento de Rede em Camadas de IoT do Azure no cluster de nível 4

- destinationUrl: "*.ingest.monitor.azure.com"
  destinationType: external
- destinationUrl: "login.windows.net"
  destinationType: external

Criar tabela no workspace do Log Analytics

Antes de configurar o processo de coleta de dados para o pipeline na borda, você precisa criar uma tabela no workspace do Log Analytics para receber os dados. Deve ser uma tabela personalizada, pois não há suporte para tabelas internas no momento. O esquema da tabela deve corresponder aos dados recebidos, mas há várias etapas no processo de coleta em que você pode modificar os dados de entrada, para que o esquema de tabela não precise corresponder aos dados de origem que você está coletando. O único requisito para a tabela no workspace do Log Analytics é que ela tenha uma coluna TimeGenerated.

Confira Adicionar ou excluir tabelas e colunas nos Logs do Azure Monitor para obter detalhes sobre métodos diferentes para criar uma tabela. Por exemplo, use o comando da CLI abaixo para criar uma tabela com as três colunas chamadas Body, TimeGenerated e SeverityText.

az monitor log-analytics workspace table create --workspace-name my-workspace --resource-group my-resource-group  --name my-table_CL --columns TimeGenerated=datetime Body=string SeverityText=string

Habilitar cache

Os dispositivos de borda em alguns ambientes podem experimentar conectividade intermitente devido a vários fatores, como congestionamento de rede, interferência de sinal, interrupção de energia ou mobilidade. Nesses ambientes, você pode configurar o pipeline na borda para armazenar dados em cache criando um volume persistente no seu cluster. Esse processo variará de acordo com o ambiente específico, mas a configuração deve atender aos seguintes requisitos:

  • O namespace de metadados deve ser o mesmo que a instância especificada do pipeline do Azure Monitor.
  • O modo de acesso deve dar suporte ao ReadWriteMany.

Depois que o volume for criado no namespace apropriado, configure-o usando os parâmetros no arquivo de configuração de pipeline abaixo.

Cuidado

Cada réplica do pipeline de borda armazena dados em um local no volume persistente específico para essa réplica. Diminuir o número de réplicas enquanto o cluster está desconectado da nuvem impedirá que esses dados sejam preenchidos novamente quando a conectividade for restaurada.

Os dados são recuperados do cache usando FIFO (primeiro a entrar, primeiro a sair). Todos os dados com mais de 48 horas serão descartados.

Habilitar e configurar o pipeline

As opções atuais de habilitação e configuração são detalhadas nas guias abaixo.

Configurar o pipeline usando o portal do Azure

Quando você usa o portal do Azure para habilitar e configurar o pipeline, todos os componentes necessários são criados de acordo com suas seleções. Isso elimina complexidade de criar cada componente individualmente, mas talvez você precise usar outros métodos

Execute um dos seguintes procedimentos no portal do Azure para iniciar o processo de instalação do pipeline do Azure Monitor:

  • No menu pipelines do Azure Monitor (versão prévia), clique em Criar.
  • No menu do cluster do Kubernetes habilitado para Arc, selecione Extensões e adicione a extensão de pipeline do Azure Monitor (versão prévia).

A guia Básico solicita as informações a seguir para implantar a instância de extensão e pipeline no seu cluster.

Captura de tela da opção Criar pipeline do Azure Monitor.

As configurações nesta guia são descritas na tabela a seguir.

Propriedade Descrição
Nome da instância Nome da instância de pipeline do Azure Monitor. Deve ser exclusivo para a assinatura.
Assinatura Assinatura do Azure para criar a instância de pipeline.
Grupo de recursos Grupo de recursos para criar a instância de pipeline.
Nome do cluster Selecione o cluster do Kubernetes habilitado para Arc no qual o pipeline será instalado.
Local Personalizado Local personalizado para o cluster do Kubernetes habilitado para Arc. Será preenchido automaticamente com o nome de um local personalizado que será criado para o cluster ou você poderá selecionar outro local personalizado no cluster.

A guia Fluxo de Dados permite que você crie e edite fluxos de dados para a instância de pipeline. Cada fluxo de dados inclui os seguintes detalhes:

Captura de tela da opção Criar/adicionar fluxo de dados.

As configurações nesta guia são descritas na tabela a seguir.

Propriedade Descrição
Nome Nome do fluxo de dados. Deve ser exclusivo para este pipeline.
Tipo de origem O tipo de dados que está sendo coletado. No momento, há suporte para os seguintes tipos de recurso:
- Syslog
- OTLP
Porta Porta que o pipeline escuta para os dados de entrada. Se dois fluxos de dados usarem a mesma porta, eles receberão e processarão os dados.
Workspace do Log Analytics Workspace do Log Analytics para o qual os dados devem ser enviados.
Nome da Tabela O nome da tabela no workspace do Log Analytics para o qual os dados devem ser enviados.

Verificar a configuração

Verificar os componentes de pipeline em execução no cluster

No portal do Azure, navegue até o menu de serviços do Kubernetes e selecione o cluster do Kubernetes habilitado para Arc. Selecione Serviços e entradas e verifique se você vê os seguintes serviços:

  • <pipeline name>-external-service
  • <pipeline name>-service

Captura de tela dos componentes de cluster compatíveis com o pipeline na borda do Azure Monitor.

Clique na entrada para <pipeline name>-external-service e anote o endereço IP e a porta na coluna Pontos de Extremidade. Esse é o endereço IP externo e a porta para a qual seus clientes enviarão os dados. Consulte Recuperar ponto de extremidade de entrada para recuperar esse endereço do cliente.

Verificar pulsação

Cada pipeline configurado na sua instância de pipeline enviará um registro de pulsação para a tabela Heartbeat no seu workspace do Log Analytics a cada minuto. O conteúdo da coluna OSMajorVersion deve corresponder ao nome da instância de pipeline. Se houver vários workspaces na instância de pipeline, o primeiro configurado será usado.

Recupere os registros de pulsação usando uma consulta de log como no exemplo a seguir:

Captura de tela da consulta de log que retorna os registros de pulsação para o pipeline na borda do Azure Monitor.

Configuração do cliente

Depois que a extensão e a instância de pipeline de borda forem instaladas, você precisará configurar os clientes para enviar dados para o pipeline.

Recuperar ponto de extremidade de entrada

Cada cliente requer o endereço IP externo do serviço de pipeline do Azure Monitor. Use o comando a seguir para recuperar esse endereço:

kubectl get services -n <namespace where azure monitor pipeline was installed>
  • Se o aplicativo que gera logs for externo ao cluster, copie o valor de external-ip do serviço <pipeline name>-service ou <pipeline name>-external-service com o tipo de balanceador de carga.
  • Se o aplicativo estiver em um pod dentro do cluster, copie o valor cluster-ip.

Observação

Se o campo external-ip estiver definido como pendente, você precisará configurar um IP externo para essa entrada manualmente de acordo com a configuração do cluster.

Cliente Descrição
syslog Atualize os clientes do Syslog para enviar dados para o ponto de extremidade do pipeline e a porta do fluxo de dados do Syslog.
OTLP O pipeline de borda do Azure Monitor expõe um ponto de extremidade do OTLP baseado em gRPC na porta 4317. Configurar a instrumentação para enviar para esse ponto de extremidade do OTLP dependerá da própria biblioteca de instrumentação. Confira Ponto de extremidade ou coletor do OTLP para obter a documentação de OpenTelemetry. O método de variável de ambiente está documentado na Configuração do Exportador do OTLP.

Verificar os dados

A etapa final é verificar se os dados foram recebidos no workspace do Log Analytics. Você pode realizar essa verificação executando uma consulta no workspace do Log Analytics para recuperar os dados da tabela.

Captura de tela da consulta de log que retorna da coleção do Syslog.

Próximas etapas