Share via


Ingerir dados com o coletor NLog no Azure Data Explorer

Importante

Esse conector pode ser usado na Análise em Tempo Real no Microsoft Fabric. Use as instruções neste artigo com as seguintes exceções:

O NLog é uma plataforma de log flexível e gratuita para várias plataformas .NET, incluindo o .NET Standard. O NLog permite que você escreva em vários destinos, como um banco de dados, arquivo ou console. Com o NLog, você pode alterar a configuração de log em tempo real. O coletor NLog é um destino para NLog que permite que você envie suas mensagens de log para um cluster do Azure Data Explorer. O plug-in é criado com base na biblioteca Azure-Kusto-Data e fornece uma maneira eficiente de coletar seus logs no cluster.

Neste artigo, você aprenderá a:

Para obter uma lista completa de conectores de dados, consulte Visão geral dos conectores de dados.

Pré-requisitos

Configure seu ambiente

Nesta seção, você preparará seu ambiente para usar o conector NLog.

Instalar o pacote

Adicione o pacote NuGet NLog.Azure.Kusto . Use o comando Install-Package especificando o nome do pacote NuGet.

Install-Package NLog.Azure.Kusto

Criar um registro de aplicativo Microsoft Entra

Microsoft Entra autenticação de aplicativo é usada para aplicativos que precisam acessar o Azure Data Explorer sem um usuário presente. Para ingerir dados usando o conector NLog, você precisa criar e registrar uma entidade de serviço Microsoft Entra e autorizar essa entidade de segurança a ingerir dados em um banco de dados do Azure Data Explorer.

  1. Usando o cluster do Azure Data Explorer, siga as etapas de 1 a 7 em Criar um registro de aplicativo Microsoft Entra no Azure Data Explorer.
  2. Salve os seguintes valores a serem usados em etapas posteriores:
    • ID do aplicativo (cliente)
    • ID do diretório (locatário)
    • Valor da chave secreta do cliente

Conceder as permissões do aplicativo Microsoft Entra

  1. Na guia consulta da interface do usuário da Web, conecte-se ao cluster. Para obter mais informações sobre como se conectar, consulte Adicionar clusters.

  2. Navegue até o banco de dados no qual você deseja ingerir dados.

  3. Execute o comando de gerenciamento a seguir, substituindo os espaços reservados. Substitua DatabaseName pelo nome do banco de dados de destino e ApplicationID pelo valor salvo anteriormente. Esse comando concede ao aplicativo a função de ingestor de banco de dados . Para obter mais informações, consulte Gerenciar funções de segurança de banco de dados.

    .add database <DatabaseName> ingestors ('aadapp=<ApplicationID>') 'Azure Data Explorer App Registration'
    

    Observação

    O último parâmetro é uma cadeia de caracteres que aparece como observações quando você consulta as funções associadas a um banco de dados. Para obter mais informações, consulte Exibir funções de segurança existentes.

Criar uma tabela e um mapeamento de ingestão

Crie uma tabela de destino para os dados de entrada.

  • No editor de consultas, execute o seguinte comando de criação de tabela, substituindo o espaço reservado TableName pelo nome da tabela de destino:

    .create table <TableName> (Timestamp:datetime, Level:string, Message:string, FormattedMessage:dynamic, Exception:string, Properties:dynamic)
    

Adicionar a configuração de destino do Azure Data Explorer ao seu aplicativo

Use as seguintes etapas para:

  • Adicionar a configuração de destino do Data Explorer do Azure
  • Compilar e executar o aplicativo
  1. Adicione o destino de Data Explorer do Azure ao arquivo de configuração NLog.

    <targets>
        <target name="adxtarget" xsi:type="ADXTarget"
        IngestionEndpointUri="<ADX connection string>"
        Database="<ADX database name>"
        TableName="<ADX table name>"
        ApplicationClientId="<AAD App clientId>"
        ApplicationKey="<AAD App key>"
        Authority="<AAD tenant id>"
        />
    </targets>
    
    ##Rules
    <rules>
        <logger name="*" minlevel="Info" writeTo="adxtarget" />
    </rules>
    

    Para obter mais opções, consulte Conector do Nlog do Data Explorer do Azure.

  2. Envie dados para o Azure Data Explorer usando o coletor NLog. Por exemplo:

    logger.Info("Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs);
    logger.Error(exceptionObj, "This was exception");
    logger.Debug("Processed {@Position} in {Elapsed:000} ms. ", position, elapsedMs);
    logger.Warn("Processed {@Position} in {Elapsed:000} ms. ", position, elapsedMs);
    
  3. Compile e execute o aplicativo. Por exemplo, se você estiver usando o Visual Studio, pressione F5.

  4. Verifique se os dados estão no cluster. Na interface do usuário da Web, execute a seguinte consulta substituindo o espaço reservado pelo nome da tabela usada anteriormente:

    <TableName>
    | take 10
    

Executar o aplicativo de exemplo

Use o aplicativo gerador de log de exemplo como um exemplo mostrando como configurar e usar o coletor NLog.

  1. Clone o repositório git do coletor NLog usando o seguinte comando git:

    git clone https://github.com/Azure/azure-kusto-nlog-sink.git
    
  2. Defina as seguintes variáveis ambientais para que o arquivo de configuração NLog possa lê-las imediatamente do ambiente:

    Variável Descrição
    INGEST_ENDPOINT O URI de ingestão do cluster no cluster> de formatohttps://ingest-<.<region.kusto.windows.net>.
    DATABASE O nome que diferencia maiúsculas de minúsculas do banco de dados de destino.
    APP_ID ID do cliente do aplicativo necessária para autenticação. Você salvou esse valor em Criar um registro de aplicativo Microsoft Entra.
    APP_KEY Chave do aplicativo necessária para autenticação. Você salvou esse valor em Criar um registro de aplicativo Microsoft Entra.
    AZURE_TENANT_ID A ID do locatário no qual o aplicativo está registrado. Você salvou esse valor em Criar um registro de aplicativo Microsoft Entra.

    Você pode definir as variáveis de ambiente manualmente ou usando os seguintes comandos:

    $env:INGEST_ENDPOINT="<ingestionURI>"
    $env:APP_ID="<appId>"
    $env:APP_KEY="<appKey>"
    $env:AZURE_TENANT_ID="<tenant>"
    $env:DATABASE="<databaseName>"
    
  3. No terminal, navegue até a pasta raiz do repositório clonado e execute o seguinte dotnet comando para compilar o aplicativo:

    cd .\NLog.Azure.Kusto.Samples\
    dotnet build
    
  4. No terminal, navegue até a pasta exemplos e execute o seguinte dotnet comando para executar o aplicativo:

    dotnet run
    
  5. Na interface do usuário da Web, selecione o banco de dados de destino e execute a consulta a seguir para explorar os dados ingeridos.

    ADXNLogSample
    | take 10
    

    Sua saída deve ser semelhante à seguinte imagem:

    Captura de tela da tabela com a função take 10 e os resultados.