Sysdig - Snažan alat za praćenje sistema i rješavanje problema za Linux


Sysdig je open-source, cross-platform, moćan i fleksibilan alat za praćenje i rješavanje problema za Linux; takođe radi na Windows i Mac OSX, ali sa ograničenom funkcionalnošću i može se koristiti za analizu sistema, inspekciju i otklanjanje grešaka.

Obično biste koristili mješavinu različitih alata za praćenje performansi Linuxa i rješavanje problema, uključujući ove dolje navedene za obavljanje zadataka praćenja i otklanjanja grešaka u Linuxu:

  1. strace – otkrijte sistemske pozive i signale procesu.
  2. tcpdump – sirovo praćenje mrežnog saobraćaja.
  3. netstat – praćenje mrežnih veza.
  4. htop – praćenje procesa u realnom vremenu.
  5. iftop – praćenje propusnosti mreže u realnom vremenu.
  6. lsof – pogledajte koje datoteke otvara koji proces.

Međutim, sysdig integriše ono što svi gore navedeni alati i mnoge druge, nude u jednom i jednostavnom programu, još više sa neverovatnom podrškom za kontejnere. Omogućava vam da uhvatite, sačuvate, filtrirate i ispitate stvarno ponašanje (tok događaja) Linux sistema kao i kontejnera.

Dolazi sa interfejsom komandne linije i moćnim interaktivnim korisničkim sučeljem (csysdig) koji vam omogućava da pratite aktivnosti sistema u realnom vremenu ili izvršite dump traga i sačuvate za kasniju analizu. Kako radi csysdig možete pogledati u videu ispod.

Sysdig karakteristike:

  • Brz je, stabilan i lak za upotrebu sa sveobuhvatno dobro dokumentovanim.
  • Dolazi s izvornom podrškom za kontejnerske tehnologije, uključujući Docker, LXC.
  • Može se skriptirati u Lua; nudi dlijeta (lake Lua skripte) za obradu snimljenih sistemskih događaja.
  • Podržava korisno filtriranje izlaza.
  • Podržava praćenje sistema i aplikacija.
  • Može se integrirati sa Ansible-om, Puppet-om i Logstash-om.
  • Omogući uzorak napredne analize dnevnika.
  • Također nudi funkcije analize napada na Linux server (forenziku) za etičke hakere i još mnogo toga.

U ovom članku ćemo pokazati kako instalirati sysdig na Linux sustav i koristiti ga s osnovnim primjerima analize sistema, praćenja i rješavanja problema.

Kako instalirati Sysdig u Linux

Instaliranje sysdig paketa je jednostavno kao i pokretanje naredbe ispod, koja će provjeriti sve zahtjeve; ako je sve na svom mestu, on će preuzeti i instalirati paket iz Draios APT/YUM repozitorija.

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

Nakon što ga instalirate, morate pokrenuti sysdig kao root jer zahtijeva pristup kritičnim područjima kao što su /proc sistem datoteka, /dev/sysdig* uređaja i potrebe za automatskim učitavanjem modula kernela sysdig-probe (u slučaju da nije); inače koristite naredbu sudo.

Najosnovniji primjer je pokretanje bez ikakvih argumenata, što će vam omogućiti da vidite vaš Linux sistemski tok događaja koji se ažurira u realnom vremenu:

sudo sysdig

Gore navedeni izlaz (neobrađeni podaci) vam možda nema puno smisla, za korisniji izlaz pokrenite csysdig:

sudo csysdig 

Napomena: Da biste dobili pravi osjećaj ovog alata, trebate koristiti sysdig koji proizvodi sirove podatke kao što smo vidjeli ranije, iz pokretanja Linux sistem: ovo zahtijeva od vas da shvatite kako koristiti filtere i dlijeta.

Ali ako vam treba bezbolan način korištenja sysdig – nastavite s csysdig.

Razumijevanje Sysdig dlijeta i filtera

Sysdig dlijeta su minimalne Lua skripte za ispitivanje toka događaja sysdig radi izvođenja korisnih radnji za rješavanje problema sa sistemom i još mnogo toga. Naredba u nastavku će vam pomoći da vidite sva dostupna dlijeta:

sudo sysdig -cl

Snimak ekrana prikazuje uzorak liste dlijeta u različitim kategorijama.

Ako želite saznati više informacija o određenom dletu, koristite oznaku -i:

sudo sysdig -i topprocs_cpu

Sysdig filteri dodaju više snage vrsti izlaza koju možete dobiti iz tokova događaja, omogućavaju vam da prilagodite izlaz. Trebali biste ih navesti na kraju komandne linije.

Jednostavan i najčešći filter je osnovna provjera “class.field=value”, a također možete kombinirati dlijeta s filterima za još moćnije prilagođavanje.

Da vidite listu dostupnih klasa polja, polja i njihovih opisa, upišite:


sudo sysdig -l

Kreiranje Linux sistemske datoteke za praćenje

Da biste izbacili sysdig izlaz u datoteku za kasniju analizu, koristite oznaku -w ovako.

Možete pročitati datoteku s ispisom tragova pomoću oznake -r:


sudo sysdig -r trace.scap

Opcija -s se koristi za određivanje količine bajtova podataka koji će se uhvatiti za svaki sistemski događaj. U ovom primjeru filtriramo događaje za mongod proces.

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

Nadgledanje Linux procesa

Da navedete sistemske procese, otkucajte:

sudo sysdig -c ps

Nadgledanje procesa prema korištenju CPU-a

Da biste gledali najbolje procese prema procentu upotrebe CPU-a, pokrenite ovu naredbu:

sudo sysdig -c topprocs_cpu

Nadgledanje mrežnih veza i I/O

Da vidite sistemske mrežne veze, pokrenite:

sudo sysdig -c netstat

Sljedeća naredba će vam pomoći da navedete vrhunske mrežne veze prema ukupnom broju bajtova:

sudo sysdig -c topconns

Zatim, također možete navesti top procese po mrežnim I/O na sljedeći način:

sudo sysdig -c topprocs_net    

Monitoring sistemskih datoteka I/O

Možete izvesti podatke koji su pročitani i zapisani od strane procesa na sistemu kao što je dolje:

sudo sysdig -c echo_fds

Da navedete vrhunske procese po (čitanje + pisanje) disk bajtovima, koristite:

sudo sysdig -c topprocs_file   

Rješavanje problema s performansama Linux sistema

Da držite na oku uska grla u sistemu (spori sistemski pozivi), izvršite ovu naredbu:

sudo sysdig -c bottlenecks

Praćenje vremena izvršenja procesa

Da biste pratili vrijeme izvršenja procesa, možete pokrenuti ovu naredbu i ispisati trag u datoteku:

sudo sysdig -w extime.scap -c proc_exec_time 

Zatim koristite filter da smanjite detalje određenog procesa (postgres u ovom primjeru) na sljedeći način:

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

Otkrijte sporu mrežu I/0

Ova jednostavna komanda će vam pomoći da otkrijete sporu mrežu I/0:

sudo sysdig -c netlower     

Gledanje unosa u zapisnik

Naredba u nastavku vam pomaže da prikažete svaku poruku napisanu u syslog, ako ste zainteresirani za unose dnevnika za određeni proces, kreirajte dump tragova i filtrirajte ga u skladu s tim kao što je prikazano prije:

sudo sysdig -c spy_syslog      

Možete odštampati sve podatke napisane bilo kojim procesom u datoteku dnevnika na sljedeći način:

sudo sysdig -c spy_logs   

Nadgledanje zahtjeva HTTP servera

Ako imate HTTP server kao što je Apache ili Nginx koji radi na našem sistemu, pogledajte dnevnik zahtjeva servera pomoću ove naredbe:

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

Prikaži ljuske za prijavu i interaktivnu korisničku aktivnost

Naredba u nastavku će vam omogućiti da vidite sve ID-ove ljuske za prijavu:

sudo sysdig -c list_login_shells

Na kraju, ali ne i najmanje važno, možete prikazati interaktivnu aktivnost korisnika sistema na sljedeći način:

sudo sysdig -c spy_users

Za više informacija o upotrebi i primjera, pročitajte sysdig i csysdig man stranice:

man sysdig 
man csysdig

Referenca: https://www.sysdig.org/

Također provjerite ove korisne alate za praćenje performansi Linuxa:

  1. BCC – Dinamički alati za praćenje za praćenje performansi Linuxa, umrežavanje i još mnogo toga
  2. pyDash – Web baziran alat za praćenje performansi Linuxa
  3. Perf- Alat za praćenje i analizu performansi za Linux
  4. Collectl: Napredni sve-u-jednom alat za praćenje performansi za Linux
  5. Netdata – Alat za praćenje performansi u realnom vremenu za Linux sisteme
Zaključak

Sysdig objedinjuje funkcionalnosti brojnih alata komandne linije u jedno izvanredno sučelje, omogućavajući vam da zadubite duboko u događaje vašeg Linux sistema kako biste prikupili podatke, sačuvali ih za kasniju analizu i nudi nevjerovatnu podršku za kontejnere.

Da biste postavili bilo kakva pitanja ili podijelili bilo koje mišljenje o ovom alatu, koristite obrazac za povratne informacije u nastavku.