Sysdig - Zmogljivo orodje za nadzor in odpravljanje težav v sistemu Linux


Sysdig je odprtokodno, večplastno, zmogljivo in prilagodljivo orodje za nadzor in odpravljanje težav za Linux; deluje tudi v sistemih Windows in Mac OSX, vendar z omejeno funkcionalnostjo in se lahko uporablja za sistemsko analizo, pregled in odpravljanje napak.

Običajno bi za izvajanje nalog Linux za spremljanje in odpravljanje napak uporabljali kombinacijo različnih orodij za spremljanje in odpravljanje težav v Linuxu, vključno s spodaj navedenimi:

  1. strace - odkrijte sistemske klice in signale procesu.
  2. tcpdump - spremljanje surovega omrežnega prometa.
  3. netstat - spremljanje omrežnih povezav.
  4. htop - spremljanje procesa v realnem času.
  5. iftop - nadzor pasovne širine omrežja v realnem času.
  6. lsof - oglejte si, katere datoteke se s katerim postopkom odprejo.

Vendar sysdig integrira vse, kar vsa zgoraj navedena orodja in še veliko več, ponujajo v en sam in preprost program, še bolj z neverjetno podporo za vsebnike. Omogoča vam zajem, shranjevanje, filtriranje in pregled dejanskega vedenja (tok dogodkov) sistemov Linux in zabojnikov.

Na voljo je z vmesnikom ukazne vrstice in zmogljivim interaktivnim uporabniškim vmesnikom (csysdig), ki vam omogoča, da v realnem času spremljate sistemsko aktivnost ali izvedete izpis sledenja in shranite za poznejšo analizo. Kako deluje csysdig, si lahko ogledate iz spodnjega videoposnetka.

  • Je hiter, stabilen in enostaven za uporabo, v celoti pa je dobro dokumentiran.
  • Prihaja z izvorno podporo za tehnologije zabojnikov, vključno z Dockerjem, LXC.
  • Napisan je v Lua; ponuja dleta (lahke skripte Lua) za obdelavo zajetih sistemskih dogodkov.
  • Podpira koristno filtriranje izhodnih podatkov.
  • Podpira sledenje sistema in aplikacij.
  • Lahko ga integrirate z Ansible, Lutka in Logstash.
  • Omogoči vzorčno napredno analizo dnevnika.
  • Ponuja tudi funkcije za analizo napadov strežnikov Linux (forenzika) za etične hekerje in še veliko več.

V tem članku bomo pokazali, kako namestiti sysdig v sistem Linux, in ga uporabili z osnovnimi primeri sistemske analize, spremljanja in odpravljanja težav.

Kako namestiti Sysdig v Linux

Namestitev paketa sysdig je tako enostavna kot zagon spodnjega ukaza, ki bo preveril vse zahteve; če je vse na svojem mestu, bo paket preneslo in namestilo iz skladišča 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 namestitvi morate sysdig zagnati kot root, ker zahteva dostop do kritičnih področij, kot so/proc datotečni sistem,/dev/sysdig * naprave, in mora samodejno naložiti modul jedra sysdig-probe (v primeru, da ni) ; sicer uporabite ukaz sudo.

Najosnovnejši primer je njegovo izvajanje brez argumentov, kar vam bo omogočilo ogled dogodkov v sistemu Linux, posodobljenih v realnem času:

$ sudo sysdig

Zgornji izhod (surovi podatki) se vam morda ne zdi preveč smiseln, za bolj uporaben izhodni zagon csysdig:

$ sudo csysdig 

Opomba: Če želite resnično začutiti to orodje, morate uporabiti sysdig, ki ustvarja neobdelane podatke, kot smo že videli, iz delujočega sistema Linux: to zahteva, da razumete, kako uporabljati filtre in dleta.

Če pa potrebujete neboleče sredstvo za uporabo sysdig - nadaljujte s csysdig.

Razumevanje dlet in filtrov Sysdig

Dleta Sysdig so minimalni skripti Lua za pregled toka dogodkov sysdig za izvajanje koristnih ukrepov za odpravljanje težav v sistemu in še več. Spodnji ukaz vam bo pomagal ogledati vse razpoložljive dleta:

$ sudo sysdig -cl

Posnetek zaslona prikazuje vzorčni seznam dletov v različnih kategorijah.

Če želite izvedeti več informacij o določenem dletu, uporabite zastavico -i :

$ sudo sysdig -i topprocs_cpu

Sysdig filtri dodajo več moči tistemu izhodu, ki ga lahko dobite iz tokov dogodkov, in vam omogočajo, da prilagodite izhod. Določiti jih morate na koncu ukazne vrstice.

Neposreden in najobičajnejši filter je osnovno preverjanje\"class.field = value". Dleta lahko kombinirate tudi s filtri za še močnejše prilagoditve.

Če si želite ogledati seznam razpoložljivih razredov polj, polj in njihovih opisov, vnesite:

$ sudo sysdig -l

Če želite izpis sysdig izpisati v datoteko za poznejšo analizo, uporabite zastavico -w , kot je ta.

Datoteko izpisa sledenja lahko preberete z zastavico -r:

$ sudo sysdig -r trace.scap

Možnost -s se uporablja za določanje količine bajtov podatkov, ki jih je treba zajeti za vsak sistemski dogodek. V tem primeru filtriramo dogodke za postopek mongod.

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

Če želite navesti sistemske procese, vnesite:

$ sudo sysdig -c ps

Če si želite ogledati najboljše procese glede na odstotek porabe procesorja, zaženite ta ukaz:

$ sudo sysdig -c topprocs_cpu

Če si želite ogledati sistemske omrežne povezave, zaženite:

$ sudo sysdig -c netstat

Naslednji ukaz vam bo pomagal navesti najboljše omrežne povezave po skupnih bajtih:

$ sudo sysdig -c topconns

Nato lahko navedete tudi najboljše procese glede na omrežni vhod/izhod, kot sledi:

$ sudo sysdig -c topprocs_net    

Podatke, ki jih preberejo in zapišejo procesi v sistemu, lahko izpišete spodaj:

$ sudo sysdig -c echo_fds

Če želite seznam najpomembnejših procesov po (branje + pisanje) diskovnih bajtih uporabite:

$ sudo sysdig -c topprocs_file   

Če želite paziti na sistemska ozka grla (počasni sistemski klici), izvedite ta ukaz:

$ sudo sysdig -c bottlenecks

Če želite slediti času izvajanja procesa, lahko zaženete ta ukaz in sled iztisnete v datoteko:

$ sudo sysdig -w extime.scap -c proc_exec_time 

Nato s filtrom natančno določite podrobnosti določenega procesa (postgres v tem primeru), kot sledi:

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

Ta preprost ukaz vam bo pomagal zaznati počasen omrežni I/0:

$ sudo sysdig -c netlower     

Spodnji ukaz vam pomaga prikazati vsako sporočilo, zapisano v syslog, če vas zanimajo vnosi v dnevnik za določen proces, ustvarite izpis sledenja in ga ustrezno filtrirajte, kot je prikazano prej:

$ sudo sysdig -c spy_syslog      

V datoteko dnevnika lahko natisnete vse podatke, zapisane s katerim koli postopkom:

$ sudo sysdig -c spy_logs   

Če v našem sistemu deluje strežnik HTTP, kot je Apache ali Nginx, poglejte v dnevnik zahtev strežnika s tem ukazom:

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

Spodnji ukaz vam bo omogočil ogled vseh ID-jev prijavne lupine:

$ sudo sysdig -c list_login_shells

Nenazadnje lahko interaktivno aktivnost uporabnikov sistema prikažete takole:

$ sudo sysdig -c spy_users

Za več informacij o uporabi in primere preberite nadzorne strani sysdig in csysdig:

$ man sysdig 
$ man csysdig

Sklic: https://www.sysdig.org/

Preverite tudi ta uporabna orodja za nadzor učinkovitosti Linuxa:

  1. BCC - orodja za dinamično sledenje za spremljanje zmogljivosti Linuxa, mreženje in drugo
  2. pyDash - spletno orodje za spremljanje delovanja Linuxa
  3. Perf - orodje za spremljanje in analizo učinkovitosti za Linux
  4. Collectl: napredno večnamensko orodje za spremljanje učinkovitosti za Linux
  5. Netdata-orodje za spremljanje uspešnosti v realnem času za sisteme Linux

Sysdig združuje funkcionalnosti številnih orodij ukazne vrstice v en izjemen vmesnik, kar vam omogoča, da poglobite svoje sistemske dogodke v sistem Linux za zbiranje podatkov, razen za kasnejšo analizo in ponuja neverjetno podporo za vsebnike.

Če želite vprašati ali deliti svoje mnenje o tem orodju, uporabite spodnji obrazec za povratne informacije.