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:
- strace – odkrywa wywołania systemowe i sygnały do procesu.
- tcpdump – surowe monitorowanie ruchu sieciowego.
- netstat – monitorowanie połączeń sieciowych.
- htop – monitorowanie procesów w czasie rzeczywistym.
- iftop – monitorowanie przepustowości sieci w czasie rzeczywistym.
- 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:
- BCC — narzędzia dynamicznego śledzenia do monitorowania wydajności systemu Linux, pracy w sieci i nie tylko
- pyDash – internetowe narzędzie do monitorowania wydajności systemu Linux
- Perf — narzędzie do monitorowania i analizy wydajności dla systemu Linux
- Collectl: zaawansowane, wszechstronne narzędzie do monitorowania wydajności dla systemu Linux
- 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.