Resolver problemas de desempenho de Microsoft Defender para Endpoint no Linux
Quer experimentar o Defender para Ponto Final? Inscrever-se para uma avaliação gratuita.
Este documento fornece instruções sobre como reduzir os problemas de desempenho relacionados com o Defender para Endpoint no Linux através das ferramentas de diagnóstico disponíveis para conseguir compreender e mitigar a escassez de recursos existentes e os processos que estão a tornar o sistema nessas situações. Os problemas de desempenho são causados principalmente por estrangulamentos num ou mais subsistemas de hardware, consoante o perfil de utilização de recursos no sistema. Por vezes, as aplicações são sensíveis aos recursos de E/S do disco e podem precisar de mais capacidade de CPU e, por vezes, algumas configurações não são sustentáveis e podem acionar demasiados processos novos e abrir demasiados descritores de ficheiros.
Consoante as aplicações que está a executar e as características do dispositivo, poderá ter um desempenho inferior ao otimizar a execução do Defender para Endpoint no Linux. Em particular, as aplicações ou processos de sistema que acedem a muitos recursos, como CPU, Disco e Memória num curto período de tempo, podem levar a problemas de desempenho no Defender para Endpoint no Linux.
Aviso
Antes de começar, certifique-se de que outros produtos de segurança não estão atualmente em execução no dispositivo. Vários produtos de segurança podem entrar em conflito e afetar o desempenho do anfitrião.
Resolver problemas de desempenho com estatísticas de proteção em tempo real
Aplica-se a:
- Apenas problemas de desempenho relacionados com o antivírus
A proteção em tempo real (RTP) é uma funcionalidade do Defender para Endpoint no Linux que monitoriza e protege continuamente o seu dispositivo contra ameaças. Consiste em monitorização de ficheiros e processos e outras heurísticas.
Os passos seguintes podem ser utilizados para resolver e mitigar estes problemas:
Desative a proteção em tempo real com um dos seguintes métodos e observe se o desempenho melhora. Esta abordagem ajuda a restringir se o Defender para Endpoint no Linux está a contribuir para os problemas de desempenho. Se o seu dispositivo não for gerido pela sua organização, a proteção em tempo real pode ser desativada a partir da linha de comandos:
mdatp config real-time-protection --value disabled
Configuration property updated
Se o seu dispositivo for gerido pela sua organização, a proteção em tempo real pode ser desativada pelo administrador através das instruções em Definir preferências do Defender para Endpoint no Linux.
Nota
Se o problema de desempenho persistir enquanto a proteção em tempo real estiver desativada, a origem do problema poderá ser o componente de deteção e resposta de pontos finais (EDR). Neste caso, siga os passos da secção Resolver problemas de desempenho com o Microsoft Defender para Endpoint Client Analyzer deste artigo.
Para localizar as aplicações que estão a acionar a maioria das análises, pode utilizar estatísticas em tempo real recolhidas pelo Defender para Endpoint no Linux.
Nota
Esta funcionalidade está disponível na versão 100.90.70 ou mais recente.
Esta funcionalidade está ativada por predefinição nos
Dogfood
canais eInsiderFast
. Se estiver a utilizar um canal de atualização diferente, esta funcionalidade pode ser ativada a partir da linha de comandos:mdatp config real-time-protection-statistics --value enabled
Esta funcionalidade requer a ativação da proteção em tempo real. Para verificar o estado da proteção em tempo real, execute o seguinte comando:
mdatp health --field real_time_protection_enabled
Verifique se a
real_time_protection_enabled
entrada étrue
. Caso contrário, execute o seguinte comando para ativá-lo:mdatp config real-time-protection --value enabled
Configuration property updated
Para recolher estatísticas atuais, execute:
mdatp diagnostic real-time-protection-statistics --output json
Nota
Utilizar
--output json
(anote o traço duplo) garante que o formato de saída está pronto para análise.O resultado deste comando mostra todos os processos e a respetiva atividade de análise associada.
No seu sistema Linux, transfira o analisador python de exemplo high_cpu_parser.py com o comando :
wget -c https://raw.githubusercontent.com/microsoft/mdatp-xplat/master/linux/diagnostic/high_cpu_parser.py
O resultado deste comando deve ser semelhante ao seguinte:
--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
Escreva os seguintes comandos:
mdatp diagnostic real-time-protection-statistics --output json | python high_cpu_parser.py
O resultado acima é uma lista dos principais contribuidores para problemas de desempenho. A primeira coluna é o identificador do processo (PID), a segunda coluna é o nome do processo e a última coluna é o número de ficheiros analisados, ordenados por impacto. Por exemplo, o resultado do comando será algo semelhante ao seguinte:
... > 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
Para melhorar o desempenho do Defender para Endpoint no Linux, localize aquele com o número mais alto abaixo da linha e adicione uma exclusão para o
Total files scanned
mesmo. Para obter mais informações, veja Configurar e validar exclusões do Defender para Endpoint no Linux.Nota
A aplicação armazena estatísticas na memória e só controla a atividade dos ficheiros desde que foi iniciada e a proteção em tempo real foi ativada. Os processos que foram iniciados antes ou durante períodos em que a proteção em tempo real estava desativada não são contabilizados. Além disso, apenas são contados os eventos que acionaram análises.
Resolver problemas de desempenho com o Microsoft Defender para Endpoint Client Analyzer
Aplica-se a:
- Problemas de desempenho de todos os componentes disponíveis do Defender para Ponto Final, como AV e EDR
O Microsoft Defender para Endpoint Client Analyzer (MDECA) pode recolher rastreios, registos e informações de diagnóstico para resolver problemas de desempenho em dispositivos integrados no Linux.
Nota
- A ferramenta Microsoft Defender para Endpoint Client Analyzer é utilizada regularmente pelos Serviços de Suporte ao Cliente da Microsoft (CSS) para recolher informações como (mas não limitado a) endereços IP, nomes de PC que ajudarão a resolver problemas que possa estar a ter com Microsoft Defender para Endpoint. Para obter mais informações sobre a nossa declaração de privacidade, consulte Declaração de Privacidade da Microsoft.
- Como melhor prática geral, recomendamos que atualize o agente Microsoft Defender para Endpoint para a versão mais recente disponível e confirme que o problema ainda persiste antes de investigar mais.
Para executar o analisador de cliente para resolver problemas de desempenho, veja Executar o analisador de cliente no macOS e Linux.
Configurar Exclusões Globais para um melhor desempenho
Configure Microsoft Defender para Endpoint no Linux com exclusões para os processos ou localizações do disco que contribuem para os problemas de desempenho. Para obter mais informações, consulte Configurar e validar exclusões do Microsoft Defender para Endpoint no Linux. Se ainda tiver problemas de desempenho, contacte o suporte para obter mais instruções e mitigação.
Resolver problemas de desempenho AuditD
Fundo:
Microsoft Defender para Endpoint nas distribuições de SO Linux utiliza a arquitetura AuditD para recolher determinados tipos de eventos de telemetria.
Os eventos de sistema capturados por regras adicionadas a
/etc/audit/rules.d/
serão adicionados a audit.log(s) e poderão afetar a auditoria do anfitrião e a recolha a montante.Os eventos adicionados por Microsoft Defender para Endpoint no Linux serão marcados com
mdatp
chave.Se o serviço AuditD estiver configurado incorretamente ou offline, alguns eventos poderão estar em falta. Para resolver este problema, veja: Resolver problemas de eventos ou alertas em falta para Microsoft Defender para Endpoint no Linux.
Em determinadas cargas de trabalho do servidor, podem ser observados dois problemas:
High CPU
consumo de recursos domdatp_audisp_plugin
processo./var/log/audit/audit.log
tornando-se grande ou frequentemente rotativo.
Estes problemas podem ocorrer em servidores com muitos eventos a inundar AuditD. Estes problemas podem surgir se existirem vários consumidores para o AuditD ou demasiadas regras com a combinação de consumidores Microsoft Defender para Endpoint e de terceiros ou cargas de trabalho elevadas que geram muitos eventos. Para resolver estes problemas, comece por recolher registos MDEClientAnalyzer no servidor afetado de exemplo.
Como melhor prática, recomendamos que configure os registos AuditD para rodar quando o limite máximo de tamanho de ficheiro for atingido. Esta configuração impede que os registos AuditD se acumulem num único ficheiro e os ficheiros de registo rodados podem ser movidos para poupar espaço em disco. Para tal, pode definir o valor para para max_log_file_action
rotate
no ficheiro auditd.conf .
Nota
Como melhor prática geral, é recomendado atualizar o agente Microsoft Defender para Endpoint para a versão mais recente disponível e confirmar que o problema ainda persiste antes de investigar mais. Que existem configurações adicionais que podem afetar o esforço da CPU do subsistema AuditD. Especificamente, em auditd.conf, o valor para disp_qos
pode ser definido para lossy
reduzir o consumo elevado da CPU. No entanto, isto significa que alguns eventos podem ser removidos durante o pico do consumo da CPU.
XMDEClientAnalyzer
Quando utiliza XMDEClientAnalyzer, os seguintes ficheiros apresentarão a saída que fornece informações para o ajudar a resolver problemas.
auditd_info.txt
auditd_log_analysis.txt
auditd_info.txt
Contém a configuração AuditD geral e apresenta as seguintes informações:
Que processos estão registados como consumidores de AuditD.
Auditctl -s
output withenabled=2
(Suggests auditd is in immutable mode (requires restart for any config changes to take effect.)Auditctl -l
output (Mostra que regras são atualmente carregadas para o kernel, que podem diferir do que existe no disco em/etc/auditd/rules.d/mdatp.rules
. Também mostra que regras estão relacionadas com Microsoft Defender para Endpoint.)
auditd_log_analysis.txt
Contém informações agregadas importantes que são úteis para investigar problemas de desempenho de AuditD.
Que componente detém os eventos mais reportados (Microsoft Defender para Endpoint eventos serão marcados com
key=mdatp
).Os principais iniciadores de relatórios.
As chamadas de sistema mais comuns (eventos de rede ou sistema de ficheiros, entre outros).
Que caminhos do sistema de ficheiros são os mais ruidosos.
Para mitigar a maioria dos problemas de desempenho auditD, pode implementar a exclusão auditD. Se as exclusões especificadas não melhorarem o desempenho, podemos utilizar a opção de limitador de taxa. Isto reduzirá completamente o número de eventos gerados pelo AuditD.
Nota
As exclusões devem ser efetuadas apenas para caminhos ou iniciadores de ruído baixos e elevados. Por exemplo, não exclua /bin/bash que corre o risco de criar um ponto cego grande. Erros comuns a evitar ao definir exclusões.
Tipos de Exclusão
A ferramenta de suporte XMDEClientAnalyzer contém sintaxe que pode ser utilizada para adicionar regras de configuração de exclusão AuditD.
Exclusão auditD – ajuda da sintaxe da ferramenta de suporte:
Por iniciador
-
-e/ -exe
caminho > binário completo Remove todos os eventos deste iniciador
Por caminho
-
-d / -dir
caminho completo para um diretório > Remove eventos do sistema de ficheiros direcionados para este diretório
Exemplos:
Se /opt/app/bin/app
escrever /opt/app/cfg/logs/1234.log
no , pode utilizar a ferramenta de suporte para excluir com várias opções:
-e /opt/app/bin/app
-d /opt/app/cfg
-x /usr/bin/python /etc/usercfg
-d /usr/app/bin/
Mais exemplos:
./mde_support_tool.sh exclude -p <process id>
./mde_support_tool.sh exclude -e <process name>
Para excluir mais do que um item , concatene as exclusões numa única linha:
./mde_support_tool.sh exclude -e <process name> -e <process name 2> -e <process name3>
O sinalizador -x é utilizado para excluir o acesso a subdiretórios por iniciadores específicos, por exemplo:
./mde_support_tool.sh exclude -x /usr/sbin/mv /tmp
As opções acima irão excluir a monitorização da subpasta /tmp, quando acedida pelo processo mv.
Limitador de Taxa
A ferramenta de suporte XMDEClientAnalyzer contém sintaxe que pode ser utilizada para limitar o número de eventos comunicados pelo plug-in auditD. Esta opção irá definir o limite de taxa globalmente para AuditD, causando uma queda em todos os eventos de auditoria.
Nota
Esta funcionalidade deve ser cuidadosamente utilizada como limita o número de eventos comunicados pelo subsistema auditado como um todo. Isto também pode reduzir o número de eventos para outros subscritores.
A opção ratelimit pode ser utilizada para ativar/desativar este limite de taxa.
Ativar: ./mde_support_tool.sh ratelimit -e true
Desativar: ./mde_support_tool.sh ratelimit -e false
Quando o ratelimit está ativado, uma regra será adicionada em AuditD para processar 2500 eventos/seg.
Nota
Contacte o suporte da Microsoft se precisar de assistência para analisar e mitigar problemas de desempenho relacionados com AuditD ou com a implementação de exclusões AuditD em escala.
Consulte também
Sugestão
Quer saber mais? Engage com a comunidade de Segurança da Microsoft na nossa Comunidade Tecnológica: Microsoft Defender para Endpoint Tech Community.