Ingerir dados do Logstash para o Azure Data Explorer
Importante
Este conector pode ser usado em Real-Time Intelligence no Microsoft Fabric. Use as instruções incluídas neste artigo com as seguintes exceções:
- Se necessário, crie bancos de dados usando as instruções em Criar um banco de dados KQL.
- Se necessário, crie tabelas usando as instruções em Criar uma tabela vazia.
- Obtenha URIs de consulta ou ingestão usando as instruções em Copiar URI.
- Execute consultas em um KQL queryset.
O Logstash é um software livre de pipeline de processamento de dados no lado do servidor que ingere dados de muitas origens simultaneamente, transforma os dados e, depois, envia os dados ao seu "stash" favorito. Neste artigo, você enviará esses dados ao Azure Data Explorer, que é um serviço de exploração de dados rápido e altamente escalonável para dados de log e telemetria. Inicialmente, você criará um mapeamento de tabela e dados em um cluster de teste e depois instruirá o Logstash a enviar dados para a tabela e validar os resultados.
Observação
No momento, esse conector é compatível somente com o formato de dados JSON.
Pré-requisitos
- Uma conta Microsoft ou uma identidade de usuário do Microsoft Entra. Uma assinatura do Azure não é necessária.
- Um cluster e um banco de dados do Azure Data Explorer. Criar um cluster e um banco de dados.
- Instruções de instalação do Logstash versão 6+.
Criar uma tabela
Depois que você tiver um cluster e um banco de dados, é hora de criar uma tabela.
Execute o comando a seguir na janela de consulta do banco de dados para criar uma tabela:
.create table logs (timestamp: datetime, message: string)
Execute o comando a seguir para confirmar que a nova tabela
logs
foi criada e está vazia:logs | count
Criar um mapeamento
O mapeamento é usado pelo Azure Data Explorer para transformar os dados recebidos no esquema da tabela de destino. O comando a seguir cria um mapeamento denominado basicmsg
que extrai as propriedades do json de entrada, conforme indicado pelo path
, e gera como saída para o column
.
Execute o comando a seguir 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 se comunica com o Azure Data Explorer e envia os dados para o serviço. Para obter mais informações, confira o plug-in do Logstash.
Em um shell de comando, navegue até o diretório raiz do Logstash e 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 consegue gerar eventos de exemplo que podem ser usados para testar um pipeline de ponta a ponta. Se você já estiver usando o Logstash e tem acesso ao seu próprio fluxo de eventos, pule para a próxima seção.
Observação
Se estiver usando seus próprios dados, altere os objetos de mapeamento e de tabela definidos nas etapas anteriores.
Edite um novo arquivo de texto que conterá as configurações de pipeline necessárias (usando o vi):
vi test.conf
Cole as configurações a seguir, que instruirão o Logstash a gerar 1000 eventos de teste:
input { stdin { } generator { message => "Test Message 123" count => 1000 } }
Essa configuração também inclui o stdin
plug-in de entrada que permite que você escreva mais mensagens por conta própria (não se esqueça de usar Enter para enviá-las no pipeline).
Configurar o Logstash para enviar dados para o Azure Data Explorer
Cole as configurações a seguir no mesmo arquivo de configuração usado na etapa anterior. Substitua todos os espaços reservados pelos valores relevantes para sua configuração. Para obter mais informações, consulte Criar um registro do aplicativo 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 | Descrição |
---|---|
caminho | O plug-in do Logstash grava eventos em arquivos temporários antes de enviá-los para o Azure Data Explorer. Esse parâmetro inclui um caminho no qual os arquivos devem ser gravados e uma expressão de tempo para a rotação de arquivos a fim de disparar um upload para o serviço do Azure Data Explorer. |
ingest_url | O ponto de extremidade do Kusto para comunicação relacionada à ingestão. |
app_id, app_key e app_tenant | Credenciais necessárias para se conectar ao Azure Data Explorer. Certifique-se de usar um aplicativo com privilégios de ingestão. |
database | Nome do banco de dados para colocar os eventos. |
table | Nome da tabela de destino para colocar os eventos. |
json_mapping | O mapeamento é usado para mapear uma cadeia de caracteres json de evento recebida no formato correto de linha (define qual propriedade entra em qual coluna). |
Executar o Logstash
Agora, estamos prontos para executar o Logstash e testar nossas configurações.
Em um shell de comando, navegue até o diretório raiz do Logstash e execute o seguinte comando:
bin/logstash -f test.conf
Você deve ver informações impressas na tela e, em seguida, as 1000 mensagens geradas por nosso exemplo de configuração. Neste ponto, também pode inserir mais mensagens manualmente.
Depois de alguns minutos, execute a consulta do Data Explorer a seguir 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 comando a seguir no seu banco de dados para limpar a tabela logs
:
.drop table logs