Rozwiązywanie problemów z wydajnością Ochrona punktu końcowego w usłudze Microsoft Defender w systemie Linux
Dotyczy:
- serwer Ochrona punktu końcowego w usłudze Microsoft Defender
- Microsoft Defender dla serwerów
Chcesz poznać usługę ochrony punktu końcowego w usłudze Microsoft Defender? Utwórz konto, aby skorzystać z bezpłatnej wersji próbnej.
W tym artykule opisano sposób zawężenia problemów z wydajnością związanych z usługą Defender for Endpoint w systemie Linux. Dostępne są narzędzia diagnostyczne ułatwiające zrozumienie i wyeliminowanie istniejących niedoborów zasobów i procesów wpływających na wydajność. Te narzędzia diagnostyczne można również wykorzystać do zwiększenia widoczności w portalu Microsoft Defender. Wąskie gardła w co najmniej jednym podsystemie sprzętowym powodują głównie problemy z wydajnością, 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.
Istnieją trzy różne sposoby rozwiązywania problemów z hałaśliwymi procesami i katalogami przy użyciu narzędzi diagnostycznych z Ochrona punktu końcowego w usłudze Microsoft Defender w systemie Linux:
- Korzystanie ze statystyk ochrony w czasie rzeczywistym
- Używanie źródeł gorących zdarzeń
- Korzystanie ze statystyk eBPF
Rozwiązywanie problemów z wydajnością przy użyciu statystyk ochrony w czasie rzeczywistym
Dotyczy:
- Tylko problemy z wydajnością związane z programem antywirusowym
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:
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 organizacja zarządza urządzeniem, administrator może wyłączyć ochronę w czasie rzeczywistym, korzystając z instrukcji opisanych 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ć również składnik wykrywania i reagowania na punkty końcowe (EDR). W takim przypadku należy dodać globalne wykluczenia z programów antywirusowych i EDR. W tym przypadku wykonaj kroki opisane w sekcji Rozwiązywanie problemów z wydajnością przy użyciu źródeł gorących zdarzeń.
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
iInsiderFast
. 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 totrue
. 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.Dane wyjściowe tego polecenia pokazują wszystkie procesy i skojarzone z nimi działania skanowania.
Wpisz następujące polecenia:
mdatp diagnostic real-time-protection-statistics --sort --top 4
Dane wyjściowe to lista czterech najważniejszych współautorów problemów z wydajnością. Na przykład dane wyjściowe polecenia są podobne do następujących:
===================================== Process id: 560 Name: NetworkManager Path: "/usr/sbin/NetworkManager" Total files scanned: 261 Scan time (ns): "3070788919" Status: Active ===================================== Process id: 1709561 Name: snapd Path: "/snap/snapd/23545/usr/lib/snapd/snapd" Total files scanned: 247 Scan time (ns): "19926516003" Status: Active ===================================== Process id: 596 Name: systemd-logind Path: "/usr/lib/systemd/systemd-logind" Total files scanned: 29 Scan time (ns): "716836547" Status: Active ===================================== Process id: 1977683 Name: cupsd Path: "/usr/sbin/cupsd" Total files scanned: 20 Scan time (ns): "985110892" Status: Active =====================================
Aby zwiększyć wydajność usługi Defender for Endpoint w systemie Linux, zlokalizuj usługę z największą liczbą w wierszu
Total files scanned
i dodaj dla niego wykluczenie antywirusowe (dokładnie oceń, czy można je bezpiecznie wykluczyć). 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.
Rozwiązywanie problemów z wydajnością przy użyciu źródeł gorących zdarzeń
Dotyczy:
- Problemy z wydajnością plików i plików wykonywalnych, które zużywają większość cykli procesora CPU w całym systemie plików.
Źródła gorących zdarzeń to funkcja, która pozwala klientom określić, który proces lub katalog jest odpowiedzialny za wysokie użycie zasobów. Aby zbadać, który proces/plik wykonywalny generuje najwięcej szumów, wykonaj następujące kroki.
Uwaga
Te polecenia wymagają uprawnień administratora. Upewnij się, że można użyć programu sudo.
Najpierw sprawdź poziom dziennika na maszynie.
mdatp health --field log_level
Jeśli nie jest w "debugowaniu", musisz go zmienić, aby uzyskać szczegółowy raport dotyczący gorących plików / plików wykonywalnych.
sudo mdatp log level set --level debug
Log level configured successfully
Aby zebrać bieżące statystyki (dla plików),
sudo mdatp diagnostic hot-event-sources files
Dane wyjściowe wyglądają podobnie do następujących w konsoli programu (jest to tylko fragment całego danych wyjściowych). W tym miejscu pierwszy wiersz pokazuje liczbę (częstotliwość wystąpienia), a drugi — ścieżkę pliku.
Total Events: 11179 Time: 12s. Throughput: 75.3333 events/sec.
=========== Top 684 Hot Event Sources ===========
count file path
2832 /mnt/RamDisk/postgres_data/pg_wal/0000000100000014000000A5
632 /mnt/RamDisk/postgres_data/base/635594/2601
619 /mnt/RamDisk/postgres_data/base/635597/2601
618 /mnt/RamDisk/postgres_data/base/635596/2601
618 /mnt/RamDisk/postgres_data/base/635595/2601
616 /mnt/RamDisk/postgres_data/base/635597/635610
615 /mnt/RamDisk/postgres_data/base/635596/635602
614 /mnt/RamDisk/postgres_data/base/635595/635606
514 /mnt/RamDisk/postgres_data/base/635594/635598_fsm
496 /mnt/RamDisk/postgres_data/base/635597/635610_fsm
To polecenie generuje raport źródła zdarzeń gorącej, który jest zapisywany w folderze lokalnym, który można dokładniej zbadać. Dane wyjściowe wyglądają następująco w pliku json;
{
"startTime": "1729535104539160",
"endTime": "1729535117570766",
"totalEvent": "11373",
"eventSource": [
{
"authCount": "2832",
"csId": "",
"notifyCount": "0",
"path": "/mnt/RamDisk/postgres_data/pg_wal/0000000100000014000000A5",
"pidCount": "1",
"teamId": ""
},
{
"authCount": "632",
"csId": "",
"notifyCount": "0",
"path": "/mnt/RamDisk/postgres_data/base/635594/2601",
"pidCount": "1",
"teamId": ""
}
]
}
W tym przykładzie widać, że plik /mnt/RamDisk/postgres_data/pg_wal/0000000100000014000000A5 generuje najwięcej działań. Podobnie w przypadku plików wykonywalnych,
sudo mdatp diagnostic hot-event-sources executables
Dane wyjściowe wyglądają podobnie do następujących w konsoli programu .
Total Events: 47382 Time: 18s. Throughput: 157 events/sec.
=========== Top 23 Hot Event Sources ===========
count executable path
8216 /usr/lib/postgresql/12/bin/psql
5721 /usr/lib/postgresql/12/bin/postgres (deleted)
3557 /usr/bin/bash
378 /usr/bin/clamscan
88 /usr/bin/sudo
70 /usr/bin/dash
30 /usr/sbin/zabbix_agent2
10 /usr/bin/grep
8 /usr/bin/gawk
6 /opt/microsoft/mdatp/sbin/wdavdaemonclient
4 /usr/bin/sleep
Jest to dane wyjściowe zapisane w raporcie źródła gorącego zdarzenia w formacie json;
{
"startTime": "1729534260988396",
"endTime": "1729534280026883",
"totalEvent": "48165",
"eventSource": [
{
"authCount": "8126",
"csId": "",
"notifyCount": "0",
"path": "/usr/lib/postgresql/12/bin/psql",
"pidCount": "2487",
"teamId": ""
},
{
"authCount": "5127",
"csId": "",
"notifyCount": "0",
"path": "/usr/lib/postgresql/12/bin/postgres",
"pidCount": "2144",
"teamId": ""
}
]
}
W tym przykładzie po 18s polecenie pokazuje, że wykonywalne; /usr/lib/postgresql/12/bin/psql i /usr/lib/postgresql/12/bin/postgres generują największą aktywność.
Po zakończeniu badania możesz zmienić poziom dziennika z powrotem na "info".
sudo mdatp log level set --level info
Log level configured successfully
Aby zwiększyć wydajność usługi Defender for Endpoint w systemie Linux, znajdź ścieżkę o największej liczbie w wierszu count i dodaj globalne wykluczenie procesu (jeśli jest to plik wykonywalny) lub globalne wykluczenie pliku/folderu (jeśli jest to plik) dla niego (starannie oceń, czy można je bezpiecznie wykluczyć). Aby uzyskać więcej informacji, zobacz Konfigurowanie i weryfikowanie wykluczeń dla usługi Defender dla punktu końcowego w systemie Linux.
Rozwiązywanie problemów z wydajnością przy użyciu statystyk eBPF
Dotyczy:
- Wszystkie zdarzenia plików/procesów, w tym problemy z wydajnością na podstawie wywołań systemowych.
Polecenie statystyki eBPF (rozszerzony filtr pakietów Berkeley) zapewnia wgląd w najważniejsze zdarzenia/proces generujący najwięcej zdarzeń plików wraz z ich identyfikatorami syscall. Gdy wywołania systemowe są wykonywane z systemu, w systemie jest generowane duże obciążenie. Statystyki eBPF mogą służyć do identyfikowania takich problemów.
Aby zebrać bieżące statystyki przy użyciu statystyk eBPF, uruchom polecenie:
mdatp diagnostic ebpf-statistics
Dane wyjściowe są wyświetlane bezpośrednio w konsoli programu i będą wyglądać podobnie do następujących (jest to tylko fragment wszystkich danych wyjściowych):
Top initiator paths:
/usr/lib/postgresql/12/bin/psql : 902
/usr/bin/clamscan : 349
/usr/sbin/zabbix_agent2 : 27
/usr/lib/postgresql/12/bin/postgres : 10
Top syscall ids:
80 : 9034
57 : 8932
60 : 8929
59 : 4942
112 : 4898
90 : 179
87 : 170
119 : 32
288 : 19
41 : 15
To polecenie monitoruje system przez 20 sekund i wyświetla wyniki. W tym miejscu górna ścieżka inicjatora (postgresql/12/bin/psql) pokazuje ścieżkę procesu, który wygenerował najwięcej wywołań systemowych.
Aby zwiększyć wydajność usługi Defender for Endpoint w systemie Linux, znajdź usługę z najwyższym count
wynikiem w wierszu Top initiator path
i dodaj dla niego globalne wykluczenie procesu (dokładnie oceń, czy można je bezpiecznie wykluczyć). Aby uzyskać więcej informacji, zobacz Konfigurowanie i weryfikowanie wykluczeń dla usługi Defender dla punktu końcowego w systemie Linux.
Konfigurowanie wykluczeń globalnych w celu zwiększenia wydajności
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ą. Aby uzyskać więcej informacji, zobacz Konfigurowanie i weryfikowanie wykluczeń usługi Ochrona punktu końcowego w usłudze Microsoft Defender w systemie Linux. Jeśli nadal występują problemy z wydajnością, skontaktuj się z pomocą techniczną w celu uzyskania dalszych instrukcji i ograniczenia ryzyka.
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.