Ingerir dados do Logstash para o Azure Data Explorer

Importante

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

O Logstash é um pipeline de processamento de dados do lado do servidor open source que ingere dados de muitas origens em simultâneo, transforma os dados e, em seguida, envia os dados para o seu "esconderijo" favorito. Neste artigo, irá enviar esses dados para o Azure Data Explorer, que é um serviço de exploração de dados rápido e altamente dimensionável para dados de registo e telemetria. Inicialmente, irá criar uma tabela e mapeamento de dados num cluster de teste e, em seguida, direcionar o Logstash para enviar dados para a tabela e validar os resultados.

Nota

Atualmente, este conector suporta apenas o formato de dados json.

Pré-requisitos

  • Uma conta Microsoft ou uma identidade de utilizador Microsoft Entra. Não é necessária uma subscrição do Azure.
  • Um cluster e uma base de dados do Azure Data Explorer. Criar um cluster e uma base de dados.
  • Instruções de instalação da versão 6+ do Logstash.

Criar uma tabela

Depois de ter um cluster e uma base de dados, está na altura de criar uma tabela.

  1. Execute o seguinte comando na janela de consulta da base de dados para criar uma tabela:

    .create table logs (timestamp: datetime, message: string)
    
  2. Execute o seguinte comando para confirmar que a nova tabela logs foi criada e que está vazia:

    logs
    | count
    

Criar um mapeamento

O mapeamento é utilizado pelo Azure Data Explorer para transformar os dados recebidos no esquema da tabela de destino. O comando seguinte cria um novo mapeamento com o nome basicmsg que extrai as propriedades do json de entrada, conforme indicado pelo path e devolve-as para o column.

Execute o seguinte comando na janela de consulta:

.create table logs ingestion json mapping 'basicmsg' '[{"column":"timestamp","path":"$.@timestamp"},{"column":"message","path":"$.message"}]'

Instalar o plug-in de saída do Logstash

O plug-in de saída do Logstash comunica com o Azure Data Explorer e envia os dados para o serviço. Para obter mais informações, veja Plug-in Logstash.

Numa shell de comandos, navegue para o diretório raiz do Logstash e, em seguida, execute o seguinte comando para instalar o plug-in:

bin/logstash-plugin install logstash-output-kusto

Configurar o Logstash para gerar um conjunto de dados de exemplo

O Logstash pode gerar eventos de exemplo que podem ser utilizados para testar um pipeline ponto a ponto. Se já estiver a utilizar o Logstash e tiver acesso ao seu próprio fluxo de eventos, avance para a secção seguinte.

Nota

Se estiver a utilizar os seus próprios dados, altere a tabela e os objetos de mapeamento definidos nos passos anteriores.

  1. Editar um novo ficheiro de texto que irá conter as definições de pipeline necessárias (com vi):

    vi test.conf
    
  2. Cole as seguintes definições que irão indicar ao Logstash para gerar 1000 eventos de teste:

    input {
        stdin { }
        generator {
            message => "Test Message 123"
            count => 1000
        }
    }
    

Esta configuração também inclui o stdin plug-in de entrada que lhe permitirá escrever mais mensagens sozinho (certifique-se de que utiliza Enter para submetê-las para o pipeline).

Configurar o Logstash para enviar dados para o Azure Data Explorer

Cole as seguintes definições no mesmo ficheiro de configuração utilizado no passo anterior. Substitua todos os marcadores de posição pelos valores relevantes para a configuração. Para obter mais informações, veja Criar uma Aplicação Microsoft Entra.

output {
    kusto {
            path => "/tmp/kusto/%{+YYYY-MM-dd-HH-mm-ss}.txt"
            ingest_url => "https://ingest-<cluster name>.kusto.windows.net/"
            app_id => "<application id>"
            app_key => "<application key/secret>"
            app_tenant => "<tenant id>"
            database => "<database name>"
            table => "<target table>" # logs as defined above
            json_mapping => "<mapping name>" # basicmsg as defined above
    }
}
Nome do Parâmetro Description
caminho O plug-in do Logstash escreve eventos em ficheiros temporários antes de os enviar para o Azure Data Explorer. Este parâmetro inclui um caminho onde os ficheiros devem ser escritos e uma expressão de tempo para a rotação de ficheiros para acionar um carregamento para o serviço Data Explorer do Azure.
ingest_url O ponto final do Kusto para comunicação relacionada com ingestão.
app_id, app_key e app_tenant Credenciais necessárias para ligar ao Azure Data Explorer. Certifique-se de que utiliza uma aplicação com privilégios de ingestão.
base de dados Nome da base de dados para colocar eventos.
table Nome da tabela de destino para colocar eventos.
json_mapping O mapeamento é utilizado para mapear uma cadeia json de evento de entrada para o formato de linha correto (define a propriedade que vai para que coluna).

Executar Logstash

Estamos agora prontos para executar o Logstash e testar as nossas definições.

  1. Numa shell de comandos, navegue para o diretório raiz do Logstash e, em seguida, execute o seguinte comando:

    bin/logstash -f test.conf
    

    Deverá ver as informações impressas no ecrã e, em seguida, as 1000 mensagens geradas pela nossa configuração de exemplo. Neste momento, também pode introduzir mais mensagens manualmente.

  2. Após alguns minutos, execute a seguinte consulta Data Explorer para ver as mensagens na tabela que definiu:

    logs
    | order by timestamp desc
    
  3. Selecione Ctrl+C para sair do Logstash

Limpar os recursos

Execute o seguinte comando na base de dados para limpar a logs tabela:

.drop table logs