Wyszukiwanie w witrynie

Sysdig — potężne narzędzie do monitorowania systemu i rozwiązywania problemów dla systemu Linux


Sysdig to wieloplatformowe, wydajne i elastyczne narzędzie do monitorowania systemu i rozwiązywania problemów o otwartym kodzie źródłowym dla systemu Linux; działa również w systemach Windows i Mac OSX, ale z ograniczoną funkcjonalnością i może być używany do analizy, inspekcji i debugowania systemu.

Zwykle do wykonywania zadań monitorowania i debugowania systemu Linux można zastosować mieszankę różnych narzędzi do monitorowania wydajności systemu Linux i rozwiązywania problemów, w tym tych wymienionych poniżej:

  1. strace – odkrywa wywołania systemowe i sygnały do procesu.
  2. tcpdump – surowe monitorowanie ruchu sieciowego.
  3. netstat – monitorowanie połączeń sieciowych.
  4. htop – monitorowanie procesów w czasie rzeczywistym.
  5. iftop – monitorowanie przepustowości sieci w czasie rzeczywistym.
  6. lsof – wyświetl, które pliki są otwierane przez który proces.

Jednak sysdig integruje to, co oferują wszystkie powyższe narzędzia i wiele innych, w jednym i prostym programie, tym bardziej dzięki niesamowitej obsłudze kontenerów. Umożliwia przechwytywanie, zapisywanie, filtrowanie i badanie rzeczywistego zachowania (strumienia zdarzeń) systemów Linux i kontenerów.

Jest wyposażony w interfejs wiersza poleceń i potężny interaktywny interfejs użytkownika (csysdig), który pozwala oglądać aktywność systemu w czasie rzeczywistym lub wykonać zrzut śledzenia i zapisać do późniejszej analizy. Możesz zobaczyć, jak działa csysdig z poniższego filmu.

Funkcje Sysdig:

  • Jest szybki, stabilny i łatwy w użyciu, a jego działanie jest dobrze udokumentowane.
  • Zawiera natywną obsługę technologii kontenerowych, w tym Docker, LXC.
  • Można go skryptować w Lua; oferuje dłuta (lekkie skrypty Lua) do przetwarzania przechwyconych zdarzeń systemowych.
  • Obsługuje przydatne filtrowanie wyników.
  • Obsługuje śledzenie systemu i aplikacji.
  • Można go zintegrować z Ansible, Puppet i Logstash.
  • Włącz przykładową zaawansowaną analizę logów.
  • Oferuje także funkcje analizy ataków na serwer Linux (kryminalistyki) dla etycznych hakerów i wiele więcej.

W tym artykule pokażemy, jak zainstalować sysdig w systemie Linux i używać go na podstawowych przykładach analizy systemu, monitorowania i rozwiązywania problemów.

Jak zainstalować Sysdig w systemie Linux

Instalacja pakietu sysdig jest tak prosta, jak uruchomienie poniższego polecenia, które sprawdzi wszystkie wymagania; jeśli wszystko jest na swoim miejscu, pobierze i zainstaluje pakiet z repozytorium Draios APT/YUM.

curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash 
OR
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

Po zainstalowaniu musisz uruchomić sysdig jako root, ponieważ wymaga on dostępu do krytycznych obszarów, takich jak system plików /proc, /dev/sysdig* urządzeń i musi automatycznie załadować moduł jądra sysdig-probe (jeśli tak nie jest); w przeciwnym razie użyj polecenia sudo.

Najbardziej podstawowym przykładem jest uruchomienie go bez żadnych argumentów, umożliwi to przeglądanie strumienia zdarzeń systemu Linux aktualizowanych w czasie rzeczywistym:

sudo sysdig

Powyższe dane wyjściowe (surowe dane) być może nie mają dla ciebie większego sensu, ponieważ w celu uzyskania bardziej przydatnego wyniku uruchom csysdig:

sudo csysdig 

Uwaga: aby naprawdę poznać działanie tego narzędzia, musisz użyć narzędzia sysdig, które generuje surowe dane, jak widzieliśmy wcześniej, z działającego System Linux: wymaga to zrozumienia, jak używać filtrów i dłut.

Jeśli jednak potrzebujesz bezbolesnego sposobu korzystania z sysdig – kontynuuj z csysdig.

Zrozumienie dłut i filtrów Sysdig

Dłuta Sysdig to minimalne skrypty Lua służące do sprawdzania strumienia zdarzeń sysdig w celu wykonywania przydatnych działań związanych z rozwiązywaniem problemów z systemem i nie tylko. Poniższe polecenie pomoże Ci wyświetlić wszystkie dostępne dłuta:

sudo sysdig -cl

Zrzut ekranu pokazuje przykładową listę dłut w różnych kategoriach.

Jeśli chcesz dowiedzieć się więcej o konkretnym dłucie, użyj flagi -i:

sudo sysdig -i topprocs_cpu

Filtry Sysdig dodają więcej mocy do rodzaju wyników, które można uzyskać ze strumieni zdarzeń, umożliwiają dostosowanie wyjścia. Należy je podać na końcu wiersza poleceń.

Prostym i najczęstszym filtrem jest podstawowe sprawdzenie „class.field=value”. Możesz także łączyć dłuta z filtrami, aby uzyskać jeszcze skuteczniejsze dostosowania.

Aby wyświetlić listę dostępnych klas pól, pól i ich opisów należy wpisać:


sudo sysdig -l

Tworzenie pliku śledzenia systemu Linux

Aby zrzucić dane wyjściowe sysdig do pliku do późniejszej analizy, użyj flagi -w w ten sposób.

Możesz odczytać plik zrzutu śledzenia, używając flagi -r:


sudo sysdig -r trace.scap

Opcja -s służy do określenia ilości bajtów danych, które mają zostać przechwycone dla każdego zdarzenia systemowego. W tym przykładzie filtrujemy zdarzenia dla procesu mongod.

sudo sysdig -s 3000 -w trace.scap
sudo sysdig -r trace.scap proc.name=mongod

Monitorowanie procesów Linuksa

Aby wyświetlić listę procesów systemowych, wpisz:

sudo sysdig -c ps

Monitoruj procesy według użycia procesora

Aby obejrzeć najpopularniejsze procesy według procentu wykorzystania procesora, uruchom to polecenie:

sudo sysdig -c topprocs_cpu

Monitorowanie połączeń sieciowych i wejść/wyjść

Aby wyświetlić połączenia sieciowe systemu, uruchom:

sudo sysdig -c netstat

Poniższe polecenie pomoże Ci wyświetlić listę najlepszych połączeń sieciowych według łącznej liczby bajtów:

sudo sysdig -c topconns

Następnie możesz także wyświetlić listę najważniejszych procesów według wejść/wyjść sieciowych w następujący sposób:

sudo sysdig -c topprocs_net    

Monitorowanie we/wy plików systemowych

Możesz wyprowadzać dane odczytywane i zapisywane przez procesy w systemie, jak poniżej:

sudo sysdig -c echo_fds

Aby wyświetlić listę najważniejszych procesów według (odczytu i zapisu) bajtów dysku, użyj:

sudo sysdig -c topprocs_file   

Rozwiązywanie problemów z wydajnością systemu Linux

Aby mieć oko na wąskie gardła systemu (powolne wywołania systemowe), wykonaj to polecenie:

sudo sysdig -c bottlenecks

Śledź czas wykonania procesu

Aby śledzić czas wykonania procesu, możesz uruchomić to polecenie i zrzucić ślad do pliku:

sudo sysdig -w extime.scap -c proc_exec_time 

Następnie użyj filtra, aby wyzerować szczegóły konkretnego procesu (w tym przykładzie postgres) w następujący sposób:

sudo sysdig -r extime.scap proc.name=postgres

Odkryj powolną sieć I/0

To proste polecenie pomoże Ci wykryć powolne we/0 sieci:

sudo sysdig -c netlower     

Oglądanie wpisów w pliku dziennika

Poniższe polecenie pomaga wyświetlić każdą wiadomość zapisaną w syslog. Jeśli interesują Cię wpisy dziennika dla konkretnego procesu, utwórz zrzut śledzenia i odpowiednio go odfiltruj, jak pokazano wcześniej:

sudo sysdig -c spy_syslog      

Możesz wydrukować dowolne dane zapisane przez dowolny proces w pliku dziennika w następujący sposób:

sudo sysdig -c spy_logs   

Monitorowanie żądań serwera HTTP

Jeśli masz w naszym systemie serwer HTTP, taki jak Apache lub Nginx, przejrzyj dziennik żądań serwera za pomocą tego polecenia:

sudo sysdig -c httplog    
sudo sysdig -c httptop   [Print Top HTTP Requests] 

Wyświetlaj powłoki logowania i interaktywną aktywność użytkownika

Poniższe polecenie umożliwi Ci wyświetlenie wszystkich identyfikatorów powłoki logowania:

sudo sysdig -c list_login_shells

Na koniec możesz pokazać interaktywną aktywność użytkowników systemu w następujący sposób:

sudo sysdig -c spy_users

Aby uzyskać więcej informacji i przykładów użycia, przeczytaj strony podręcznika sysdig i csysdig:

man sysdig 
man csysdig

Odniesienie: https://www.sysdig.org/

Sprawdź także te przydatne narzędzia do monitorowania wydajności systemu Linux:

  1. BCC — narzędzia dynamicznego śledzenia do monitorowania wydajności systemu Linux, pracy w sieci i nie tylko
  2. pyDash – internetowe narzędzie do monitorowania wydajności systemu Linux
  3. Perf — narzędzie do monitorowania i analizy wydajności dla systemu Linux
  4. Collectl: zaawansowane, wszechstronne narzędzie do monitorowania wydajności dla systemu Linux
  5. Netdata – narzędzie do monitorowania wydajności w czasie rzeczywistym dla systemów Linux
Wniosek

Sysdig łączy funkcje wielu narzędzi wiersza poleceń w jeden niezwykły interfejs, umożliwiając w ten sposób głębokie wnikanie w zdarzenia systemu Linux w celu gromadzenia danych, zapisywania ich do późniejszej analizy i oferuje niesamowitą obsługę kontenerów.

Aby zadać pytania lub podzielić się przemyśleniami na temat tego narzędzia, skorzystaj z poniższego formularza opinii.