[Preterido] Use o Logstash para transmitir logs com a API de coleta de dados HTTP (legada)
Importante
A coleta de logs de muitos dispositivos e dispositivos agora é suportada pelo Common Event Format (CEF) via AMA, Syslog via AMA ou Custom Logs via conector de dados AMA no Microsoft Sentinel. Para obter mais informações, veja Localizar o conector de dados do Microsoft Sentinel.
Importante
A ingestão de dados usando o plug-in de saída Logstash está atualmente em visualização pública. Esse recurso é fornecido sem um contrato de nível de serviço e não é recomendado para cargas de trabalho de produção. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
Nota
Uma versão mais recente do plug-in Logstash pode encaminhar logs de fontes de dados externas para tabelas personalizadas e padrão usando a API baseada em DCR. O novo plugin permite controle total sobre o esquema de saída, incluindo a configuração dos nomes e tipos de coluna.
Usando o plug-in de saída do Microsoft Sentinel para o mecanismo de coleta de dados Logstash, você pode enviar qualquer tipo de log desejado através do Logstash diretamente para seu espaço de trabalho do Log Analytics no Microsoft Sentinel. Seus logs serão enviados para uma tabela personalizada que você define usando o plug-in de saída. Esta versão do plug-in usa a API de coleta de dados HTTP.
Para saber mais sobre como trabalhar com o mecanismo de coleta de dados Logstash, consulte Introdução ao Logstash.
Descrição geral
Arquitetura e antecedentes
O motor Logstash é composto por três componentes:
- Plugins de entrada: Coleção personalizada de dados de várias fontes.
- Plugins de filtro: Manipulação e normalização de dados de acordo com critérios especificados.
- Plugins de saída: Envio personalizado de dados recolhidos e processados para vários destinos.
Nota
A Microsoft suporta apenas o plug-in de saída Logstash fornecido pelo Microsoft Sentinel discutido aqui. A versão atual deste plugin é v1.0.0, lançado 2020-08-25. Você pode abrir um ticket de suporte para quaisquer problemas relacionados ao plug-in de saída.
A Microsoft não oferece suporte a plug-ins de saída Logstash de terceiros para o Microsoft Sentinel ou qualquer outro plug-in ou componente Logstash de qualquer tipo.
O plug-in de saída Logstash do Microsoft Sentinel suporta apenas as versões 7.0 a 7.17.10 do Logstash e as versões 8.0 a 8.9 e 8.11. Se você usa o Logstash 8, recomendamos que desative o ECS no pipeline.
O plug-in de saída do Microsoft Sentinel para Logstash envia dados formatados em JSON para seu espaço de trabalho do Log Analytics, usando a API REST do Coletor de Dados HTTP do Log Analytics. Os dados são ingeridos em logs personalizados.
- Saiba mais sobre a API REST do Log Analytics.
- Saiba mais sobre logs personalizados.
Implantar o plug-in de saída do Microsoft Sentinel no Logstash
Passo 1: Instalação
O plug-in de saída do Microsoft Sentinel está disponível na coleção Logstash.
Siga as instruções no documento Logstash Working with plugins para instalar o plug-in microsoft-logstash-output-azure-loganalytics.
Se o seu sistema Logstash não tiver acesso à Internet, siga as instruções no documento Logstash Offline Plugin Management para preparar e usar um pacote de plug-ins offline. (Isso exigirá que você construa outro sistema Logstash com acesso à Internet.)
Etapa 2: Configuração
Use as informações na estrutura Logstash de um documento de arquivo de configuração e adicione o plug-in de saída do Microsoft Sentinel à configuração com as seguintes chaves e valores. (A sintaxe adequada do arquivo de configuração é mostrada após a tabela.)
Nome do campo | Tipo de dados | Description |
---|---|---|
workspace_id |
string | Insira o GUID do ID do espaço de trabalho (consulte Dica). |
workspace_key |
string | Insira o GUID da chave primária do espaço de trabalho (consulte Dica). |
custom_log_table_name |
string | Defina o nome da tabela na qual os logs serão ingeridos. Apenas um nome de tabela por plug-in de saída pode ser configurado. A tabela de log aparecerá no Microsoft Sentinel em Logs, em Tabelas na categoria Logs personalizados, com um _CL sufixo. |
endpoint |
string | Campo opcional. Por padrão, esse é o ponto de extremidade do Log Analytics. Use este campo para definir um ponto de extremidade alternativo. |
time_generated_field |
string | Campo opcional. Esta propriedade substitui o campo padrão TimeGenerated no Log Analytics. Insira o nome do campo de carimbo de data/hora na fonte de dados. Os dados no campo devem estar em conformidade com o formato ISO 8601 (YYYY-MM-DDThh:mm:ssZ ) |
key_names |
matriz | Insira uma lista de campos do esquema de saída do Log Analytics. Cada item da lista deve ser colocado entre aspas simples e os itens separados por vírgulas, e toda a lista entre colchetes. Veja o exemplo abaixo. |
plugin_flush_interval |
Número | Campo opcional. Defina para definir o intervalo máximo (em segundos) entre as transmissões de mensagens para o Log Analytics. A predefinição é 5. |
amount_resizing |
boolean | True ou false. Habilite ou desabilite o mecanismo de dimensionamento automático, que ajusta o tamanho do buffer de mensagens de acordo com o volume de dados de log recebidos. |
max_items |
Número | Campo opcional. Aplica-se somente se amount_resizing definido como "false". Use para definir um limite no tamanho do buffer de mensagens (em registros). A predefinição é 2 000. |
azure_resource_id |
string | Campo opcional. Define a ID do recurso do Azure onde os dados residem. O valor de ID de recurso é especialmente útil se você estiver usando RBAC de contexto de recurso para fornecer acesso apenas a dados específicos. |
Gorjeta
- Você pode encontrar a ID do espaço de trabalho e a chave primária no recurso do espaço de trabalho, em Gerenciamento de agentes.
- No entanto, como ter credenciais e outras informações confidenciais armazenadas em texto não criptografado em arquivos de configuração não está de acordo com as práticas recomendadas de segurança, é altamente recomendável usar o armazenamento de chaves Logstash para incluir com segurança o ID e a chave primária do espaço de trabalho na configuração. Consulte a documentação do Elastic para obter instruções.
Configurações de exemplo
Aqui estão alguns exemplos de configurações que usam algumas opções diferentes.
Uma configuração básica que usa um pipe de entrada filebeat:
input { beats { port => "5044" } } filter { } output { microsoft-logstash-output-azure-loganalytics { workspace_id => "<your workspace id>" workspace_key => "<your workspace key>" custom_log_table_name => "tableName" } }
Uma configuração básica que usa um pipe de entrada tcp:
input { tcp { port => "514" type => syslog #optional, will effect log type in table } } filter { } output { microsoft-logstash-output-azure-loganalytics { workspace_id => "<your workspace id>" workspace_key => "<your workspace key>" custom_log_table_name => "tableName" } }
Uma configuração avançada:
input { tcp { port => 514 type => syslog } } filter { grok { match => { "message" => "<%{NUMBER:PRI}>1 (?<TIME_TAG>[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}T[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})[^ ]* (?<HOSTNAME>[^ ]*) %{GREEDYDATA:MSG}" } } } output { microsoft-logstash-output-azure-loganalytics { workspace_id => "<WS_ID>" workspace_key => "${WS_KEY}" custom_log_table_name => "logstashCustomTable" key_names => ['PRI','TIME_TAG','HOSTNAME','MSG'] plugin_flush_interval => 5 } }
Uma configuração mais avançada para analisar um carimbo de data/hora personalizado e uma cadeia de caracteres JSON a partir de dados de texto não estruturados e registrar um conjunto selecionado de campos no Log Analytics com o carimbo de data/hora extraído:
# Example log line below: # Mon Nov 07 20:45:08 2022: { "name":"_custom_time_generated", "origin":"test_microsoft", "sender":"test@microsoft.com", "messages":1337} # take an input input { file { path => "/var/log/test.log" } } filter { # extract the header timestamp and the Json section grok { match => { "message" => ["^(?<timestamp>.{24}):\s(?<json_data>.*)$"] } } # parse the extracted header as a timestamp date { id => 'parse_metric_timestamp' match => [ 'timestamp', 'EEE MMM dd HH:mm:ss yyyy' ] timezone => 'Europe/Rome' target => 'custom_time_generated' } json { source => "json_data" } } # output to a file for debugging (optional) output { file { path => "/tmp/test.txt" codec => line { format => "custom format: %{message} %{custom_time_generated} %{json_data}"} } } # output to the console output for debugging (optional) output { stdout { codec => rubydebug } } # log into Log Analytics output { microsoft-logstash-output-azure-loganalytics { workspace_id => '[REDACTED]' workspace_key => '[REDACTED]' custom_log_table_name => 'RSyslogMetrics' time_generated_field => 'custom_time_generated' key_names => ['custom_time_generated','name','origin','sender','messages'] } }
Nota
Visite o repositório GitHub do plug-in de saída para saber mais sobre seu funcionamento interno, configuração e configurações de desempenho.
Etapa 3: Reinicie o Logstash
Etapa 4: Exibir logs de entrada no Microsoft Sentinel
Verifique se as mensagens estão sendo enviadas para o plug-in de saída.
No menu de navegação do Microsoft Sentinel, clique em Logs. Sob o título Tabelas , expanda a categoria Logs personalizados . Localize e clique no nome da tabela que você especificou (com um
_CL
sufixo) na configuração.Para ver os registros na tabela, consulte a tabela usando o nome da tabela como o esquema.
Monitore os logs de auditoria do plug-in de saída
Para monitorar a conectividade e a atividade do plug-in de saída do Microsoft Sentinel, habilite o arquivo de log Logstash apropriado. Consulte o documento Logstash Directory Layout para obter o local do arquivo de log.
Se você não estiver vendo nenhum dado neste arquivo de log, gere e envie alguns eventos localmente (através dos plug-ins de entrada e filtro) para garantir que o plug-in de saída esteja recebendo dados. O Microsoft Sentinel suportará apenas problemas relacionados ao plug-in de saída.
Próximos passos
Neste documento, você aprendeu como usar o Logstash para conectar fontes de dados externas ao Microsoft Sentinel. Para saber mais sobre o Microsoft Sentinel, consulte os seguintes artigos: