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:
- Se necessário, crie bases de dados com as instruções em Criar uma base de dados KQL.
- Se necessário, crie tabelas com as instruções em Criar uma tabela vazia.
- Obtenha URIs de consulta ou ingestão com as instruções em Copiar URI.
- Execute consultas num conjunto de consultas KQL.
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.
Execute o seguinte comando na janela de consulta da base de dados para criar uma tabela:
.create table logs (timestamp: datetime, message: string)
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.
Editar um novo ficheiro de texto que irá conter as definições de pipeline necessárias (com vi):
vi test.conf
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.
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.
Após alguns minutos, execute a seguinte consulta Data Explorer para ver as mensagens na tabela que definiu:
logs | order by timestamp desc
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