Sysdig – galingas sistemos stebėjimo ir trikčių šalinimo įrankis, skirtas Linux


Sysdig yra atvirojo kodo, kelių platformų, galingas ir lankstus sistemos stebėjimo ir trikčių šalinimo įrankis, skirtas Linux; jis taip pat veikia „Windows“ ir „Mac OSX“, tačiau turi ribotas funkcijas ir gali būti naudojamas sistemos analizei, tikrinimui ir derinimui.

Paprastai, norėdami atlikti „Linux“ stebėjimo ir derinimo užduotis, turėtumėte naudoti įvairius „Linux“ našumo stebėjimo ir trikčių šalinimo įrankius, įskaitant toliau išvardytus:

  1. strace – atraskite sistemos iškvietimus ir signalus procesui.
  2. tcpdump – neapdoroto tinklo srauto stebėjimas.
  3. netstat – tinklo ryšių stebėjimas.
  4. htop – procesų stebėjimas realiu laiku.
  5. iftop – tinklo pralaidumo stebėjimas realiuoju laiku.
  6. lsof – peržiūrėti, kuriuos failus atidaro koks procesas.

Tačiau sysdig integruoja tai, ką siūlo visi pirmiau minėti įrankiai ir daugelis kitų, į vieną paprastą programą, juo labiau su nuostabiu konteinerių palaikymu. Tai leidžia užfiksuoti, išsaugoti, filtruoti ir ištirti tikrąjį „Linux“ sistemų ir konteinerių elgesį (įvykių srautą).

Jame yra komandų eilutės sąsaja ir galinga interaktyvi vartotojo sąsaja (csysdig), kuri leidžia stebėti sistemos veiklą realiuoju laiku arba atlikti pėdsakų išrašymą ir išsaugoti vėlesnei analizei. Toliau pateiktame vaizdo įraše galite pamatyti, kaip veikia csysdig.

„Sysdig“ funkcijos:

  • Jis yra greitas, stabilus ir paprastas naudoti, visapusiškai gerai dokumentuotas.
  • Pateikiamas su vietiniu konteinerių technologijų, įskaitant Docker, LXC, palaikymu.
  • Jis yra scenarijus Lua; siūlo kaltus (lengvus Lua scenarijus) užfiksuotiems sistemos įvykiams apdoroti.
  • Palaiko naudingą išvesties filtravimą.
  • Palaiko sistemos ir programų sekimą.
  • Jį galima integruoti su Ansible, Puppet ir Logstash.
  • Įgalinti išplėstinės žurnalo analizės pavyzdį.
  • Ji taip pat siūlo „Linux“ serverio atakų (kriminalistikos) analizės funkcijas, skirtas etiniams įsilaužėliams ir daug daugiau.

Šiame straipsnyje parodysime, kaip įdiegti sysdig Linux sistemoje ir naudoti jį su pagrindiniais sistemos analizės, stebėjimo ir trikčių šalinimo pavyzdžiais.

Kaip įdiegti „Sysdig“ sistemoje „Linux“.

Įdiegti sysdig paketą taip pat paprasta, kaip paleisti toliau pateiktą komandą, kuri patikrins visus reikalavimus; jei viskas yra vietoje, ji atsisiųs ir įdiegs paketą iš Draios APT/YUM saugyklos.

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

Įdiegę turite paleisti sysdig kaip root, nes tam reikia prieigos prie svarbių sričių, pvz., /proc failų sistemos, /dev/sysdig* > įrenginius ir reikia automatiškai įkelti sysdig-probe branduolio modulį (jei taip nėra); kitu atveju naudokite komandą sudo.

Pats paprasčiausias pavyzdys yra paleisti jį be jokių argumentų, tai leis jums peržiūrėti „Linux“ sistemos įvykių srautą, atnaujintą realiuoju laiku:

sudo sysdig

Aukščiau pateikta išvestis (neapdoroti duomenys) jums tikriausiai nėra prasminga, kad būtų naudingesnė išvestis, paleiskite csysdig:

sudo csysdig 

Pastaba: norėdami iš tikrųjų pajusti šį įrankį, turite naudoti sysdig, kuri sukuria neapdorotus duomenis, kaip matėme anksčiau, iš paleidimo Linux sistema: jums reikia suprasti, kaip naudoti filtrus ir kaltus.

Bet jei jums reikia neskausmingos sysdig priemonės – tęskite su csysdig.

„Sysdig“ kaltų ir filtrų supratimas

Sysdig kaltai yra minimalūs Lua scenarijai, skirti nagrinėti sysdig įvykių srautą ir atlikti naudingus sistemos trikčių šalinimo veiksmus ir kt. Toliau pateikta komanda padės peržiūrėti visus turimus kaltus:

sudo sysdig -cl

Ekrano kopijoje rodomas pavyzdinis įvairių kategorijų kaltų sąrašas.

Jei norite sužinoti daugiau informacijos apie konkretų kaltą, naudokite vėliavėlę -i:

sudo sysdig -i topprocs_cpu

„Sysdig“ filtrai suteikia daugiau galios išvesties rūšiai, kurią galite gauti iš įvykių srautų, jie leidžia tinkinti išvestį. Turėtumėte juos nurodyti komandinės eilutės pabaigoje.

Paprastas ir labiausiai paplitęs filtras yra pagrindinis „class.field=value“ patikrinimas. Taip pat galite derinti kaltus su filtrais, kad pritaikytumėte dar efektyviau.

Norėdami peržiūrėti galimų laukų klasių, laukų ir jų aprašymų sąrašą, įveskite:


sudo sysdig -l

„Linux“ sistemos sekimo failo kūrimas

Norėdami iškelti sysdig išvestį į failą vėlesnei analizei, naudokite vėliavėlę -w kaip ši.

Galite perskaityti pėdsakų iškelties failą naudodami vėliavėlę -r:


sudo sysdig -r trace.scap

Parinktis -s naudojama norint nurodyti baitų duomenų kiekį, kuris turi būti užfiksuotas kiekvienam sistemos įvykiui. Šiame pavyzdyje mes filtruojame mongod proceso įvykius.

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

„Linux“ procesų stebėjimas

Norėdami išvardyti sistemos procesus, įveskite:

sudo sysdig -c ps

Stebėkite procesus pagal procesoriaus naudojimą

Norėdami žiūrėti geriausius procesus pagal procesoriaus naudojimo procentą, paleiskite šią komandą:

sudo sysdig -c topprocs_cpu

Tinklo ryšių ir I/O stebėjimas

Norėdami peržiūrėti sistemos tinklo ryšius, paleiskite:

sudo sysdig -c netstat

Ši komanda padės išvardyti populiariausius tinklo ryšius pagal bendrą baitų skaičių:

sudo sysdig -c topconns

Tada taip pat galite išvardyti populiariausius procesus pagal tinklo I/O, kaip nurodyta toliau:

sudo sysdig -c topprocs_net    

Stebėjimo sistemos failo I/O

Galite išvesti sistemos procesų nuskaitytus ir įrašytus duomenis, kaip nurodyta toliau:

sudo sysdig -c echo_fds

Norėdami išvardyti populiariausius procesus pagal (skaityti + rašyti) disko baitus, naudokite:

sudo sysdig -c topprocs_file   

„Linux“ sistemos našumo trikčių šalinimas

Norėdami stebėti sistemos kliūtis (lėtus sistemos skambučius), vykdykite šią komandą:

sudo sysdig -c bottlenecks

Sekite proceso vykdymo laiką

Norėdami sekti proceso vykdymo laiką, galite paleisti šią komandą ir įrašyti pėdsaką į failą:

sudo sysdig -w extime.scap -c proc_exec_time 

Tada naudokite filtrą, kad sumažintumėte konkretaus proceso detales (šiame pavyzdyje postgres), kaip nurodyta toliau:

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

Atraskite lėtą tinklą I/0

Ši paprasta komanda padės aptikti lėtą tinklo I/0:

sudo sysdig -c netlower     

Žurnalo failų įrašų stebėjimas

Žemiau pateikta komanda padeda rodyti kiekvieną pranešimą, parašytą į syslog, jei jus domina konkretaus proceso žurnalo įrašai, sukurkite pėdsakų išklotinę ir atitinkamai ją išfiltruokite, kaip parodyta anksčiau:

sudo sysdig -c spy_syslog      

Galite spausdinti bet kokius bet kurio proceso metu įrašytus duomenis į žurnalo failą taip:

sudo sysdig -c spy_logs   

HTTP serverio užklausų stebėjimas

Jei mūsų sistemoje veikia HTTP serveris, pvz., Apache arba Nginx, peržiūrėkite serverio užklausų žurnalą naudodami šią komandą:

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

Rodyti prisijungimo apvalkalus ir interaktyvią vartotojo veiklą

Toliau pateikta komanda leis peržiūrėti visus prisijungimo apvalkalo ID:

sudo sysdig -c list_login_shells

Paskutinis, bet ne mažiau svarbus dalykas – galite parodyti interaktyvią sistemos vartotojų veiklą, pavyzdžiui:

sudo sysdig -c spy_users

Daugiau informacijos apie naudojimą ir pavyzdžių rasite sysdig ir csysdig vadovo puslapiuose:

man sysdig 
man csysdig

Nuoroda: https://www.sysdig.org/

Taip pat patikrinkite šiuos naudingus „Linux“ našumo stebėjimo įrankius:

  1. BCC – dinaminiai sekimo įrankiai, skirti Linux našumo stebėjimui, tinklų kūrimui ir kt
  2. pyDash – žiniatinkliu pagrįstas Linux našumo stebėjimo įrankis
  3. Perf – našumo stebėjimo ir analizės įrankis, skirtas Linux
  4. Collectl: patobulintas „viskas viename“ našumo stebėjimo įrankis, skirtas „Linux“.
  5. Netdata – „Linux“ sistemų našumo stebėjimo realiuoju laiku įrankis
Išvada

„Sysdig“ sujungia daugelio komandų eilutės įrankių funkcijas į vieną puikią sąsają, todėl galite įsigilinti į „Linux“ sistemos įvykius ir rinkti duomenis, išsaugoti vėlesnei analizei ir siūlo neįtikėtiną konteinerių palaikymą.

Jei norite užduoti klausimų ar pasidalyti mintimis apie šį įrankį, naudokite toliau pateiktą atsiliepimų formą.