Partilhar via


Configuração do pipeline do Azure Monitor no edge

O pipeline do Azure Monitor é um pipeline de ingestão de dados que fornece coleta de dados consistente e centralizada para o Azure Monitor. O pipeline na borda permite a coleta em escala e o roteamento de dados de telemetria antes de serem enviados para a nuvem. Ele pode armazenar dados em cache localmente e sincronizar com a nuvem quando a conectividade é restaurada e 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 em seu ambiente.

Descrição geral

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

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

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

Nota

A ligação privada é suportada pelo pipeline no edge para a ligação ao pipeline da cloud.

Os seguintes componentes e configurações são necessários para habilitar o pipeline do Azure Monitor na borda. 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ê precisa configurar cada um.

Componente Description
Extensão do controlador de pipeline de borda Extensão adicionada ao cluster Kubernetes habilitado para Arc para suportar a funcionalidade de pipeline - microsoft.monitor.pipelinecontroller.
Instância do controlador de pipeline de borda Instância do pipeline de borda em execução no cluster Kubernetes habilitado para Arc.
Fluxo de dados Combinação de recetores e exportadores que são executados na instância do controlador de pipeline. Os destinatários 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 do pipeline. Cada fluxo de dados inclui um recetor e um exportador. O recetor escuta os dados recebidos e o exportador envia os dados para o destino.
Ponto de extremidade de coleta de dados (DCE) Ponto de extremidade onde 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 do pipeline saiba para onde enviar os dados.
Configuração Description
Regra de recolha de dados (DCR) Arquivo de configuração que define como os dados são recebidos no pipeline de nuvem e para onde sã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 do pipeline, incluindo os fluxos de dados e o cache.

Configurações suportadas

Distribuições suportadas
O pipeline do Azure Monitor no edge é suportado nas seguintes distribuições do Kubernetes:

  • Canónico
  • Fornecedor da API do Cluster para o Azure
  • K3
  • Rancher Kubernetes Engine
  • VMware Tanzu Kubernetes Grid

Localizações suportadas
O pipeline do Azure Monitor na borda é suportado nas seguintes regiões do Azure:

  • E.U.A. Leste 2
  • E.U.A. Oeste 2
  • Europa Ocidental

Pré-requisitos

Fluxo de Trabalho

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. Você pode precisar de uma compreensão mais detalhada se você 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 em seu destino.

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

Passo Ação Configuração de suporte
1. O cliente envia dados para o recetor de pipeline de borda. O cliente é configurado com IP e porta do recetor de pipeline de borda e envia dados no formato esperado para o tipo de recetor.
2. O recetor encaminha os dados para o exportador. Recetor e exportador são configurados no mesmo pipeline.
3. O exportador tenta enviar os dados para o pipeline de nuvem. O exportador na configuração do 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 armazena dados no cache local se não puder se conectar ao DCE. O volume persistente para o cache e a configuração do cache local está habilitado na configuração do pipeline.

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

Passo Ação Configuração de suporte
4. O pipeline de nuvem aceita os dados recebidos. O 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 seu 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 espaço de trabalho do Log Analytics e a tabela onde os dados serão armazenados.

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

Rede segmentada

A segmentação de rede é um modelo em que você usa perímetros definidos por software para criar uma postura de segurança diferente para diferentes partes da sua rede. Neste 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 do Azure Monitor na borda.

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 Kubernetes habilitado para Arc. Consulte Configurar o Azure IoT Layered Network Management Preview no cluster de nível 4.

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

Criar tabela no espaço de trabalho do Log Analytics

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

Consulte Adicionar ou excluir tabelas e colunas nos Logs do Azure Monitor para obter detalhes sobre diferentes métodos para criar uma tabela. Por exemplo, use o comando CLI abaixo para criar uma tabela com as três colunas chamadas Body, TimeGeneratede 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

Ativar cache

Dispositivos de borda em alguns ambientes podem experimentar conectividade intermitente devido a vários fatores, como congestionamento de rede, interferência de sinal, falta de energia ou mobilidade. Nesses ambientes, você pode configurar o pipeline na borda para armazenar dados em cache criando um volume persistente no cluster. O processo para isso variará com base em seu 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 suportar ReadWriteMany.

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

Atenção

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

Os dados são recuperados do cache usando FIFO (first-in-first-out). Quaisquer dados com mais de 48 horas serão descartados.

Habilitar e configurar pipeline

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

Configurar 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 com base em suas seleções. Isso evita a complexidade de criar cada componente individualmente, mas você fez a necessidade de usar outros métodos para

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 (visualização), clique em Criar.
  • No menu do cluster Kubernetes habilitado para Arc, selecione Extensões e adicione a extensão de pipeline (visualização) do Azure Monitor.

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

Captura de tela da tela Criar pipeline do Azure Monitor.

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

Property Description
Nome da instância Nome para a instância de pipeline do Azure Monitor. Deve ser exclusivo para a assinatura.
Subscrição 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 seu cluster Kubernetes habilitado para Arc no qual o pipeline será instalado.
Localização personalizada Local personalizado para seu cluster Kubernetes habilitado para Arc. Isso será preenchido automaticamente com o nome de um local personalizado que será criado para seu cluster ou você pode selecionar outro local personalizado no cluster.

A guia Fluxo de dados permite criar e editar fluxos de dados para a instância do pipeline. Cada fluxo de dados inclui os seguintes detalhes:

Captura de ecrã do ecrã Criar adicionar fluxo de dados.

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

Property Descrição
Name Nome para o fluxo de dados. Deve ser exclusivo para este pipeline.
Source type O tipo de dados que estão a ser recolhidos. Os seguintes tipos de fonte são suportados atualmente:
- Syslog
- OTLP
Porta Porta que o pipeline escuta para obter dados de entrada. Se dois fluxos de dados usarem a mesma porta, ambos receberão e processarão os dados.
Área de trabalho do Log Analytics Espaço de trabalho do Log Analytics para o qual enviar os dados.
Nome da Tabela O nome da tabela no espaço de trabalho do Log Analytics para o qual enviar os dados.

Verificar a configuração da regra

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

No portal do Azure, navegue até o menu de serviços do Kubernetes e selecione seu cluster Kubernetes habilitado para Arc. Selecione Serviços e entradas e certifique-se de ver os seguintes serviços:

  • <nome> do pipeline-external-service
  • <serviço de nome> de pipeline

Captura de ecrã dos componentes de cluster que suportam o pipeline do Azure Monitor na borda.

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

Verificar o batimento cardíaco

Cada pipeline configurado em sua instância de pipeline enviará um registro de pulsação para a Heartbeat tabela no espaço de trabalho do Log Analytics a cada minuto. O conteúdo da coluna deve corresponder ao nome da instância do OSMajorVersion pipeline. Se houver vários espaços de trabalho na instância do 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 registros de pulsação para o pipeline do Azure Monitor na borda.

Configuração do cliente

Depois que a extensão e a instância do pipeline de borda estiverem instaladas, você precisará configurar seus 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. Utilize o seguinte comando para obter este endereço:

kubectl get services -n <namespace where azure monitor pipeline was installed>
  • Se o aplicativo que produz logs for externo ao cluster, copie o valor external-ip do 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 .

Nota

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 Description
Syslog Atualize os clientes Syslog para enviar dados para o ponto final do pipeline e a porta do fluxo de dados Syslog.
OTLP O pipeline edge do Azure Monitor expõe um ponto final OTLP baseado em gRPC na porta 4317. Configurar a instrumentação para enviar para este ponto final OTLP dependerá da própria biblioteca de instrumentação. Consulte Ponto de extremidade OTLP ou Coletor para documentação do OpenTelemetry . O método da variável de ambiente está documentado em OTLP Exporter Configuration.

Verificar os dados

O passo final é verificar se os dados são recebidos na área de trabalho do Log Analytics. Pode executar esta verificação ao executar uma consulta na área de trabalho do Log Analytics para obter os dados da tabela.

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

Próximos passos