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:
- strace – otkrijte sistemske pozive i signale procesu.
- tcpdump – sirovo praćenje mrežnog saobraćaja.
- netstat – praćenje mrežnih veza.
- htop – praćenje procesa u realnom vremenu.
- iftop – praćenje propusnosti mreže u realnom vremenu.
- 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:
- BCC – Dinamički alati za praćenje za praćenje performansi Linuxa, umrežavanje i još mnogo toga
- pyDash – Web baziran alat za praćenje performansi Linuxa
- Perf- Alat za praćenje i analizu performansi za Linux
- Collectl: Napredni sve-u-jednom alat za praćenje performansi za Linux
- 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.