Felsöka prestandaproblem för Microsoft Defender för Endpoint i Linux

Gäller för:

Vill du uppleva Microsoft Defender för Endpoint? Registrera dig för en kostnadsfri utvärderingsversion.

Det här dokumentet innehåller instruktioner om hur du begränsar prestandaproblem som rör Defender för Endpoint i Linux med hjälp av tillgängliga diagnostikverktyg för att kunna förstå och minska den befintliga resursbristen och de processer som gör systemet till sådana situationer. Prestandaproblem orsakas främst av flaskhalsar i ett eller flera maskinvaruundersystem, beroende på profilen för resursutnyttjande i systemet. Ibland är program känsliga för disk-I/O-resurser och kan behöva mer processorkapacitet, och ibland är vissa konfigurationer inte hållbara, och kan utlösa för många nya processer och öppna för många filbeskrivningar.

Beroende på vilka program du kör och enhetens egenskaper kan det uppstå icke-optimala prestanda när du kör Defender för Endpoint på Linux. I synnerhet kan program eller systemprocesser som har åtkomst till många resurser, till exempel cpu, disk och minne under en kort tidsintervall, leda till prestandaproblem i Defender för Endpoint i Linux.

Varning

Kontrollera att andra säkerhetsprodukter inte körs på enheten innan du börjar. Flera säkerhetsprodukter kan vara i konflikt med och påverka värdprestandan.

Felsöka prestandaproblem med hjälp av realtidsskyddsstatistik

Gäller för:

  • Endast prestandaproblem som rör AV

Realtidsskydd (RTP) är en funktion i Defender för Endpoint i Linux som kontinuerligt övervakar och skyddar din enhet mot hot. Den består av fil- och processövervakning och andra heuristiker.

Följande steg kan användas för att felsöka och åtgärda dessa problem:

  1. Inaktivera realtidsskydd med någon av följande metoder och se om prestandan förbättras. Den här metoden hjälper till att begränsa om Defender för Endpoint i Linux bidrar till prestandaproblemen.

    Om enheten inte hanteras av din organisation kan realtidsskydd inaktiveras från kommandoraden:

    mdatp config real-time-protection --value disabled
    
    Configuration property updated
    

    Om enheten hanteras av din organisation kan realtidsskydd inaktiveras av administratören med hjälp av anvisningarna i Ange inställningar för Defender för Endpoint på Linux.

    Obs!

    Om prestandaproblemet kvarstår när realtidsskyddet är inaktiverat kan problemets ursprung vara komponenten för slutpunktsidentifiering och svar (EDR). I det här fallet följer du stegen i avsnittet Felsöka prestandaproblem med hjälp av Microsoft Defender för Endpoint Client Analyzer i den här artikeln.

  2. Om du vill hitta de program som utlöser flest genomsökningar kan du använda realtidsstatistik som samlats in av Defender för Endpoint i Linux.

    Obs!

    Den här funktionen är tillgänglig i version 100.90.70 eller senare.

    Den här funktionen är aktiverad som standard på kanalerna Dogfood och InsiderFast . Om du använder en annan uppdateringskanal kan den här funktionen aktiveras från kommandoraden:

    mdatp config real-time-protection-statistics --value enabled
    

    Den här funktionen kräver att realtidsskydd aktiveras. Kör följande kommando för att kontrollera statusen för realtidsskydd:

    mdatp health --field real_time_protection_enabled
    

    Kontrollera att posten real_time_protection_enabled är true. Annars kör du följande kommando för att aktivera det:

    mdatp config real-time-protection --value enabled
    
    Configuration property updated
    

    Om du vill samla in aktuell statistik kör du:

    mdatp diagnostic real-time-protection-statistics --output json
    

    Obs!

    Genom att använda --output json (observera dubbelstreck) ser du till att utdataformatet är redo för parsning.

    Utdata från det här kommandot visar alla processer och deras associerade genomsökningsaktivitet.

  3. I Ditt Linux-system laddar du ned Python-exempelparsern high_cpu_parser.py med kommandot :

    wget -c https://raw.githubusercontent.com/microsoft/mdatp-xplat/master/linux/diagnostic/high_cpu_parser.py
    

    Utdata för det här kommandot bör likna följande:

    --2020-11-14 11:27:27-- https://raw.githubusercontent.com/microsoft.mdatp-xplat/master/linus/diagnostic/high_cpu_parser.py
    Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.xxx.xxx
    Connecting to raw.githubusercontent.com (raw.githubusercontent.com)| 151.101.xxx.xxx| :443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1020 [text/plain]
    Saving to: 'high_cpu_parser.py'
    100%[===========================================>] 1,020    --.-K/s   in 0s
    
  4. Skriv sedan följande kommandon:

    mdatp diagnostic real-time-protection-statistics --output json | python high_cpu_parser.py
    

    Utdata från ovanstående är en lista över de främsta bidragsgivarna till prestandaproblem. Den första kolumnen är processidentifieraren (PID), den andra kolumnen är processnamnet och den sista kolumnen är antalet skannade filer, sorterade efter påverkan. Kommandots utdata ser till exempel ut ungefär så här:

    ... > mdatp diagnostic real-time-protection-statistics --output json | python high_cpu_parser.py | head
    27432 None 76703
    73467 actool    1249
    73914 xcodebuild 1081
    73873 bash 1050
    27475 None 836
    1    launchd     407
    73468 ibtool     344
    549  telemetryd_v1   325
    4764 None 228
    125  CrashPlanService 164
    

    Om du vill förbättra prestandan för Defender för Endpoint i Linux letar du upp den med det högsta talet under Total files scanned raden och lägger till ett undantag för den. Mer information finns i Konfigurera och validera undantag för Defender för Endpoint i Linux.

    Obs!

    Programmet lagrar statistik i minnet och håller bara reda på filaktiviteten sedan den startades och realtidsskyddet aktiverades. Processer som startades före eller under perioder då realtidsskydd var inaktiverat räknas inte. Dessutom räknas endast händelser som utlöste genomsökningar.

  5. Konfigurera Microsoft Defender för Endpoint i Linux med undantag för processer eller diskplatser som bidrar till prestandaproblemen och återaktiverar realtidsskydd.

    Mer information finns i Konfigurera och validera undantag för Microsoft Defender för Endpoint på Linux.

Felsöka prestandaproblem med Microsoft Defender för Endpoint Client Analyzer

Gäller för:

  • Prestandaproblem för alla tillgängliga Defender för Endpoint-komponenter som AV och EDR

Microsoft Defender för Endpoint Client Analyzer (MDECA) kan samla in spårningar, loggar och diagnostikinformation för att felsöka prestandaproblem på registrerade enheter i Linux.

Obs!

  • Verktyget Microsoft Defender för Endpoint Client Analyzer används regelbundet av Microsoft Customer Support Services (CSS) för att samla in information som (men inte begränsat till) IP-adresser, datornamn som hjälper dig att felsöka problem som kan uppstå med Microsoft Defender för Endpoint. Mer information om vår sekretesspolicy finns i Microsofts sekretesspolicy.
  • Som en allmän metod rekommenderar vi att du uppdaterar Microsoft Defender för Endpoint agenten till den senaste tillgängliga versionen och bekräftar att problemet kvarstår innan du undersöker vidare.

Information om hur du kör klientanalys för felsökning av prestandaproblem finns i Köra klientanalys på macOS och Linux.

Obs!

Om prestandaproblemet kvarstår när du har följt stegen ovan kontaktar du kundsupporten för ytterligare instruktioner och åtgärder.

Felsöka prestandaproblem med AuditD

Bakgrund:

  • Microsoft Defender för Endpoint på Linux OS-distributioner använder AuditD-ramverket för att samla in vissa typer av telemetrihändelser.

  • Systemhändelser som samlas in av regler som läggs till /etc/audit/rules.d/ lägger till i audit.log och kan påverka värdgranskning och uppströmsinsamling.

  • Händelser som läggs till av Microsoft Defender för Endpoint i Linux kommer att taggas med mdatp nyckeln.

  • Om AuditD-tjänsten är felkonfigurerad eller offline kan vissa händelser saknas. Information om hur du felsöker ett sådant problem finns i: Felsöka saknade händelser eller aviseringsproblem för Microsoft Defender för Endpoint i Linux.

I vissa serverarbetsbelastningar kan två problem observeras:

  • Hög cpu-resursförbrukning från mdatp_audisp_plugin process.

  • /var/log/audit/audit.log blir stor eller roterar ofta.

Dessa problem kan uppstå på servrar med många händelser som översvämmar AuditD.

Obs!

Vi rekommenderar att du konfigurerar AuditD-loggar så att de roteras när den maximala filstorleksgränsen nås.

Detta förhindrar att AuditD-loggar ackumuleras i en enda fil och de roterade loggfilerna kan flyttas ut för att spara diskutrymme.

För att uppnå detta kan du ange värdet för max_log_file_action som ska roteras i filen auditd.conf .

Detta kan inträffa om det finns flera användare för AuditD, eller för många regler med kombinationen av Microsoft Defender för Endpoint och tredjepartskonsumenter, eller hög arbetsbelastning som genererar många händelser.

Om du vill felsöka sådana problem börjar du med att samla in MDEClientAnalyzer-loggar på den berörda exempelservern.

Obs!

Som en allmän metod rekommenderar vi att du uppdaterar Microsoft Defender för Endpoint agenten till den senaste tillgängliga versionen och bekräftar att problemet kvarstår innan du undersöker vidare.

Att det finns ytterligare konfigurationer som kan påverka AuditD-undersystemets CPU-belastning.

Mer specifikt kan värdet för disp_qos anges till "förlust" för att minska den höga CPU-förbrukningen i auditd.conf.

Detta innebär dock att vissa händelser kan tas bort under den högsta CPU-förbrukningen.

XMDEClientAnalyzer

När du använder XMDEClientAnalyzer visar följande filer utdata som ger insikter som hjälper dig att felsöka problem.

  • auditd_info.txt
  • auditd_log_analysis.txt

auditd_info.txt

Innehåller allmän AuditD-konfiguration och visar:

  • Vilka processer registreras som AuditD-konsumenter.

  • Auditctl -s-utdata med aktiverat=2

    • Föreslår att granskning är i oföränderligt läge (kräver omstart för att eventuella konfigurationsändringar ska börja gälla).
  • Auditctl -l-utdata

    • Visar vilka regler som för närvarande läses in i kerneln (vilket kan vara annorlunda än det som finns på disken i "/etc/auditd/rules.d/mdatp.rules").

    • Visar vilka regler som är relaterade till Microsoft Defender för Endpoint.

auditd_log_analysis.txt

Innehåller viktig aggregerad information som är användbar när du undersöker prestandaproblem med AuditD.

  • Vilken komponent som äger de mest rapporterade händelserna (Microsoft Defender för Endpoint händelser kommer att taggas med key=mdatp).

  • De främsta rapportinitierarna.

  • De vanligaste systemanropen (nätverks- eller filsystemhändelser och andra).

  • Vilka filsystemsökvägar är de mest skadliga.

Du kan åtgärda de flesta prestandaproblem med AuditD genom att implementera AuditD-undantag. Om de angivna undantagen inte förbättrar prestandan kan vi använda alternativet hastighetsbegränsning. Detta minskar antalet händelser som genereras av AuditD helt och hållet.

Obs!

Undantag bör endast göras för initierare eller sökvägar med lågt hot och hög brus. Exkludera till exempel inte /bin/bash, vilket riskerar att skapa en stor blind fläck. Vanliga misstag att undvika när du definierar undantag.

Undantagstyper

XMDEClientAnalyzer-supportverktyget innehåller syntax som kan användas för att lägga till AuditD-undantagskonfigurationsregler:

AuditD-undantag – hjälp med syntax för supportverktyg:

syntax som kan användas för att lägga till konfigurationsregler för AuditD-undantag

Efter initierare

  • -e/ -exe fullständig binär sökväg > Tar bort alla händelser av den här initieraren

Efter sökväg

  • -d/ -dir fullständig sökväg till en katalog > Tar bort filsystemhändelser som riktar sig mot den här katalogen

Exempel:

Om "/opt/app/bin/app" skriver till kan/opt/app/cfg/logs/1234.log du använda supportverktyget för att undanta med olika alternativ:

-e /opt/app/bin/app

-d /opt/app/cfg

-x /usr/bin/python /etc/usercfg

-d /usr/app/bin/

Fler exempel:

./mde_support_tool.sh exclude -p <process id>

./mde_support_tool.sh exclude -e <process name>

Om du vill exkludera fler än ett objekt sammanfogar du undantagen till en rad:

./mde_support_tool.sh exclude -e <process name> -e <process name 2> -e <process name3>

Flaggan -x används för att exkludera åtkomst till underkataloger av specifika initierare, till exempel:

./mde_support_tool.sh exclude -x /usr/sbin/mv /tmp

Ovanstående utesluter övervakning av undermappen /tmp när den används av mv-processen.

Hastighetsbegränsning

XMDEClientAnalyzer-supportverktyget innehåller syntax som kan användas för att begränsa antalet händelser som rapporteras av auditD-plugin-programmet. Det här alternativet anger hastighetsbegränsningen globalt för AuditD, vilket orsakar en minskning av alla granskningshändelser.

Obs!

Den här funktionen bör användas noggrant eftersom begränsar antalet händelser som rapporteras av det granskade undersystemet som helhet. Detta kan också minska antalet händelser för andra prenumeranter.

Alternativet ratelimit kan användas för att aktivera/inaktivera den här hastighetsgränsen.

Aktivera: ./mde_support_tool.sh ratelimit -e true

Inaktivera: ./mde_support_tool.sh ratelimit -e false

När ratelimit är aktiverat läggs en regel till i AuditD för att hantera 2 500 händelser per sekund.

Obs!

Kontakta Microsofts support om du behöver hjälp med att analysera och minimera AuditD-relaterade prestandaproblem eller distribuera AuditD-undantag i stor skala.

Se även

Tips

Vill du veta mer? Engage med Microsofts säkerhetscommunity i vår Tech Community: Microsoft Defender för Endpoint Tech Community.