Partilhar via


Solucionar problemas do CEF e Syslog através de conectores do AMA

Este artigo fornece orientações para resolução de problemas para a recolha de dados Common Event Format (CEF) e Syslog utilizando o Azure Monitor Agent (AMA) no Microsoft Sentinel. Use este guia para diagnosticar e resolver problemas de ingestão com as suas máquinas de transferência de logs. Os comandos e configurações devem ser executados nas máquinas de encaminhamento de log onde estão instalados AMA e RSyslog/Syslog-ng.

Antes de começar a resolver problemas, familiarize-se com os seguintes artigos:

Visão geral da arquitetura

O diagrama seguinte ilustra o fluxo de dados das fontes de log para os espaços de trabalho Microsoft Sentinel/log analytics via RSyslog e o Azure Monitor Agent.

Diagrama que mostra o fluxo de dados da fonte para a Log Analytics via RSyslog e AMA.

Componentes-chave:

  • RSyslog/Syslog-ng: Recebe registos na porta 514 e encaminha-os para AMA
  • Azure Monitor Agent: Processa registos de acordo com as Regras de Recolha de Dados (DCR)
  • Regra de Recolha de Dados: Define quais registos recolher e para onde os enviar

Passos iniciais de verificação

Verifique se os registos estão a ser recebidos

Os registos podem demorar até 20 minutos a aparecer no Microsoft Sentinel após a configuração.

  1. Execute o tcpdump para verificar se os registos estão a chegar ao encaminhador:

    sudo tcpdump -i any port 514 -A -vv
    
  2. Verifique se a fonte do seu registo está configurada para enviar mensagens para o endereço IP correto do encaminhador.

  3. Verifique se existem componentes de infraestrutura que possam afetar a conectividade:

    • Firewalls
    • Balanceadores de carga
    • Grupos de segurança de rede

Verificar o estado da extensão Azure Monitor Agent

  1. No portal do Azure, navegue até à sua máquina virtual de log forwarder.
  2. Selecione Extensões + aplicações.
  3. Selecione a extensão AzureMonitorLinuxAgent .
  4. Verifique se o Estado indica que o provisionamento foi bem-sucedido.

Verificar versão do agente

  1. Na extensão AzureMonitorLinuxAgent , verifique o campo Version .
  2. Certifique-se de que a versão é uma das 2-3 versões mais recentes. Consulte os detalhes da versão AMA para as versões mais recentes.

Observação

As novas versões podem demorar até 5 semanas a serem lançadas após o lançamento inicial.

Resolução de problemas ao nível do agente

Certifique-se de que o agente e os serviços RSyslog estão a funcionar.

sudo systemctl status azuremonitoragent
sudo systemctl status rsyslog
sudo systemctl status syslog-ng.service # If using Syslog-ng

Verificar a configuração do RSyslog

A configuração RSyslog consiste em /etc/rsyslog.conf e ficheiros em /etc/rsyslog.d/.

  1. Verificar a configuração das portas:

    grep -E 'imudp|imtcp' /etc/rsyslog.conf
    

    Resultados esperados:

    module(load="imudp")
    input(type="imudp" port="514")
    module(load="imtcp")
    input(type="imtcp" port="514")
    
  2. Verifique se a configuração de encaminhamento AMA existe:

    cat /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf
    

    O ficheiro deve começar com:

    # Azure Monitor Agent configuration: forward logs to azuremonitoragent
    

Verificar o estado da porta

Verifique se as portas necessárias estão a ouvir:

sudo ss -lnp | grep -E "28330|514"

Resultados esperados:

udp   UNCONN 0      0      0.0.0.0:514         0.0.0.0:*    users:(("rsyslogd",pid=12289,fd=5))
tcp   LISTEN 0      10     127.0.0.1:28330     0.0.0.0:*    users:(("mdsd",pid=1424,fd=1363))
tcp   LISTEN 0      25     0.0.0.0:514         0.0.0.0:*    users:(("rsyslogd",pid=12289,fd=7))

Isto confirma:

  • O RSyslog está a ouvir na porta 514 (TCP e UDP)
  • O MDSD (componente AMA) está a ouvir na porta 28330 (TCP)

Verifique a configuração da regra de coleção de dados

Verifica se o DCR está devidamente configurado no agente.

Para os registos CEF:

sudo grep -i -r "SECURITY_CEF_BLOB" /etc/opt/microsoft/azuremonitoragent/config-cache/configchunks

Para registos Cisco ASA:

sudo grep -i -r "SECURITY_CISCO_ASA_BLOB" /etc/opt/microsoft/azuremonitoragent/config-cache/configchunks

A saída deve mostrar uma string JSON contendo a configuração DCR.

Rever regras de firewall

Garantir que as regras de firewall permitem a comunicação entre:

  • Origem do registo e RSyslog (porta 514)
  • RSyslog e AMA (porta 28330)
  • Endpoints AMA e Azure

Configuração da Regra de Recolha de Dados

Ativar todas as funcionalidades para resolução de problemas

Para a resolução inicial de problemas:

  1. No portal Azure, navegue até à sua Regra de Recolha de Dados.
  2. Ativar todas as funcionalidades de syslog.
  3. Seleciona todos os níveis de log.
  4. Se disponível, ative a recolha de mensagens sem qualquer funcionalidade ou gravidade.

Para mais informações, consulte Instalações selecionadas e severidades.

Validação do Formato Comum de Eventos (CEF)

Requisitos do formato CEF

O CEF utiliza o Syslog como mecanismo de transporte com esta estrutura:

<Priority>Timestamp Hostname CEF:Version|Device Vendor|Device Product|Device Version|Device Event Class ID|Name|Severity|[Extension]

Exemplo:

Jan 18 11:07:53 host CEF:0|Vendor|Product|1.0|100|EventName|5|src=10.0.0.1 dst=10.0.0.2

Problemas comuns de formatação CEF

Formato incorreto do cabeçalho

  • Garantir que a versão CEF está presente: CEF:0|
  • Todos os campos de cabeçalho devem estar presentes e delimitados por caracteres pipe (|)

Personagem impróprio a fugir

  • Caracteres de pipe (|) nos valores do cabeçalho devem ser escapados: \|
  • Barras inversas () devem ser evitadas: \\
  • Sinais iguais (=) em extensões devem ser escapados: \=

Valores em falta ou não mapeados

Para a especificação completa do CEF, pesquise pela documentação "Implementing ArcSight Common Event Format (CEF)".

Resolução de problemas avançados

Ativar o rastreio de diagnóstico

Advertência

Ative as flags de rastreamento apenas para sessões de resolução de problemas. Os trace flags geram registos extensos que podem preencher rapidamente o espaço do disco.

  1. Editar o ficheiro de configuração AMA:

    sudo vim /etc/default/azuremonitoragent
    
  2. Adicionar flags de traço à linha MDSD_OPTIONS:

    export MDSD_OPTIONS="-A -c /etc/opt/microsoft/azuremonitoragent/mdsd.xml -d -r $MDSD_ROLE_PREFIX -S $MDSD_SPOOL_DIRECTORY/eh -L $MDSD_SPOOL_DIRECTORY/events -e $MDSD_LOG_DIR/mdsd.err -w $MDSD_LOG_DIR/mdsd.warn -o $MDSD_LOG_DIR/mdsd.info -T 0x2002"
    
  3. Reiniciar o agente:

    sudo systemctl restart azuremonitoragent
    
  4. Reproduz o problema e espera alguns minutos.

  5. Revise a informação de debug em /var/opt/microsoft/azuremonitoragent/log/mdsd.info.

  6. Remova a bandeira de rastreio e reinicie o agente após a resolução de problemas.

Monitorizar o processamento de registos em tempo real

Veja os registos recebidos à medida que são processados:

tail -f /var/opt/microsoft/azuremonitoragent/log/mdsd.info

Filtre por tipos específicos de log:

sudo tail -f /var/opt/microsoft/azuremonitoragent/log/mdsd.* | grep -a "CEF"

Consulte registos específicos da instalação:

grep local0.info /var/opt/microsoft/azuremonitoragent/log/mdsd.info

Verificar o sucesso do processamento de logs

Quando as flags de traço estão ativadas, pode verificar se os registos estão a ser processados corretamente examinando a saída da depuração.

Exemplo de ingestão de registos ASA

Para registos Cisco ASA, o processamento bem-sucedido aparece nos registos como:

2022-01-18T22:00:14.8650520Z: virtual bool Pipe::SyslogCiscoASAPipeStage::PreProcess(std::shared_ptr<CanonicalEntity>) (.../mdsd/PipeStages.cc +604) [PipeStage] Processing CiscoASA event '%ASA-1-105003: (Primary) Monitoring on 123'

2022-01-18T22:00:14.8651330Z: virtual void ODSUploader::execute(const MdsTime&) (.../mdsd/ODSUploader.cc +325) Uploading 1 SECURITY_CISCO_ASA_BLOB rows to ODS.

2022-01-18T22:00:14.8653090Z: int ODSUploader::UploadFixedTypeLogs(const string&, const string&, const std::function<void(bool, long unsigned int, int, long unsigned int)>&, int, uint64_t) (.../mdsd/ODSUploader.cc +691) Uploading to ODS with request 3333-44dd-555555eeeeee Host https://00001111-aaaa-2222-bbbb-3333cccc4444.ods.opinsights.azure.com for datatype SECURITY_CISCO_ASA_BLOB. Payload: {"DataType":"SECURITY_CISCO_ASA_BLOB","IPName":"SecurityInsights","ManagementGroupId":"00000000-0000-0000-0000-000000000002","sourceHealthServiceId":"2c2c2c2c-3333-dddd-4444-5e5e5e5e5e5e","type":"JsonData","DataItems":[{"Facility":"local0","SeverityNumber":"6","Timestamp":"2022-01-14T23:28:49.775619Z","HostIP":"127.0.0.1","Message":" (Primary) Monitoring on 123","ProcessId":"","Severity":"info","Host":"localhost","ident":"%ASA-1-105003"}]}. Uncompressed size: 443. Request size: 322

Indicadores-chave de processamento bem-sucedido:

  • O evento é reconhecido como um evento da CiscoASA
  • O registo é carregado para o ODS (Operations Data Service)
  • É gerado um ID de pedido para rastreio
  • A carga útil contém dados JSON devidamente formatados

Exemplo de ingestão de registos CEF

Para registos CEF, o processamento bem-sucedido aparece como:

2022-01-14T23:09:13.9087860Z: int ODSUploader::UploadFixedTypeLogs(const string&, const string&, const std::function<void(bool, long unsigned int, int, long unsigned int)>&, int, uint64_t) (.../mdsd/ODSUploader.cc +691) Uploading to ODS with request 3333-44dd-555555eeeeee Host https://00001111-aaaa-2222-bbbb-3333cccc4444.ods.opinsights.azure.com for datatype SECURITY_CEF_BLOB. Payload: {"DataType":"SECURITY_CEF_BLOB","IPName":"SecurityInsights","ManagementGroupId":"00000000-0000-0000-0000-000000000002","sourceHealthServiceId":"2c2c2c2c-3333-dddd-4444-5e5e5e5e5e5e","type":"JsonData","DataItems":[{"Facility":"local0","SeverityNumber":"6","Timestamp":"2022-01-14T23:08:49.731862Z","HostIP":"127.0.0.1","Message":"0|device1|PAN-OS|8.0.0|general|SYSTEM|3|rt=Nov 04 2018 07:15:46 GMTcs3Label=Virtual","ProcessId":"","Severity":"info","Host":"localhost","ident":"CEF"}]}. Uncompressed size: 482. Request size: 350

Indicadores-chave do processamento bem-sucedido da CEF:

  • O tipo de dado é SECURITY_CEF_BLOB
  • O pedido de upload inclui um endpoint válido
  • A estrutura da mensagem CEF é preservada na carga útil
  • As métricas de compressão mostram que os dados estão a ser otimizados para transferência

Importante

Lembre-se de desativar as bandeiras de rastreio após concluir a investigação para evitar o uso excessivo do disco.

Coletar informações de diagnóstico

Antes de abrir um caso de apoio, recolha a seguinte informação:

Executa o solucionador de problemas da AMA

O script pode ser executado com flags específicos para diferentes tipos de log.

  • --cef: Para registos de formatos de eventos comuns
  • --asa: Para registos Cisco ASA
  • --ftd: Para registos de Defesa contra Ameaças de Poder de Fogo Cisco

A saída é guardada em /tmp/troubleshooter_output_file.log.

sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py && sudo python3 Sentinel_AMA_troubleshoot.py [--cef | --asa | --ftd]