Foretag fejlfinding af CEF og Syslog via AMA-connectors

Denne artikel indeholder fejlfindingsvejledning til CEF (Common Event Format) og Syslog-dataindsamling ved hjælp af AMA (Azure Monitor Agent) i Microsoft Sentinel. Brug denne vejledning til at diagnosticere og løse problemer med indtagelse af dine log forwarder-maskiner. Kommandoerne og konfigurationerne skal køres på de logfiler, hvor AMA og RSyslog/Syslog-ng er installeret.

Før du begynder fejlfindingen, skal du blive fortrolig med følgende artikler:

Oversigt over arkitektur

I følgende diagram illustreres dataflowet fra logkilder til Microsoft Sentinel/loganalysearbejdsområder via RSyslog og Azure Monitor Agent.

Diagram, der viser dataflow fra kilde til Log Analytics via RSyslog og AMA.

Nøglekomponenter:

  • RSyslog/Syslog-ng: Modtager logge på port 514 og videresender dem til AMA
  • Azure Monitor Agent: Behandler logfiler i henhold til regler for dataindsamling (DCR)
  • Regel for dataindsamling: Definerer, hvilke logge der skal indsamles, og hvor de skal sendes

Indledende bekræftelsestrin

Kontrollér, at der modtages logfiler

Det kan tage op til 20 minutter, før logge vises i Microsoft Sentinel efter konfigurationen.

  1. Kør tcpdump for at bekræfte, at loggene ankommer til videresenderen:

    sudo tcpdump -i any port 514 -A -vv
    
  2. Kontrollér, at din logkilde er konfigureret til at sende meddelelser til den korrekte IP-adresse til videresendelse.

  3. Kontrollér, om der er infrastrukturkomponenter, der kan påvirke forbindelsen:

    • Firewalls
    • Belastningsjusteringer
    • Netværkssikkerhedsgrupper

Kontrollér Azure monitoragentens udvidelsesstatus

  1. I Azure Portal skal du navigere til din virtuelle maskine til videresendelse af logfiler.
  2. Vælg Udvidelser + programmer.
  3. Vælg udvidelsen AzureMonitorLinuxAgent .
  4. Kontrollér, at Status viser , at klargøringen lykkedes.

Bekræft agentversion

  1. På bladet AzureMonitorLinuxAgent-udvidelse skal du markere feltet Version .
  2. Kontrollér, at versionen er en af de 2-3 nyeste versioner. Se oplysninger om AMA-version for at få de nyeste versioner.

Bemærk!

Det kan tage op til fem uger at udrulle nye versioner efter den første udgivelse.

Fejlfinding på agentniveau

Sørg for, at agenten og RSyslog-tjenesterne kører.

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

Kontrollér konfigurationen af RSyslog

RSyslog-konfigurationen består af /etc/rsyslog.conf og filer i /etc/rsyslog.d/.

  1. Kontrollér portkonfigurationen:

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

    Forventet output:

    module(load="imudp")
    input(type="imudp" port="514")
    module(load="imtcp")
    input(type="imtcp" port="514")
    
  2. Kontrollér, at konfigurationen af AMA-videresendelse findes:

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

    Filen skal starte med:

    # Azure Monitor Agent configuration: forward logs to azuremonitoragent
    

Kontrollér portstatus

Kontrollér, at de nødvendige porte lytter:

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

Forventet output:

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

Dette bekræfter:

  • RSyslog lytter på port 514 (TCP og UDP)
  • MDSD (AMA-komponent) lytter på port 28330 (TCP)

Bekræft konfiguration af regel for dataindsamling

Kontrollér, om DCR er konfigureret korrekt på agenten.

For CEF-logfiler:

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

For Cisco ASA-logge:

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

Outputtet skal vise en JSON-streng, der indeholder DCR-konfigurationen.

Gennemse firewallregler

Sørg for, at firewallregler tillader kommunikation mellem:

  • Logkilde og RSyslog (port 514)
  • RSyslog og AMA (port 28330)
  • AMA- og Azure slutpunkter

Konfiguration af regel for dataindsamling

Aktivér alle faciliteter til fejlfinding

Til indledende fejlfinding:

  1. I Azure Portal skal du navigere til din regel for dataindsamling.
  2. Aktivér alle syslog-faciliteter.
  3. Vælg alle logniveauer.
  4. Hvis det er muligt, skal du aktivere indsamling af meddelelser uden faciliteter eller alvorsgrad.

Du kan få flere oplysninger under Vælg faciliteter og forskellige muligheder.

Validering af CEF (Common Event Format)

Krav til CEF-format

CEF bruger Syslog som en transportmekanisme med denne struktur:

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

Eksempel:

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

Almindelige problemer med CEF-formatering

Forkert headerformat

  • Kontrollér, at CEF-versionen findes: CEF:0|
  • Alle headerfelter skal være til stede og afgrænset af pipetegn (|)

Forkert escape-tegn

  • Pipetegn (|) i headerværdier skal have escape-tegn: \|
  • Omvendte skråstreger () skal have escape-tegn: \\
  • Lighedstegn (=) i filtypenavne skal escapes: \=

Manglende eller ikke-tilknyttede værdier

Du kan finde den komplette CEF-specifikation ved at søge efter dokumentationen "Implementing ArcSight Common Event Format (CEF)".

Avanceret fejlfinding

Aktivér diagnosticeringssporing

Advarsel

Aktivér kun sporingsflag for fejlfindingssessioner. Sporingsflag genererer omfattende logføring, der hurtigt kan fylde diskplads.

  1. Rediger AMA-konfigurationsfilen:

    sudo vim /etc/default/azuremonitoragent
    
  2. Føj sporingsflag til linjen 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. Genstart agenten:

    sudo systemctl restart azuremonitoragent
    
  4. Genskab problemet, og vent et par minutter.

  5. Gennemse fejlfindingsoplysninger i /var/opt/microsoft/azuremonitoragent/log/mdsd.info.

  6. Fjern sporingsflaget, og genstart agenten efter fejlfinding.

Overvåg logbehandling i realtid

Vis indgående logge, efterhånden som de behandles:

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

Filtrer efter bestemte logtyper:

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

Gennemse specifikke facilitetslogge:

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

Kontrollér, at logbehandlingen lykkedes

Når sporingsflag er aktiveret, kan du kontrollere, at loggene behandles korrekt, ved at undersøge fejlfindingsoutputtet.

Eksempel på ASA-logindtagelse

For Cisco ASA-logge vises vellykket behandling i loggene som:

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

Nøgleindikatorer for vellykket behandling:

  • Hændelsen genkendes som en CiscoASA-hændelse
  • Logfilen uploades til ODS (Operations Data Service)
  • Der genereres et anmodnings-id til sporing
  • Nyttedataene indeholder korrekt formaterede JSON-data

Eksempel på indtagelse af CEF-log

For CEF-logge vises en vellykket behandling som:

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

Nøgleindikatorer for vellykket CEF-behandling:

  • Datatypen er SECURITY_CEF_BLOB
  • Overførselsanmodningen indeholder et gyldigt slutpunkt
  • CEF-meddelelsesstrukturen bevares i nyttedataene
  • Komprimeringsmålepunkter, der viser, at dataene optimeres til overførsel

Vigtigt!

Husk at deaktivere sporingsflag, når du har fuldført din undersøgelse, for at forhindre overdreven diskbrug.

Indsaml diagnosticeringsoplysninger

Før du åbner en supportsag, skal du indsamle følgende oplysninger:

Kør AMA-fejlfindingsværktøjet

Scriptet kan køres med bestemte flag for forskellige logtyper.

  • --cef: For almindelige hændelsesformatlogfiler
  • --asa: For Cisco ASA-logge
  • --ftd: For Cisco Firepower Threat Defense logs

Outputtet gemmes i /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]