Condividi tramite


Risolvere i problemi di prestazioni per Microsoft Defender per endpoint in Linux

Si desidera provare Microsoft Defender per endpoint? iscriversi a una versione di valutazione gratuita.

Questo documento fornisce istruzioni su come limitare i problemi di prestazioni relativi a Defender per endpoint in Linux usando gli strumenti di diagnostica disponibili per comprendere e attenuare le carenze di risorse esistenti e i processi che stanno trasformando il sistema in tali situazioni. I problemi di prestazioni sono causati principalmente da colli di bottiglia in uno o più sottosistemi hardware, a seconda del profilo di utilizzo delle risorse nel sistema. A volte le applicazioni sono sensibili alle risorse di I/O su disco e possono richiedere una maggiore capacità della CPU, a volte alcune configurazioni non sono sostenibili e possono attivare troppi nuovi processi e aprire troppi descrittori di file.

A seconda delle applicazioni in esecuzione e delle caratteristiche del dispositivo, è possibile che si verifichino prestazioni non ottimali durante l'esecuzione di Defender per endpoint in Linux. In particolare, le applicazioni o i processi di sistema che accedono a molte risorse, ad esempio CPU, disco e memoria in un breve intervallo di tempo, possono causare problemi di prestazioni in Defender per endpoint in Linux.

Avviso

Prima di iniziare, assicurarsi che altri prodotti di sicurezza non siano attualmente in esecuzione nel dispositivo. Più prodotti di sicurezza possono essere in conflitto e influire sulle prestazioni dell'host.

Risolvere i problemi di prestazioni usando statistiche di protezione in tempo reale

Si applica a:

  • Solo problemi di prestazioni correlati all'antivirus

La protezione in tempo reale (RTP) è una funzionalità di Defender per endpoint in Linux che monitora e protegge continuamente il dispositivo dalle minacce. È costituito dal monitoraggio di file e processi e da altre euristiche.

I passaggi seguenti possono essere usati per risolvere e attenuare questi problemi:

  1. Disabilitare la protezione in tempo reale usando uno dei metodi seguenti e osservare se le prestazioni migliorano. Questo approccio consente di limitare se Defender per endpoint in Linux contribuisce ai problemi di prestazioni. Se il dispositivo non è gestito dall'organizzazione, la protezione in tempo reale può essere disabilitata dalla riga di comando:

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

    Se il dispositivo è gestito dall'organizzazione, la protezione in tempo reale può essere disabilitata dall'amministratore usando le istruzioni in Impostare le preferenze per Defender per endpoint in Linux.

    Nota

    Se il problema di prestazioni persiste mentre la protezione in tempo reale è disattivata, l'origine del problema potrebbe essere il componente di rilevamento e risposta degli endpoint (EDR). In questo caso, seguire la procedura descritta nella sezione Risolvere i problemi di prestazioni usando Microsoft Defender per endpoint Analizzatore client di questo articolo.

  2. Per trovare le applicazioni che attivano il maggior numero di analisi, è possibile usare le statistiche in tempo reale raccolte da Defender per endpoint in Linux.

    Nota

    Questa funzionalità è disponibile nella versione 100.90.70 o successiva.

    Questa funzionalità è abilitata per impostazione predefinita nei Dogfood canali e InsiderFast . Se si usa un canale di aggiornamento diverso, questa funzionalità può essere abilitata dalla riga di comando:

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

    Questa funzionalità richiede l'abilitazione della protezione in tempo reale. Per controllare lo stato della protezione in tempo reale, eseguire il comando seguente:

    mdatp health --field real_time_protection_enabled
    

    Verificare che la real_time_protection_enabled voce sia true. In caso contrario, eseguire il comando seguente per abilitarlo:

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

    Per raccogliere le statistiche correnti, eseguire:

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

    Nota

    L'uso --output json di (si noti il doppio trattino) garantisce che il formato di output sia pronto per l'analisi.

    L'output di questo comando mostra tutti i processi e l'attività di analisi associata.

  3. Nel sistema Linux scaricare il parser Python di esempio high_cpu_parser.py usando il comando :

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

    L'output di questo comando deve essere simile al seguente:

    --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. Digitare i comandi seguenti:

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

    L'output di quanto sopra è un elenco dei principali collaboratori ai problemi di prestazioni. La prima colonna è l'identificatore di processo (PID), la seconda colonna è il nome del processo e l'ultima colonna è il numero di file analizzati, ordinati in base all'impatto. Ad esempio, l'output del comando sarà simile al seguente:

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

    Per migliorare le prestazioni di Defender per endpoint in Linux, individuare quello con il numero più alto sotto la Total files scanned riga e aggiungervi un'esclusione. Per altre informazioni, vedere Configurare e convalidare le esclusioni per Defender per endpoint in Linux.

    Nota

    L'applicazione archivia le statistiche in memoria e tiene traccia solo dell'attività dei file dall'avvio e la protezione in tempo reale è stata abilitata. I processi avviati prima o durante i periodi in cui la protezione in tempo reale era disattivata non vengono conteggiati. Vengono inoltre conteggiati solo gli eventi che hanno attivato le analisi.

Risolvere i problemi di prestazioni usando Microsoft Defender per endpoint Analizzatore client

Si applica a:

  • Problemi di prestazioni di tutti i componenti disponibili di Defender per endpoint, ad esempio AV ed EDR

L'analizzatore client Microsoft Defender per endpoint (MDECA) può raccogliere tracce, log e informazioni di diagnostica per risolvere i problemi di prestazioni nei dispositivi di cui è stato eseguito l'onboarding in Linux.

Nota

  • Lo strumento analizzatore client Microsoft Defender per endpoint viene usato regolarmente dal Servizio Supporto Tecnico Clienti Microsoft (CSS) per raccogliere informazioni quali indirizzi IP (ma non solo), nomi di PC che consentono di risolvere i problemi che potrebbero verificarsi con Microsoft Defender per endpoint. Per altre informazioni sull'informativa sulla privacy, vedere Informativa sulla privacy di Microsoft.
  • Come procedura consigliata generale, è consigliabile aggiornare l'agente Microsoft Defender per endpoint alla versione più recente disponibile e confermare che il problema persiste ancora prima di analizzare ulteriormente.

Per eseguire l'analizzatore client per la risoluzione dei problemi di prestazioni, vedere Eseguire l'analizzatore client in macOS e Linux.

Configurare le esclusioni globali per migliorare le prestazioni

Configurare Microsoft Defender per endpoint in Linux con esclusioni per i processi o i percorsi del disco che contribuiscono ai problemi di prestazioni. Per ulteriori informazioni, vedere Configurare e convalidare le esclusioni per Microsoft Defender per endpoint su Linux. Se si verificano ancora problemi di esecuzione, contattare il supporto tecnico per ulteriori istruzioni e mitigazione.

Risolvere i problemi di prestazioni di AuditD

Sfondo:

  • Microsoft Defender per endpoint nelle distribuzioni del sistema operativo Linux usa il framework AuditD per raccogliere determinati tipi di eventi di telemetria.

  • Gli eventi di sistema acquisiti dalle regole aggiunte a /etc/audit/rules.d/ verranno aggiunti a audit.log e potrebbero influire sul controllo host e sulla raccolta upstream.

  • Gli eventi aggiunti da Microsoft Defender per endpoint in Linux verranno contrassegnati con mdatp la chiave.

  • Se il servizio AuditD non è configurato correttamente o è offline, alcuni eventi potrebbero non essere presenti. Per risolvere un problema di questo tipo, vedere: Risolvere gli eventi mancanti o i problemi di avvisi per Microsoft Defender per endpoint in Linux.

In alcuni carichi di lavoro del server potrebbero essere osservati due problemi:

  • High CPU consumo di risorse dal mdatp_audisp_plugin processo.

  • /var/log/audit/audit.log diventando grande o rotazione frequente.

Questi problemi possono verificarsi nei server con molti eventi che inondano AuditD. Tali problemi possono verificarsi se sono presenti più consumer per AuditD o un numero eccessivo di regole con la combinazione di Microsoft Defender per endpoint e consumer di terze parti o un carico di lavoro elevato che genera molti eventi. Per risolvere questi problemi, iniziare raccogliendo i log MDEClientAnalyzer nel server interessato di esempio.

Come procedura consigliata, è consigliabile configurare i log AuditD per ruotare quando viene raggiunto il limite massimo di dimensioni dei file. Questa configurazione impedisce l'accumulo di log AuditD in un singolo file e i file di log ruotati possono essere spostati per risparmiare spazio su disco. A tale scopo, è possibile impostare il valore per su max_log_file_actionrotate nel file auditd.conf .

Nota

Come procedura consigliata generale, è consigliabile aggiornare l'agente Microsoft Defender per endpoint alla versione più recente disponibile e confermare che il problema persiste ancora prima di analizzare ulteriormente. Che sono presenti configurazioni aggiuntive che possono influire sul affaticamento della CPU del sottosistema AuditD. In particolare, in auditd.conf, il valore di può essere impostato su lossy per disp_qos ridurre l'elevato consumo di CPU. Ciò significa tuttavia che alcuni eventi possono essere eliminati durante il consumo massimo di CPU.

XMDEClientAnalyzer

Quando si usa XMDEClientAnalyzer, nei file seguenti viene visualizzato l'output che fornisce informazioni dettagliate che consentono di risolvere i problemi.

  • auditd_info.txt
  • auditd_log_analysis.txt

auditd_info.txt

Contiene la configurazione auditD generale e visualizza le informazioni seguenti:

  • Quali processi sono registrati come consumer AuditD.

  • Auditctl -s output con enabled=2 (suggerisce che il controllo è in modalità non modificabile (è necessario riavviare per rendere effettive le modifiche della configurazione).

  • Auditctl -loutput (mostra le regole attualmente caricate nel kernel, che potrebbero essere diverse da quelle esistenti sul disco in /etc/auditd/rules.d/mdatp.rules. Mostra anche quali regole sono correlate a Microsoft Defender per endpoint.

auditd_log_analysis.txt

Contiene informazioni aggregate importanti utili per l'analisi dei problemi di prestazioni auditD.

  • Quale componente è proprietario degli eventi più segnalati (Microsoft Defender per endpoint eventi verranno contrassegnati con key=mdatp).

  • Iniziatori di report principali.

  • Le chiamate di sistema più comuni (eventi di rete o file system e altre).

  • Quali percorsi del file system sono i più rumorosi.

Per attenuare la maggior parte dei problemi di prestazioni auditD, è possibile implementare l'esclusione AuditD. Se le esclusioni date non migliorano le prestazioni, è possibile usare l'opzione del limitatore di frequenza. In questo modo si ridurrà completamente il numero di eventi generati da AuditD.

Nota

Le esclusioni devono essere effettuate solo per gli iniziatori o i percorsi a bassa minaccia e ad alto rumore. Ad esempio, non escludere /bin/bash che rischia di creare un punto cieco di grandi dimensioni. Errori comuni da evitare durante la definizione delle esclusioni.

Tipi di esclusione

Lo strumento di supporto di XMDEClientAnalyzer contiene una sintassi che può essere usata per aggiungere regole di configurazione di esclusione AuditD.

Esclusione auditD: guida alla sintassi degli strumenti di supporto:

sintassi che può essere usata per aggiungere regole di configurazione di esclusione AuditD

Per iniziatore

  • -e/ -exe percorso > binario completo Rimuove tutti gli eventi da questo iniziatore

Per percorso

  • -d / -dir percorso completo di una directory > Rimuove gli eventi del file system destinati a questa directory

Esempi:

Se /opt/app/bin/app scrive in /opt/app/cfg/logs/1234.log, è possibile usare lo strumento di supporto per escludere con varie opzioni:

-e /opt/app/bin/app

-d /opt/app/cfg

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

-d /usr/app/bin/

Altri esempi:

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

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

Per escludere più di un elemento, concatenare le esclusioni in una riga:

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

Il flag -x viene usato per escludere l'accesso alle sottodirectory da iniziatori specifici, ad esempio:

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

Quanto sopra escluderà il monitoraggio della sottocartella /tmp, se accessibile dal processo mv.

Limitatore di frequenza

Lo strumento di supporto di XMDEClientAnalyzer contiene una sintassi che può essere usata per limitare il numero di eventi segnalati dal plug-in auditD. Questa opzione imposterà il limite di frequenza a livello globale per AuditD causando un calo di tutti gli eventi di controllo.

Nota

Questa funzionalità deve essere usata con attenzione in quanto limita il numero di eventi segnalati dal sottosistema controllato nel suo complesso. Ciò potrebbe ridurre anche il numero di eventi per altri sottoscrittori.

L'opzione ratelimit può essere usata per abilitare o disabilitare questo limite di frequenza.

Abilitare: ./mde_support_tool.sh ratelimit -e true

Disabilitare: ./mde_support_tool.sh ratelimit -e false

Quando il limite di frequenza è abilitato, verrà aggiunta una regola in AuditD per gestire 2500 eventi al secondo.

Nota

Contattare il supporto tecnico Microsoft se è necessaria assistenza per l'analisi e la mitigazione dei problemi di prestazioni correlati a AuditD o per la distribuzione di esclusioni AuditD su larga scala.

Vedere anche

Consiglio

Per saperne di più, Engage con la community Microsoft Security nella community tech: Microsoft Defender per endpoint Tech Community.