Rozwiązywanie problemów z wydajnością Ochrona punktu końcowego w usłudze Microsoft Defender w systemie Linux

Dotyczy:

Chcesz poznać usługę ochrony punktu końcowego w usłudze Microsoft Defender? Utwórz konto, aby skorzystać z bezpłatnej wersji próbnej.

Ten dokument zawiera instrukcje dotyczące sposobu zawężenia problemów z wydajnością związanych z usługą Defender for Endpoint w systemie Linux przy użyciu dostępnych narzędzi diagnostycznych, aby móc zrozumieć i wyeliminować istniejące braki zasobów oraz procesy, które sprawiają, że system znajduje się w takich sytuacjach. Problemy z wydajnością są spowodowane głównie wąskimi gardłami w co najmniej jednym podsystemie sprzętowym, w zależności od profilu wykorzystania zasobów w systemie. Czasami aplikacje są wrażliwe na zasoby we/wy dysku i mogą potrzebować większej pojemności procesora CPU, a czasami niektóre konfiguracje nie są trwałe i mogą wyzwalać zbyt wiele nowych procesów i otwierać zbyt wiele deskryptorów plików.

W zależności od uruchomionych aplikacji i charakterystyk urządzenia może wystąpić nieoptymalna wydajność podczas uruchamiania usługi Defender for Endpoint w systemie Linux. W szczególności aplikacje lub procesy systemowe uzyskujące dostęp do wielu zasobów, takich jak procesor CPU, dysk i pamięć w krótkim czasie, mogą prowadzić do problemów z wydajnością w usłudze Defender for Endpoint w systemie Linux.

Ostrzeżenie

Przed rozpoczęciem upewnij się, że inne produkty zabezpieczające nie są obecnie uruchomione na urządzeniu. Wiele produktów zabezpieczeń może powodować konflikt i wpływać na wydajność hosta.

Rozwiązywanie problemów z wydajnością przy użyciu statystyk ochrony w czasie rzeczywistym

Dotyczy:

  • Tylko problemy z wydajnością związane z usługą AV

Ochrona w czasie rzeczywistym (RTP) to funkcja usługi Defender for Endpoint w systemie Linux, która stale monitoruje i chroni urządzenie przed zagrożeniami. Składa się z monitorowania plików i procesów oraz innych heurystycznych.

Poniższe kroki mogą służyć do rozwiązywania i rozwiązywania tych problemów:

  1. Wyłącz ochronę w czasie rzeczywistym przy użyciu jednej z następujących metod i sprawdź, czy wydajność się poprawia. Takie podejście pomaga zawęzić, czy usługa Defender dla punktu końcowego w systemie Linux przyczynia się do problemów z wydajnością.

    Jeśli urządzenie nie jest zarządzane przez organizację, ochronę w czasie rzeczywistym można wyłączyć z poziomu wiersza polecenia:

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

    Jeśli urządzenie jest zarządzane przez organizację, administrator może wyłączyć ochronę w czasie rzeczywistym, korzystając z instrukcji w temacie Ustawianie preferencji dla usługi Defender dla punktu końcowego w systemie Linux.

    Uwaga

    Jeśli problem z wydajnością będzie się powtarzać, gdy ochrona w czasie rzeczywistym jest wyłączona, źródłem problemu może być składnik wykrywania i reagowania na punkty końcowe (EDR). W takim przypadku wykonaj kroki opisane w sekcji Rozwiązywanie problemów z wydajnością przy użyciu analizatora klienta Ochrona punktu końcowego w usłudze Microsoft Defender w tym artykule.

  2. Aby znaleźć aplikacje wyzwalające najwięcej skanów, możesz użyć statystyk w czasie rzeczywistym zebranych przez usługę Defender for Endpoint w systemie Linux.

    Uwaga

    Ta funkcja jest dostępna w wersji 100.90.70 lub nowszej.

    Ta funkcja jest domyślnie włączona w kanałach Dogfood i InsiderFast . Jeśli używasz innego kanału aktualizacji, tę funkcję można włączyć z poziomu wiersza polecenia:

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

    Ta funkcja wymaga włączenia ochrony w czasie rzeczywistym. Aby sprawdzić stan ochrony w czasie rzeczywistym, uruchom następujące polecenie:

    mdatp health --field real_time_protection_enabled
    

    Sprawdź, real_time_protection_enabled czy wpis to true. W przeciwnym razie uruchom następujące polecenie, aby go włączyć:

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

    Aby zebrać bieżące statystyki, uruchom polecenie:

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

    Uwaga

    Użycie --output json (zwróć uwagę na podwójną kreskę) gwarantuje, że format wyjściowy jest gotowy do analizowania.

    W danych wyjściowych tego polecenia zostaną wyświetlone wszystkie procesy i skojarzone z nimi działania skanowania.

  3. W systemie Linux pobierz przykładową high_cpu_parser.py analizatora języka Python przy użyciu polecenia:

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

    Dane wyjściowe tego polecenia powinny być podobne do następujących:

    --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. Następnie wpisz następujące polecenia:

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

    Dane wyjściowe powyższych elementów to lista najważniejszych współautorów problemów z wydajnością. Pierwsza kolumna to identyfikator procesu (PID), druga kolumna to nazwa procesu, a ostatnia kolumna to liczba zeskanowanych plików posortowanych według wpływu. Na przykład dane wyjściowe polecenia będą podobne do poniższych:

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

    Aby zwiększyć wydajność usługi Defender for Endpoint w systemie Linux, znajdź usługę z największą liczbą w wierszu Total files scanned i dodaj dla niej wykluczenie. Aby uzyskać więcej informacji, zobacz Konfigurowanie i weryfikowanie wykluczeń dla usługi Defender dla punktu końcowego w systemie Linux.

    Uwaga

    Aplikacja przechowuje statystyki w pamięci i śledzi tylko aktywność plików od momentu jej uruchomienia i włączono ochronę w czasie rzeczywistym. Procesy, które zostały uruchomione przed lub w okresach, w których ochrona w czasie rzeczywistym była wyłączona, nie są liczone. Ponadto są liczone tylko zdarzenia, które wyzwoliły skanowania.

  5. Skonfiguruj Ochrona punktu końcowego w usłudze Microsoft Defender w systemie Linux z wykluczeniami dla procesów lub lokalizacji dysków, które przyczyniają się do problemów z wydajnością i ponownie włącz ochronę w czasie rzeczywistym.

    Aby uzyskać więcej informacji, zobacz Konfigurowanie i weryfikowanie wykluczeń usługi Ochrona punktu końcowego w usłudze Microsoft Defender w systemie Linux.

Rozwiązywanie problemów z wydajnością przy użyciu analizatora klienta Ochrona punktu końcowego w usłudze Microsoft Defender

Dotyczy:

  • Problemy z wydajnością wszystkich dostępnych składników usługi Defender dla punktów końcowych, takich jak AV i EDR

Narzędzie Ochrona punktu końcowego w usłudze Microsoft Defender Client Analyzer (MDECA) może zbierać ślady, dzienniki i informacje diagnostyczne w celu rozwiązywania problemów z wydajnością na dołączonych urządzeniach w systemie Linux.

Uwaga

Aby uruchomić analizator klienta w celu rozwiązywania problemów z wydajnością, zobacz Uruchamianie analizatora klienta w systemach macOS i Linux.

Uwaga

Jeśli po wykonaniu powyższych kroków problem z wydajnością będzie się powtarzać, skontaktuj się z pomocą techniczną, aby uzyskać dalsze instrukcje i środki zaradcze.

Rozwiąż problemy z wydajnością AuditD

Tle:

  • Ochrona punktu końcowego w usłudze Microsoft Defender w dystrybucjach systemu operacyjnego Linux używa struktury AuditD do zbierania niektórych typów zdarzeń telemetrycznych.

  • Zdarzenia systemowe przechwytywane przez reguły dodane do /etc/audit/rules.d/ zostaną dodane do audit.log i mogą mieć wpływ na inspekcję hosta i zbieranie nadrzędne.

  • Zdarzenia dodane przez Ochrona punktu końcowego w usłudze Microsoft Defender w systemie Linux zostaną oznaczone kluczemmdatp.

  • Jeśli usługa AuditD jest nieprawidłowo skonfigurowana lub w trybie offline, może brakować niektórych zdarzeń. Aby rozwiązać ten problem, zobacz: Rozwiązywanie problemów z brakującymi zdarzeniami lub alertami dla Ochrona punktu końcowego w usłudze Microsoft Defender w systemie Linux.

W niektórych obciążeniach serwera można zaobserwować dwa problemy:

  • Wysokie użycie zasobów procesora CPU z procesu mdatp_audisp_plugin.

  • /var/log/audit/audit.log stają się duże lub często się obracają.

Te problemy mogą wystąpić na serwerach z wieloma zdarzeniami zalewacymi AuditD.

Uwaga

Najlepszym rozwiązaniem jest skonfigurowanie dzienników AuditD do rotacji po osiągnięciu maksymalnego limitu rozmiaru pliku.

Zapobiegnie to gromadzeniu dzienników AuditD w jednym pliku i przenoszeniu obróconych plików dziennika w celu zaoszczędzenia miejsca na dysku.

Aby to osiągnąć, możesz ustawić wartość max_log_file_action, która ma zostać obrócona w pliku auditd.conf.

Może się tak zdarzyć, jeśli istnieje wielu użytkowników inspekcji lub zbyt wiele reguł z kombinacją Ochrona punktu końcowego w usłudze Microsoft Defender i użytkowników innych firm lub duże obciążenie, które generuje wiele zdarzeń.

Aby rozwiązać takie problemy, rozpocznij od zebrania dzienników MDEClientAnalyzer na serwerze , którego dotyczy problem.

Uwaga

Ogólnie rzecz biorąc, zaleca się zaktualizowanie agenta Ochrona punktu końcowego w usłudze Microsoft Defender do najnowszej dostępnej wersji i potwierdzenie, że problem nadal występuje przed dalszym badaniem.

Istnieją dodatkowe konfiguracje, które mogą mieć wpływ na obciążenie procesora cpu podsystemu AuditD.

W szczególności w pliku auditd.conf wartość disp_qos można ustawić na wartość "lossy", aby zmniejszyć wysokie zużycie procesora CPU.

Oznacza to jednak, że niektóre zdarzenia mogą zostać porzucone podczas szczytu użycia procesora CPU.

XMDEClientAnalyzer

W przypadku korzystania z narzędzia XMDEClientAnalyzer w poniższych plikach zostaną wyświetlone dane wyjściowe zawierające szczegółowe informacje ułatwiające rozwiązywanie problemów.

  • auditd_info.txt
  • auditd_log_analysis.txt

auditd_info.txt

Zawiera ogólną konfigurację AuditD i będzie wyświetlana:

  • Jakie procesy są rejestrowane jako użytkownicy AuditD.

  • Auditctl -s output with enabled=2

    • Sugeruje, że inspekcja jest w trybie niezmiennym (wymaga ponownego uruchomienia, aby zmiany konfiguracji zaczęły obowiązywać).
  • Auditctl -l — dane wyjściowe

    • Pokaże, jakie reguły są obecnie ładowane do jądra (co może być inne niż to, co istnieje na dysku w pliku "/etc/auditd/rules.d/mdatp.rules").

    • Spowoduje to wyświetlenie reguł powiązanych z Ochrona punktu końcowego w usłudze Microsoft Defender.

auditd_log_analysis.txt

Zawiera ważne zagregowane informacje, które są przydatne podczas badania problemów z wydajnością AuditD.

  • Który składnik jest właścicielem najczęściej zgłaszanych zdarzeń (zdarzenia Ochrona punktu końcowego w usłudze Microsoft Defender zostaną oznaczone tagiem key=mdatp).

  • Najważniejsi inicjatorzy raportowania.

  • Najczęstsze wywołania systemowe (zdarzenia sieci lub systemu plików i inne).

  • Jakie ścieżki systemu plików są najgłośniejsze.

Aby rozwiązać większość problemów z wydajnością AuditD, można zaimplementować wykluczenie AuditD. Jeśli podane wykluczenia nie poprawią wydajności, możemy użyć opcji ogranicznika szybkości. Spowoduje to całkowite zmniejszenie liczby zdarzeń generowanych przez usługę AuditD.

Uwaga

Wykluczenia należy wprowadzać tylko w przypadku inicjatorów lub ścieżek o niskim zagrożeniu i wysokim poziomie szumu. Na przykład nie wykluczaj /bin/bash, co grozi utworzeniem dużego ślepego pola. Typowe błędy, których należy unikać podczas definiowania wykluczeń.

Typy wykluczeń

Narzędzie obsługi XMDEClientAnalyzer zawiera składnię, która może służyć do dodawania reguł konfiguracji wykluczeń AuditD:

Wykluczenie AuditD — pomoc dotycząca składni narzędzi pomocy technicznej:

składnia, która może służyć do dodawania reguł konfiguracji wykluczeń AuditD

Według inicjatora

  • -e/ -exe pełna ścieżka > binarna Usuwa wszystkie zdarzenia przez tego inicjatora

Według ścieżki

  • -d / -dir pełna ścieżka do katalogu > Usuwa zdarzenia systemu plików przeznaczone dla tego katalogu

Przykłady:

Jeśli wartość "/opt/app/bin/app" jest zapisywana w pliku "/opt/app/cfg/logs/1234.log", możesz użyć narzędzia do obsługi, aby wykluczyć z różnymi opcjami:

-e /opt/app/bin/app

-d /opt/app/cfg

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

-d /usr/app/bin/

Więcej przykładów:

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

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

Aby wykluczyć więcej niż jeden element — połącz wykluczenia w jednym wierszu:

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

Flaga -x służy do wykluczania dostępu do podkatalogów przez określonych inicjatorów, na przykład:

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

Powyższe spowoduje wykluczenie monitorowania podfolderu /tmp po uzyskaniu dostępu przez proces mv.

Ogranicznik szybkości

Narzędzie obsługi XMDEClientAnalyzer zawiera składnię, która może służyć do ograniczania liczby zdarzeń zgłaszanych przez wtyczkę auditD. Ta opcja ustawi limit szybkości globalnie dla auditD powodując spadek wszystkich zdarzeń inspekcji.

Uwaga

Ta funkcja powinna być starannie używana jako ograniczenie liczby zdarzeń zgłaszanych przez poddawane inspekcji podsystem jako całość. Może to również zmniejszyć liczbę zdarzeń dla innych subskrybentów.

Opcja ratelimit może służyć do włączania/wyłączania tego limitu szybkości.

Włączyć: ./mde_support_tool.sh ratelimit -e true

Wyłączyć: ./mde_support_tool.sh ratelimit -e false

Po włączeniu ratelimit reguła zostanie dodana w auditD do obsługi 2500 zdarzeń na sekundę.

Uwaga

Skontaktuj się z pomocą techniczną firmy Microsoft, jeśli potrzebujesz pomocy dotyczącej analizowania i łagodzenia problemów z wydajnością związanych z inspekcją lub wdrażania wykluczeń AuditD na dużą skalę.

Zobacz też

Porada

Chcesz dowiedzieć się więcej? Engage ze społecznością microsoft security w naszej społeczności technicznej: Ochrona punktu końcowego w usłudze Microsoft Defender Tech Community.