Problemen met CEF en Syslog oplossen via AMA-connectors

Dit artikel bevat richtlijnen voor het oplossen van problemen met Common Event Format (CEF) en syslog-gegevensverzameling met behulp van de Azure Monitor Agent (AMA) in Microsoft Sentinel. Gebruik deze handleiding om opnameproblemen met uw machines voor doorstuurservers vast te stellen en op te lossen. De opdrachten en configuraties moeten worden uitgevoerd op de machines voor logboekdoorstuurserver waarop AMA en RSyslog/Syslog-ng zijn geïnstalleerd.

Voordat u begint met het oplossen van problemen, moet u vertrouwd raken met de volgende artikelen:

Overzicht van architectuur

In het volgende diagram ziet u de gegevensstroom van logboekbronnen naar Microsoft Sentinel-/log analytics-werkruimten via RSyslog en de Azure Monitor Agent.

Diagram met gegevensstroom van bron naar Log Analytics via RSyslog en AMA.

Belangrijkste onderdelen:

  • RSyslog/Syslog-ng: ontvangt logboeken op poort 514 en stuurt deze door naar AMA
  • Azure Agent bewaken: verwerkt logboeken volgens regels voor gegevensverzameling (DCR)
  • Regel voor gegevensverzameling: definieert welke logboeken moeten worden verzameld en waar ze moeten worden verzonden

Eerste verificatiestappen

Controleren of logboeken worden ontvangen

Het kan tot 20 minuten duren voordat logboeken na configuratie worden weergegeven in Microsoft Sentinel.

  1. Voer tcpdump uit om te controleren of logboeken binnenkomen bij de doorstuurserver:

    sudo tcpdump -i any port 514 -A -vv
    
  2. Controleer of de logboekbron is geconfigureerd om berichten te verzenden naar het juiste IP-adres van de doorstuurserver.

  3. Controleer op infrastructuuronderdelen die van invloed kunnen zijn op de connectiviteit:

    • Firewalls
    • Load balancers
    • Netwerkbeveiligingsgroepen

Status van Azure Agent-extensie controleren

  1. Navigeer in de Azure Portal naar de virtuele machine van de logboek doorstuurserver.
  2. Selecteer Extensies en toepassingen.
  3. Selecteer de extensie AzureMonitorLinuxAgent .
  4. Controleer of de status De inrichting is voltooid.

Agentversie controleren

  1. Schakel op de blade AzureMonitorLinuxAgent-extensie het veld Versie in.
  2. Zorg ervoor dat de versie een van de 2-3 meest recente releases is. Zie AMA-versiedetails voor de nieuwste versies.

Opmerking

Het kan tot 5 weken duren voordat nieuwe versies na de eerste release zijn geïmplementeerd.

Probleemoplossing op agentniveau

Zorg ervoor dat de agent en RSyslog-services worden uitgevoerd.

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

RSyslog-configuratie controleren

De RSyslog-configuratie bestaat /etc/rsyslog.conf uit en bestanden in /etc/rsyslog.d/.

  1. Poortconfiguratie controleren:

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

    Verwachte uitvoer:

    module(load="imudp")
    input(type="imudp" port="514")
    module(load="imtcp")
    input(type="imtcp" port="514")
    
  2. Controleer of de AMA-doorstuurconfiguratie bestaat:

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

    Het bestand moet beginnen met:

    # Azure Monitor Agent configuration: forward logs to azuremonitoragent
    

Poortstatus controleren

Controleer of de vereiste poorten luisteren:

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

Verwachte uitvoer:

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))

Dit bevestigt:

  • RSyslog luistert op poort 514 (TCP en UDP)
  • MDSD (AMA-onderdeel) luistert op poort 28330 (TCP)

Configuratie van regel voor gegevensverzameling controleren

Controleer of de DCR juist is geconfigureerd op de agent.

Voor CEF-logboeken:

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

Voor Cisco ASA-logboeken:

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

In de uitvoer moet een JSON-tekenreeks worden weergegeven die de DCR-configuratie bevat.

Firewallregels controleren

Zorg ervoor dat firewallregels communicatie toestaan tussen:

  • Logboekbron en RSyslog (poort 514)
  • RSyslog en AMA (poort 28330)
  • AMA- en Azure-eindpunten

Configuratie van gegevensverzamelingsregel

Alle faciliteiten voor probleemoplossing inschakelen

Voor eerste probleemoplossing:

  1. Navigeer in de Azure Portal naar uw regel voor gegevensverzameling.
  2. Schakel alle syslog-faciliteiten in.
  3. Selecteer alle logboekniveaus.
  4. Schakel, indien beschikbaar, het verzamelen van berichten in zonder faciliteit of ernst.

Zie Faciliteiten en ernst selecteren voor meer informatie.

CEF-validatie (Common Event Format)

Vereisten voor CEF-indeling

CEF gebruikt Syslog als transportmechanisme met deze structuur:

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

Voorbeeld:

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

Veelvoorkomende cef-opmaakproblemen

Onjuiste koptekstindeling

  • Zorg ervoor dat de CEF-versie aanwezig is: CEF:0|
  • Alle koptekstvelden moeten aanwezig zijn en gescheiden zijn door sluistekens (|)

Onjuist teken ontsnapt

  • Sluistekens (|) in koptekstwaarden moeten worden ge escaped: \|
  • Backslashes () moeten worden ge escaped: \\
  • Gelijktekens (=) in uitbreidingen moeten worden gesnapt: \=

Ontbrekende of niet-toegewezen waarden

Zoek voor de volledige CEF-specificatie naar de documentatie 'Implementing ArcSight Common Event Format (CEF)'.

Geavanceerde probleemoplossing

Diagnostische tracering inschakelen

Waarschuwing

Schakel traceringsvlagmen alleen in voor probleemoplossingssessies. Traceringsvlagken genereren uitgebreide logboekregistratie die snel schijfruimte kan vullen.

  1. Bewerk het AMA-configuratiebestand:

    sudo vim /etc/default/azuremonitoragent
    
  2. Voeg traceringsvlagken toe aan de MDSD_OPTIONS regel:

    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. Start de agent opnieuw op:

    sudo systemctl restart azuremonitoragent
    
  4. Reproduceer het probleem en wacht een paar minuten.

  5. Bekijk de foutopsporingsgegevens in /var/opt/microsoft/azuremonitoragent/log/mdsd.info.

  6. Verwijder de traceringsvlag en start de agent opnieuw op na het oplossen van problemen.

Logboekverwerking in realtime bewaken

Binnenkomende logboeken weergeven terwijl ze worden verwerkt:

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

Filteren op specifieke logboektypen:

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

Bekijk specifieke faciliteitslogboeken:

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

Geslaagde logboekverwerking controleren

Wanneer traceringsvlaggen zijn ingeschakeld, kunt u controleren of logboeken correct worden verwerkt door de foutopsporingsuitvoer te controleren.

Voorbeeld van opname van ASA-logboek

Voor Cisco ASA-logboeken wordt geslaagde verwerking in de logboeken weergegeven als:

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

Belangrijke indicatoren voor een geslaagde verwerking:

  • De gebeurtenis wordt herkend als een CiscoASA-gebeurtenis
  • Het logboek wordt geüpload naar ODS (Operations Data Service)
  • Er wordt een aanvraag-id gegenereerd voor het bijhouden
  • De nettolading bevat correct opgemaakte JSON-gegevens

Voorbeeld van cef-logboekopname

Voor CEF-logboeken wordt geslaagde verwerking weergegeven als:

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

Belangrijke indicatoren voor een geslaagde CEF-verwerking:

  • Het gegevenstype is SECURITY_CEF_BLOB
  • De uploadaanvraag bevat een geldig eindpunt
  • De CEF-berichtstructuur blijft behouden in de nettolading
  • Metrische compressiegegevens geven aan dat de gegevens worden geoptimaliseerd voor overdracht

Belangrijk

Vergeet niet om traceringsvlagmen uit te schakelen na het voltooien van uw onderzoek om overmatig schijfgebruik te voorkomen.

Diagnostische gegevens verzamelen

Voordat u een ondersteuningsaanvraag opent, moet u de volgende informatie verzamelen:

De probleemoplosser voor AMA uitvoeren

Het script kan worden uitgevoerd met specifieke vlaggen voor verschillende logboektypen.

  • --cef: voor logboeken van common event format
  • --asa: voor Cisco ASA-logboeken
  • --ftd: voor Cisco Firepower Threat Defense-logboeken

De uitvoer wordt opgeslagen in /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]