Sysdig - moćan alat za praćenje sustava i rješavanje problema za Linux
Sysdig je open-source, cross-platform, moćan i fleksibilan alat za praćenje sustava i rješavanje problema za Linux; također radi na Windows i Mac OSX, ali s ograničenom funkcionalnošću i može se koristiti za analizu sustava, inspekciju i otklanjanje pogrešaka.
Uobičajeno biste koristili kombinaciju 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 pogrešaka u Linuxu:
- strace – otkrijte sistemske pozive i signale procesu.
- tcpdump – praćenje sirovog mrežnog prometa.
- netstat – praćenje mrežnih veza.
- htop – praćenje procesa u stvarnom vremenu.
- iftop – praćenje propusnosti mreže u stvarnom vremenu.
- lsof – pogledajte koje su datoteke otvorene kojim procesom.
Međutim, sysdig integrira ono što svi gore navedeni alati i mnogi drugi nude u jednom i jednostavnom programu, štoviše uz nevjerojatnu podršku za spremnike. Omogućuje vam snimanje, spremanje, filtriranje i ispitivanje stvarnog ponašanja (tok događaja) Linux sustava kao i spremnika.
Dolazi sa sučeljem naredbenog retka i snažnim interaktivnim korisničkim sučeljem (csysdig) koji vam omogućuju praćenje aktivnosti sustava u stvarnom vremenu ili izvođenje ispisa tragova i spremanje za kasniju analizu. Možete vidjeti kako csysdig radi iz videa ispod.
Značajke Sysdiga:
- Brz je, stabilan i jednostavan za korištenje s dobrom dokumentacijom.
- Dolazi s izvornom podrškom za tehnologije spremnika, uključujući Docker, LXC.
- Može se skriptirati u Lua; nudi chisels (lagane Lua skripte) za obradu snimljenih događaja sustava.
- Podržava korisno filtriranje izlaza.
- Podržava praćenje sustava i aplikacija.
- Može se integrirati s Ansible, Puppet i Logstash.
- Omogući uzorak napredne analize dnevnika.
- Također nudi značajke analize napada (forenzike) Linux poslužitelja za etičke hakere i još mnogo toga.
U ovom ćemo članku pokazati kako instalirati sysdig na Linux sustav i koristiti ga s osnovnim primjerima analize sustava, nadzora i rješavanja problema.
Kako instalirati Sysdig u Linux
Instalacija sysdig paketa je jednostavna kao pokretanje naredbe u nastavku, koja će provjeriti sve zahtjeve; ako je sve na mjestu, preuzet će 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 sustav datoteka, /dev/sysdig* uređaji i treba automatski učitati sysdig-probe kernel modul (u slučaju da nije); inače koristite naredbu sudo.
Najosnovniji primjer je pokretanje bez ikakvih argumenata, što će vam omogućiti da vidite ažurirani tok događaja vašeg Linux sustava u stvarnom vremenu:
sudo sysdig
Gornji izlaz (neobrađeni podaci) vam možda nema puno smisla, za korisniji izlaz pokrenite csysdig:
sudo csysdig
Napomena: Da biste dobili pravi dojam ovog alata, morate koristiti sysdig koji proizvodi neobrađene podatke kao što smo vidjeli prije, iz pokrenutog Linux sustav: ovo zahtijeva od vas da razumijete kako koristiti filtre i dlijeta.
Ali ako trebate bezbolan način korištenja sysdig – nastavite s csysdig.
Razumijevanje Sysdig dlijeta i filtara
Sysdig chisels minimalne su Lua skripte za ispitivanje toka događaja sysdig-a za izvođenje korisnih radnji za rješavanje problema u sustavu i više. Naredba u nastavku pomoći će vam da vidite sva dostupna dlijeta:
sudo sysdig -cl
Snimka zaslona prikazuje ogledni popis dlijeta u različitim kategorijama.
Ako želite saznati više informacija o određenom dlijetu, upotrijebite oznaku -i
:
sudo sysdig -i topprocs_cpu
Sysdig filtri dodaju više snage vrsti izlaza koji možete dobiti iz tokova događaja, omogućuju vam da prilagodite izlaz. Trebali biste ih navesti na kraju naredbenog retka.
Jednostavan i najčešći filtar je osnovna “class.field=value” provjera, također možete kombinirati dlijeta s filtrima za još moćnije prilagodbe.
Za pregled popisa dostupnih klasa polja, polja i njihovih opisa upišite:
sudo sysdig -l
Stvaranje datoteke praćenja sustava Linux
Za ispis sysdig izlaza u datoteci za kasniju analizu, upotrijebite oznaku -w
ovako.
Datoteku ispisa praćenja možete pročitati pomoću oznake -r:
sudo sysdig -r trace.scap
Opcija -s
koristi se za određivanje količine bajtova podataka koji će biti snimljeni 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
Praćenje Linux procesa
Za popis procesa sustava upišite:
sudo sysdig -c ps
Pratite procese prema upotrebi procesora
Da biste gledali najbolje procese prema postotku korištenja CPU-a, pokrenite ovu naredbu:
sudo sysdig -c topprocs_cpu
Praćenje mrežnih veza i I/O
Da biste vidjeli mrežne veze sustava, pokrenite:
sudo sysdig -c netstat
Sljedeća naredba pomoći će vam da ispišete najbolje mrežne veze prema ukupnom broju bajtova:
sudo sysdig -c topconns
Zatim, također možete navesti glavne procese prema mrežnim I/O na sljedeći način:
sudo sysdig -c topprocs_net
Praćenje U/I datoteka sustava
Možete ispisati podatke koje čitaju i pišu procesi na sustavu na sljedeći način:
sudo sysdig -c echo_fds
Za popis glavnih procesa po (čitanju + pisanju) bajtovima diska, koristite:
sudo sysdig -c topprocs_file
Rješavanje problema s performansama Linux sustava
Da biste pratili uska grla sustava (spori sistemski pozivi), izvršite ovu naredbu:
sudo sysdig -c bottlenecks
Pratite vrijeme 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 upotrijebite filtar 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 naredba pomoći će vam otkriti sporu mrežu I/0:
sudo sysdig -c netlower
Gledanje unosa datoteke dnevnika
Naredba u nastavku pomaže vam prikazati svaku poruku napisanu u syslog, ako ste zainteresirani za unose dnevnika za određeni proces, stvorite ispis traga i filtrirajte ga prema tome kao što je prikazano prije:
sudo sysdig -c spy_syslog
Možete ispisati sve podatke koje je zapisao bilo koji proces u datoteku dnevnika na sljedeći način:
sudo sysdig -c spy_logs
Praćenje zahtjeva HTTP poslužitelja
Ako imate HTTP poslužitelj kao što je Apache ili Nginx koji radi na našem sustavu, pregledajte zapisnik zahtjeva poslužitelja ovom naredbom:
sudo sysdig -c httplog
sudo sysdig -c httptop [Print Top HTTP Requests]
Prikaz školjki za prijavu i interaktivne korisničke aktivnosti
Naredba u nastavku omogućit će vam pregled svih ID-ova ljuske za prijavu:
sudo sysdig -c list_login_shells
Na kraju, ali ne manje važno, možete prikazati interaktivnu aktivnost korisnika sustava na sljedeći način:
sudo sysdig -c spy_users
Za više informacija o korištenju i primjere, 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:
- BCC – Alati za dinamičko praćenje za praćenje performansi Linuxa, umrežavanje i više
- pyDash – alat za praćenje performansi Linuxa temeljen na webu
- Perf - alat za praćenje i analizu performansi za Linux
- Collectl: napredni sveobuhvatni alat za praćenje performansi za Linux
- Netdata – Alat za praćenje performansi u stvarnom vremenu za Linux sustave
Zaključak
Sysdig objedinjuje funkcionalnosti iz brojnih alata naredbenog retka u jedno izvanredno sučelje, omogućujući vam da duboko kopate po događajima vašeg Linux sustava kako biste prikupili podatke, spremili ih za kasniju analizu i nudi nevjerojatnu podršku za spremnike.
Za postavljanje bilo kakvih pitanja ili dijeljenje mišljenja o ovom alatu upotrijebite obrazac za povratne informacije u nastavku.