Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
A ingestão de dados através do plug-in de saída do Logstash com as Regras de Recolha de Dados (DCRs) encontra-se atualmente em pré-visualização pública. Esta funcionalidade é fornecida sem um contrato de nível de serviço. Para obter mais informações, veja Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure.
O plug-in de saída do Logstash para o Microsoft Sentinel suporta transformações de pipeline e configuração avançada através de Regras de Recolha de Dados (DCRs). O plug-in reencaminha registos de origens de dados externas para tabelas padrão ou personalizadas no Log Analytics ou Microsoft Sentinel.
Neste artigo, saiba como configurar o plug-in do Logstash para transmitir dados para o Log Analytics ou Microsoft Sentinel com DCRs, com controlo total sobre o esquema de saída.
Com o plug-in, pode:
- Configurar os nomes e tipos das colunas.
- Execute transformações no momento da ingestão, como filtragem ou enriquecimento.
- Importe registos personalizados para uma tabela personalizada ou importe um fluxo de entrada Syslog para a tabela Syslog do Log Analytics.
A ingestão em tabelas padrão está limitada apenas a tabelas padrão suportadas para ingestão de registos personalizados.
Para saber mais sobre como trabalhar com o motor de recolha de dados do Logstash, veja Introdução ao Logstash.
Descrição geral da arquitetura
O motor logstash é composto por três componentes:
- Plug-ins de entrada: recolha personalizada de dados de várias origens.
- Filtrar plug-ins: manipulação e normalização de dados de acordo com critérios especificados.
- Extensões 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 do Logstash fornecido pelo Microsoft Sentinel abordado aqui. O plugin atual é microsoft-sentinel-log-analytics-logstash-output-plugin, v2.5.0. Pode abrir um pedido de suporte para qualquer problema relacionado com o plug-in de saída.
- A Microsoft não suporta plugins de saída Logstash de terceiros para o Microsoft Sentinel, nem qualquer outro plugin ou componente Logstash de qualquer tipo.
- Consulte os pré-requisitos do plugin Logstash para as versões suportadas do plugin.
O plug-in envia dados formatados em JSON para a área de trabalho do Log Analytics com a API de Ingestão de Registos. Os dados são ingeridos em registos personalizados ou numa tabela padrão.
- Saiba mais sobre a API de ingestão de registos.
Implementar o plug-in de saída do Microsoft Sentinel no Logstash
Para configurar o plug-in, siga estes passos:
- Revise os pré-requisitos do plugin Logstash
- Instalar o plug-in
- Criar um ficheiro de exemplo
- Criar os recursos necessários relacionados com DCR
- Configurar o ficheiro de configuração do Logstash
- Reiniciar Logstash
- Ver registos recebidos no Microsoft Sentinel
- Monitorize os registos de auditoria do plug-in de saída
Pré-requisitos do plug-in logstash
Instale uma versão suportada do Logstash. O plug-in suporta as seguintes versões do Logstash:
7.0 - 7.17.13
8.0 - 8.9 (estas versões requerem uma atualização de segurança, segundo o Logstash)
8.11 - 8.15 (estas versões requerem uma atualização de segurança, segundo o Logstash)
8.19.2 (esta versão requer uma atualização de segurança, segundo o Logstash)
9.0.8 (esta versão requer uma atualização de segurança, segundo o Logstash)
9.1.10 (esta versão requer uma atualização de segurança, segundo o Logstash)
9.2.4 - 9.2.5 (estas versões requerem uma atualização de segurança, segundo o Logstash)
9.3.3
9.4.0
Nota
Se utilizar o Logstash 8, recomendamos que desative o ECS no pipeline.
Verifique se tem uma área de trabalho do Log Analytics com, pelo menos, direitos de contribuidor.
Verifique se tem permissões para criar objetos DCR na área de trabalho.
Instalar o plug-in
O plug-in de saída Microsoft Sentinel está disponível na coleção Logstash em RubyGems.
Siga as instruções no documento do Logstash Trabalhar com plug-ins para instalar o plug-in microsoft-sentinel-log-analytics-logstash-output-plugin. Para instalar numa instalação do Logstash existente, execute o seguinte comando:
logstash-plugin install microsoft-sentinel-log-analytics-logstash-output-pluginSe o sistema Logstash não tiver acesso à Internet, siga as instruções no documento Gestão de Plug-ins Offline do Logstash para preparar e utilizar um plug-in offline. (Isto requer a criação de outro sistema Logstash com acesso à Internet.)
Criar um ficheiro de exemplo
Nesta secção, vai criar um ficheiro de exemplo num destes cenários:
- Criar um ficheiro de exemplo para registos personalizados
- Criar um ficheiro de exemplo para ingerir registos na tabela Syslog
Criar um ficheiro de exemplo para registos personalizados
Neste cenário, vai configurar o plug-in de entrada do Logstash para enviar eventos para Microsoft Sentinel. Este exemplo utiliza o plug-in de entrada do gerador para simular eventos. Pode utilizar qualquer outro plug-in de entrada.
Neste exemplo, o ficheiro de configuração do Logstash tem o seguinte aspeto:
input {
generator {
lines => [
"This is a test log message"
]
count => 10
}
}
Para criar o ficheiro de exemplo, siga estes passos:
Copie a configuração do plug-in de saída abaixo para o ficheiro de configuração do Logstash.
output { microsoft-sentinel-log-analytics-logstash-output-plugin { create_sample_file => true sample_file_path => "<enter the path to the file in which the sample data will be written>" #for example: "c:\\temp" (for windows) or "/tmp" for Linux. } }Certifique-se de que o caminho do ficheiro referenciado já existe e, em seguida, inicie o Logstash.
O plug-in escreve dez registos num ficheiro de exemplo com o nome
sampleFile<epoch seconds>.jsonno caminho configurado assim que existirem 10 eventos para amostrar ou quando o processo do Logstash sair corretamente. Por exemplo: c:\temp\sampleFile1648453501.json. Eis uma parte de um ficheiro de exemplo que o plug-in cria:[ { "host": "logstashMachine", "sequence": 0, "message": "This is a test log message", "ls_timestamp": "2022-03-28T17:45:01.690Z", "ls_version": "1" }, { "host": "logstashMachine", "sequence": 1 ... ]O plug-in adiciona automaticamente estas propriedades a todos os registos:
-
ls_timestamp: a hora em que o registo é recebido do plug-in de entrada -
ls_version: a versão do pipeline do Logstash.
Pode remover estes campos quando criar o DCR.
-
Criar um ficheiro de exemplo para ingerir registos na tabela Syslog
Neste cenário, vai configurar o plug-in de entrada do Logstash para enviar eventos do syslog para Microsoft Sentinel.
Se ainda não tiver mensagens syslog reencaminhadas para o seu computador Logstash, pode utilizar o comando logger para gerar mensagens. Por exemplo (para Linux):
logger -p local4.warn --rfc3164 --tcp -t CEF "0|Microsoft|Device|cef-test|example|data|1|here is some more data for the example" -P 514 -d -n 127.0.0.1Eis um exemplo do plug-in de entrada do Logstash:
input { syslog { port => 514 } }Copie a configuração do plug-in de saída abaixo para o ficheiro de configuração do Logstash.
output { microsoft-sentinel-log-analytics-logstash-output-plugin { create_sample_file => true sample_file_path => "<enter the path to the file in which the sample data will be written>" #for example: "c:\\temp" (for windows) or "/tmp" for Linux. } }Certifique-se de que o caminho do ficheiro já existe e, em seguida, inicie o Logstash.
O plug-in escreve dez registos num ficheiro de exemplo com o nome
sampleFile<epoch seconds>.jsonno caminho configurado assim que existirem 10 eventos para amostrar ou quando o processo do Logstash sair corretamente. Por exemplo: c:\temp\sampleFile1648453501.json. Eis uma parte de um ficheiro de exemplo que o plug-in cria:[ { "logsource": "logstashMachine", "facility": 20, "severity_label": "Warning", "severity": 4, "timestamp": "Apr 7 08:26:04", "program": "CEF:", "host": "127.0.0.1", "facility_label": "local4", "priority": 164, "message": "0|Microsoft|Device|cef-test|example|data|1|here is some more data for the example", "ls_timestamp": "2022-04-07T08:26:04.000Z", "ls_version": "1" } ]O plug-in adiciona automaticamente estas propriedades a todos os registos:
-
ls_timestamp: a hora em que o registo é recebido do plug-in de entrada -
ls_version: a versão do pipeline do Logstash.
Pode remover estes campos quando criar o DCR.
-
Criar os recursos DCR necessários
Para configurar o plug-in do Logstash baseado em DCR do Microsoft Sentinel, crie primeiro os recursos relacionados com a DCR.
Nesta secção, vai criar recursos para utilizar para o DCR, num destes cenários:
- Criar recursos DCR para ingestão numa tabela personalizada
- Criar recursos DCR para ingestão numa tabela padrão
Criar recursos DCR para ingestão numa tabela personalizada
Para ingerir os dados numa tabela personalizada, siga estes passos (com base no tutorial Enviar dados para Azure Monitorizar Registos com a API REST (portal do Azure):
Veja os pré-requisitos.
Analise e filtre dados de exemplo com o ficheiro de exemplo que criou na secção anterior.
-
Ignore o passo Enviar dados de exemplo.
Se encontrar algum problema, consulte os passos de resolução de problemas da API de Ingestão de Logs.
Criar recursos DCR para ingestão numa tabela padrão
Para ingerir os dados numa tabela padrão, como Syslog ou CommonSecurityLog, utiliza um processo baseado no tutorial Enviar dados para os Registos do Azure Monitor com a API REST (modelos do Resource Manager). Embora o tutorial explique como ingerir dados numa tabela personalizada, pode ajustar facilmente o processo para ingerir dados numa tabela padrão. Os passos abaixo indicam alterações relevantes nos passos.
Veja os pré-requisitos.
-
Ignore o passo Criar nova tabela na área de trabalho do Log Analytics. Este passo não é relevante ao ingerir dados numa tabela padrão, porque a tabela já está definida no Log Analytics.
Crie o DCR. Neste passo:
- Fornece o ficheiro de exemplo que criaste em Criar um ficheiro de exemplo.
- Utilize o ficheiro de exemplo que criou para definir a
streamDeclarationspropriedade . Cada um dos campos no ficheiro de exemplo deve ter uma coluna correspondente com o mesmo nome e o tipo adequado (veja o exemplo abaixo). - Configure o valor da
outputStreampropriedade com o nome da tabela padrão em vez da tabela personalizada. Ao contrário das tabelas personalizadas, os nomes de tabelas padrão não têm o_CLsufixo. - O prefixo do nome da tabela deve ser
Microsoft-em vez deCustom-. Neste exemplo, o valor daoutputStreampropriedade éMicrosoft-Syslog.
-
Ignore o passo Enviar dados de exemplo.
Se encontrar algum problema, consulte os passos de resolução de problemas da API de Ingestão de Logs.
Exemplo: DCR que ingere dados na tabela Syslog
Tenha estes pontos em mente:
- Os
streamDeclarationsnomes e tipos de coluna devem ser os mesmos que os campos de ficheiro de exemplo, mas não tem de especificar todos. Por exemplo, no DCR abaixo, os camposPRI,typeels_versionsão omitidos da colunastreamDeclarations. - A
dataflowspropriedade transforma a entrada no formato de tabela do Syslog e define ooutputStreamparaMicrosoft-Syslog.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"dataCollectionRuleName": {
"type": "String",
"metadata": {
"description": "Specifies the name of the Data Collection Rule to create."
}
},
"location": {
"defaultValue": "[resourceGroup().location]",
"type": "String",
"metadata": {
"description": "Specifies the location in which to create the Data Collection Rule."
}
},
"workspaceResourceId": {
"type": "String",
"metadata": {
"description": "Specifies the Azure resource ID of the Log Analytics workspace to use."
}
}
},
"resources": [
{
"type": "Microsoft.Insights/dataCollectionRules",
"apiVersion": "2021-09-01-preview",
"name": "[parameters('dataCollectionRuleName')]",
"location": "[parameters('location')]",
"properties": {
"streamDeclarations": {
"Custom-SyslogStream": {
"columns": [
{ "name": "ls_timestamp", "type": "datetime" },
{ "name": "timestamp", "type": "datetime" },
{ "name": "message", "type": "string" },
{ "name": "facility_label", "type": "string" },
{ "name": "severity_label", "type": "string" },
{ "name": "host", "type": "string" },
{ "name": "logsource", "type": "string" }
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "[parameters('workspaceResourceId')]",
"name": "clv2ws1"
}
]
},
"dataFlows": [
{
"streams": ["Custom-SyslogStream"],
"destinations": ["clv2ws1"],
"transformKql": "source | project TimeGenerated = ls_timestamp, EventTime = todatetime(timestamp), Computer = logsource, HostName = logsource, HostIP = host, SyslogMessage = message, Facility = facility_label, SeverityLevel = severity_label",
"outputStream": "Microsoft-Syslog"
}
]
}
}
],
"outputs": {
"dataCollectionRuleId": {
"type": "String",
"value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
}
}
}
Configurar o ficheiro de configuração do Logstash
O plug-in suporta dois métodos de autenticação: principal de serviço (credenciais de cliente) e identidade gerida (sem palavra-passe). Escolha o método que se adequa ao seu ambiente.
Autenticação do principal de serviço
Para configurar o ficheiro de configuração Logstash para ingerir os registos numa tabela personalizada usando autenticação de principal de serviço, recupere os seguintes valores: client_id, client_secret, tenant_id, data_collection_endpoint, dcr_id, e stream_name.
| Campo | Como obter |
|---|---|
client_id |
O Application (client) ID valor que cria no passo 3 quando cria os recursos DCR, de acordo com o tutorial do portal Azure ou o tutorial de templates do Resource Manager. |
client_secret |
O valor secreto do cliente que crias no passo 5 quando crias os recursos DCR, de acordo com o tutorial do portal Azure ou o tutorial dos modelos do Resource Manager. |
tenant_id |
O ID de inquilino da sua subscrição. Pode encontrar o ID do tenant em Home > Microsoft Entra ID > Descrição geral > Informações básicas. |
data_collection_endpoint |
O valor do logsIngestion URI no passo 3 quando crias os recursos DCR, de acordo com o tutorial do portal Azure ou o tutorial de templates do Resource Manager. |
dcr_id |
O valor do DCR immutableId no passo 6 quando cria os recursos do DCR, de acordo com o tutorial do portal Azure ou o tutorial de templates do Resource Manager. |
stream_name |
Para tabelas personalizadas, conforme explicado no passo 6, ao criar os recursos DCR, aceda à visualização JSON do DCR e copie a propriedade dataFlows>streams. Veja o stream_name exemplo de configuração do plugin de saída principal de serviço. Para tabelas padrão, o valor é Custom-SyslogStream. |
Depois de obter os valores necessários:
- Substitua a secção de saída do ficheiro de configuração logstash que criou no passo anterior pelo exemplo abaixo.
- Substitua as cadeias de caracteres de marcador de posição no exemplo abaixo pelos valores que recuperou.
- Certifique-se de que altera o
create_sample_fileatributo parafalse.
Exemplo: Configuração do plug-in de saída do principal de serviço
output {
microsoft-sentinel-log-analytics-logstash-output-plugin {
client_id => "<enter your client_id value here>"
client_secret => "<enter your client_secret value here>"
tenant_id => "<enter your tenant id here>"
data_collection_endpoint => "<enter your logsIngestion URI here>"
dcr_id => "<enter your DCR immutableId here>"
stream_name => "<enter your stream name here>"
create_sample_file=> false
sample_file_path => "c:\\temp"
}
}
Autenticação de identidade gerida (sem palavra-passe)
Quando não fornece credenciais de principal de serviço (client_id, , e tenant_id), o plugin autentica-se usando DefaultAzureCredential a partir do client_secretSDK do Azure.
DefaultAzureCredential Tenta uma sequência de métodos de autenticação e usa o primeiro que tem sucesso. Num ambiente de servidor, os métodos relevantes são tentados nesta ordem:
-
Variáveis de ambiente: Lê credenciais de variáveis de ambiente como
AZURE_CLIENT_ID,AZURE_TENANT_ID, eAZURE_CLIENT_SECRETpara autenticar como um principal de serviço. -
Identidade da carga de trabalho: Se o plugin correr num host Azure com a identidade da carga de trabalho ativada (por exemplo, AKS com a
AZURE_FEDERATED_TOKEN_FILEvariável de ambiente definida), o plugin realiza uma troca de tokens OIDC. - Identidade gerida: Se o anfitrião tiver uma identidade gerida ativada, o plugin autentica-se usando essa identidade. Este método abrange VMs do Azure, Conjuntos de Dimensionamento de Máquinas Virtuais e servidores habilitados pelo Azure Arc.
Para a sequência completa de credenciais que DefaultAzureCredential tenta, veja Cadeias de credenciais na biblioteca Azure Identity for Java.
Configuração necessária para a identidade gerida:
| Campo | Descrição |
|---|---|
data_collection_endpoint |
Cadeia. O URI de logsIngestion da sua DCE. |
dcr_id |
Cadeia. O immutableId do DCR. |
stream_name |
Cadeia. O nome do fluxo de dados. |
Exemplo: Identidade gerida
output {
microsoft-sentinel-log-analytics-logstash-output-plugin {
data_collection_endpoint => "<enter your DCE logsIngestion URI here>"
dcr_id => "<enter your DCR immutableId here>"
stream_name => "<enter your stream name here>"
}
}
Nota
- Ao utilizar Azure Arc, o processo do Logstash tem de ser executado como um utilizador que seja membro do
himdsgrupo para ler o token de desafio. Para obter mais informações, consulte a documentação da identidade gerida do Azure Arc. - Por motivos de segurança, não indique implicitamente valores de configuração confidenciais, como
client_secretno ficheiro de configuração do Logstash. Armazene informações confidenciais num Logstash KeyStore. - Quando define uma cadeia vazia como um valor para uma definição de proxy, esta desativa qualquer definição de proxy ao nível do sistema.
Configuração opcional
| Key | Default | Descrição |
|---|---|---|
azure_cloud |
AzurePublicCloud |
Ambiente cloud Azure. |
proxy |
(nenhum) | Opcional. URL base do proxy HTTP aplicado a todo o tráfego de plugins. Formato: [http://][user:password@]host:port. Quando desconfigurado, não é usado proxy e o comportamento mantém-se inalterado. |
proxy_aad |
(valor de proxy) |
Opcional. URL proxy HTTP usada apenas para autenticação do Microsoft Entra ID e tráfego de tokens. Recorre a proxy quando não estiver definido. |
proxy_endpoint |
(valor de proxy) |
Opcional. URL do proxy HTTP utilizada apenas para o tráfego destinado ao Ponto Final de Recolha de Dados. Recorre a proxy quando não estiver definido. |
keys_to_keep |
(todos) | Array de nomes de campos a enviar (filtragem de subconjuntos). |
max_retries_num |
3 |
Número máximo de tentativas de reenvio para envios sem êxito. |
initial_wait_time_seconds |
1 |
Intervalo de espera inicial entre tentativas. |
connect_timeout_seconds |
15 |
Tempo limite para estabelecer a ligação ao endpoint de ingestão. Limita durante quanto tempo um carregamento pode ficar bloqueado na fase de ligação; se ocorrer um tempo de espera esgotado, a operação é repetida. |
write_timeout_seconds |
60 |
Tempo limite para enviar o corpo do pedido para o endpoint de ingestão. Limita durante quanto tempo um carregamento pode bloquear na fase de escrita; qualquer timeout resultante é repetido. |
max_graceful_shutdown_time_seconds |
60 |
Tempo máximo de espera para encerramento normal. |
max_waiting_time_for_batch_seconds |
10 |
Tempo máximo de espera antes de descarregar um lote. |
max_waiting_for_unifier_time_seconds |
10 |
Tempo máximo de espera antes de esvaziar o unificador. |
max_batch_size |
10000 |
Número máximo de eventos por lote. Quando um lote atinge este tamanho, é imediatamente descartado, independentemente da janela temporal. |
input_queue_capacity |
50000 |
Capacidade máxima da fila de entrada. Limita o uso de memória sob ingestão de alto volume. Quando estiver cheio, é aplicada contrapressão ao pipeline do Logstash. |
internal_queue_capacity |
500 |
Capacidade máxima das filas internas entre trabalhadores batcher, unificador e remetente. Limita o uso de memória para lotes em voo. |
worker_sleep_time_millis |
10 |
Intervalo entre iterações do processo de trabalho. |
batcher_workers_count |
(automático) | Número de threads do agrupador. |
sender_workers_count |
(automático) | Número de tópicos do remetente. |
unifier_workers_count |
(automático) | Número de tópicos unificadores. |
id |
None | Uma etiqueta de identificação personalizada a ser adicionada aos registos de lotes enviados. |
Reiniciar Logstash
Reinicie o Logstash com a configuração atualizada do plug-in de saída. Verifique se os dados são ingeridos na tabela correta de acordo com a configuração do DCR.
Ver registos recebidos no Microsoft Sentinel
Para verificar se os dados de registo chegam à área de trabalho, siga estes passos:
Verifique se as mensagens estão a ser enviadas para o plug-in de saída.
No menu de navegação Microsoft Sentinel, selecione Registos. No cabeçalho Tabelas , expanda a categoria Registos Personalizados . Localize e selecione o nome da tabela que especificou (com um
_CLsufixo) na configuração.
Para ver registos na tabela, consulte a tabela com o nome da tabela como esquema.
Monitorize os registos de auditoria do plug-in de saída
Para monitorizar a conectividade e a atividade do plug-in de saída do Microsoft Sentinel, ative o ficheiro de registo do Logstash adequado. Veja o documento Esquema de Diretório do Logstash para a localização do ficheiro de registo.
Se não vir dados neste ficheiro de registo, gere e envie alguns eventos localmente através dos plug-ins de entrada e filtro para se certificar de que o plug-in de saída está a receber dados. Microsoft Sentinel suporta apenas problemas relacionados com o plug-in de saída.
Segurança de rede
Defina as definições de rede e ative o isolamento de rede para o plug-in de saída do Microsoft Sentinel Logstash.
Etiquetas de serviço de rede virtual
O plug-in de saída do Microsoft Sentinel suporta etiquetas de serviço de rede virtual do Azure. São necessárias etiquetas AzureMonitor e AzureActiveDirectory .
As etiquetas de serviço da Rede Virtual do Azure podem ser utilizadas para definir controlos de acesso de rede em grupos de segurança de rede, Azure Firewall e rotas definidas pelo utilizador. Utilize etiquetas de serviço em vez de endereços IP específicos quando criar regras e rotas de segurança. Para cenários em que não é possível utilizar Azure Rede Virtual etiquetas de serviço, os requisitos da firewall são indicados abaixo.
Requisitos da firewall
A tabela seguinte lista os requisitos de firewall para cenários em que não é possível utilizar Azure etiquetas de serviço de rede virtual.
| Nuvem | Ponto final | Objetivo | Porta | Direção | Ignorar inspeção HTTPS |
|---|---|---|---|---|---|
| Azure Comercial | https://login.microsoftonline.com |
Servidor de autorização (o plataforma de identidades da Microsoft) | Porta 443 | De saída | Sim |
| Azure Comercial | https://<data collection endpoint name>.<Azure cloud region>.ingest.monitor.azure.com |
Ponto Final de recolha de dados | Porta 443 | De saída | Sim |
| Azure Government | https://login.microsoftonline.us |
Servidor de autorização (o plataforma de identidades da Microsoft) | Porta 443 | De saída | Sim |
| Azure Government | Substitua ".com" acima por ".us" | Ponto Final de recolha de dados | Porta 443 | De saída | Sim |
| Microsoft Azure operado pela 21Vianet | https://login.chinacloudapi.cn |
Servidor de autorização (o plataforma de identidades da Microsoft) | Porta 443 | De saída | Sim |
| Microsoft Azure operado pela 21Vianet | Substitua ".com" acima por ".cn" | Ponto Final de recolha de dados | Porta 443 | De saída | Sim |
Histórico de versões do plug-in
2.5.0
- Adicionada configuração opcional de proxy por plugin para tráfego de autenticação e ingestão usando
proxy,proxy_aad, eproxy_endpoint. - Atualizados os componentes do handler Netty, HTTP, HTTP/2 e DNS de 4.1.133.Final para 4.1.136.Final.
- Atualizado o Jackson Databind e o Jackson Core de 2.18.6 para 2.18.8.
2.4.0
- As threads de trabalho passam agora a executar iterações limitadas, programadas pelo executor: as exceções recuperáveis são registadas e a thread retoma a execução no ciclo seguinte; os erros fatais da JVM são registados e relançados.
- Corrigido o encerramento ordeiro para que os lotes em curso sejam escoados (agrupadores, depois unificadores e depois remetentes) antes de os trabalhadores pararem, dentro do limite de
max_graceful_shutdown_time_seconds. - Adicionados tempos limite de carregamento configuráveis
connect_timeout_seconds(predefinição: 15) ewrite_timeout_seconds(predefinição: 60); as tentativas com tempos limite de ligação e de escrita são repetidas. - Adicionei ID de thread, tipo de exceção, tamanho de lote e fluxo DCR aos registos de falhas de lote.
2.3.3
- Corrigida a perda de fidelidade dos tipos numéricos e booleanos: os campos associados aos tipos internos JRuby do Logstash (por exemplo, portas e contagens de bytes) são agora preservados como números e booleanos JSON nativos, em vez de serem convertidos em cadeias de caracteres, garantindo uma ingestão fiável nos DCRs com colunas tipadas.
2.3.2
- Corrigida a morte silenciosa da thread de trabalho causada por exceções não capturadas no ciclo de processamento da thread de trabalho.
- Corrigido o NullPointerException no SenderWorker quando o Azure devolve um LogsUploadException com uma resposta HTTP nula.
- Adicionou um tratamento resiliente de erros com rastreamento consecutivo de erros para reduzir a falha permanente dos trabalhadores.
- Valor de configuração opcional
idadicionado para telemetria. - Adicionei fluxo DCR ao registo de lotes enviados.
2.3.0
- Funcionalidade ativada com o Logstash 9.4.
- Versões de dependência removidas para bibliotecas externas (azure-sdk-bom, logback, slf4j, Netty).
2.2.1
- Adiciona uma linha de registo ao nível da informação quando os lotes são enviados com sucesso.
2.2.0
- Adiciona a possibilidade de usar valores de configuração novos ou antigos.
2.1.2
- Atualizações da documentação.
2.1.0
- Correção da normalização de eventos.
2.0.0
- Refatorizar o plug-in de Ruby para Java.
- Adicionada a autenticação com identidade gerida.
- Moveu a base de código do GitHub para Azure DevOps.
- Base de código fechada.
1.2.0
- Adiciona suporte para autenticação com identidade gerida para VMs/VMSS do Azure (identidade atribuída pelo sistema e identidade atribuída pelo utilizador através do IMDS).
- Adiciona suporte de identidade de carga de trabalho do AKS através da troca de tokens OIDC.
- Adiciona suporte para identidade gerida do Azure Arc em servidores híbridos e no local.
- Deteta automaticamente o método de autenticação em tempo de execução com base no ambiente (variáveis de ambiente de identidade da carga de trabalho, agente Arc ou recurso ao IMDS).
- Migra o cliente HTTP de
exconpararest-clientpara melhorar a compatibilidade com o ecossistema de plug-ins do JRuby e do Logstash. - Altera as referências a Azure Active Directory para Microsoft Entra ID.
1.1.4
- Limita
excona versão da biblioteca a uma versão inferior a 1.0.0 para garantir que a porta é sempre utilizada ao utilizar um proxy.
1.1.3
- Substitui a
rest-clientbiblioteca utilizada para ligar a Azure pelaexconbiblioteca.
1.1.1
- Adiciona suporte para Azure cloud do Governo dos EUA e microsoft Azure operado pela 21Vianet na China.
1.1.0
- Permite definir diferentes valores de proxy para ligações de API.
- Atualiza a versão da API de ingestão de registos para 2023-01-01.
- Muda o nome do plug-in para microsoft-sentinel-log-analytics-logstash-output-plugin.
1.0.0
- A primeira versão do plug-in de saída do Logstash para o Microsoft Sentinel. Este plug-in utiliza Regras de Recolha de Dados (DCRs) com a API de Ingestão de Registos do Azure Monitor.
Problemas conhecidos
Ao utilizar o Logstash instalado numa imagem do Docker do Lite Ubuntu, poderá ser apresentado o seguinte aviso:
java.lang.RuntimeException: getprotobyname_r failed
Para resolver este erro, instale o pacote netbase no dockerfile:
USER root
RUN apt install netbase -y
Para obter mais informações, veja Regressão JNR no Logstash 7.17.0 (Docker).
Se a taxa de eventos do seu ambiente for baixa, aumente o valor de max_waiting_time_for_batch_seconds e max_waiting_for_unifier_time_seconds para 60 ou mais. Pode monitorizar a carga útil de ingestão utilizando métricas DCR. Para mais informações sobre as variáveis de tempo de espera, consulte a tabela de configuração Opcional .
Limitações
A ingestão em tabelas padrão está limitada apenas a tabelas padrão suportadas para ingestão de registos personalizados.
As colunas do fluxo de entrada na
streamDeclarationspropriedade têm de começar com uma letra. Se iniciar uma coluna com outros carateres (por exemplo@, ou_), a operação falhará.O
TimeGeneratedcampo datetime é obrigatório. Tem de incluir este campo na transformação KQL.Para possíveis problemas adicionais, consulte os passos de resolução de problemas da API de Ingestão de Logs.