Sysdig - jaudīgs sistēmas uzraudzības un problēmu novēršanas rīks Linux


Sysdig ir atvērtā koda, starpplatformu, jaudīgs un elastīgs sistēmas uzraudzības un problēmu novēršanas rīks Linux; tas darbojas arī operētājsistēmās Windows un Mac OSX, taču ar ierobežotu funkcionalitāti un to var izmantot sistēmas analīzei, pārbaudei un atkļūdošanai.

Parasti, lai veiktu Linux uzraudzības un atkļūdošanas uzdevumus, jūs izmantojat dažādu Linux veiktspējas uzraudzības un problēmu novēršanas rīku kombināciju, ieskaitot šos, kas uzskaitīti zemāk:

  1. strace - atklāj sistēmas izsaukumus un signālus procesam.
  2. tcpdump - neapstrādāta tīkla trafika uzraudzība.
  3. netstat - tīkla savienojumu uzraudzība.
  4. htop - reāllaika procesu uzraudzība.
  5. iftop - reāllaika tīkla joslas platuma uzraudzība.
  6. lsof - skatiet, kuri faili ir atvērti, izmantojot kādu procesu.

Tomēr sysdig integrē to, ko piedāvā visi iepriekš minētie rīki un daudz kas cits, vienā un vienkāršā programmā, vairāk ar pārsteidzošu konteineru atbalstu. Tas ļauj uztvert, saglabāt, filtrēt un pārbaudīt Linux sistēmu, kā arī konteineru reālo darbību (notikumu straumi).

Tam ir komandrindas interfeiss un jaudīgs interaktīvs lietotāja interfeiss (csysdig), kas ļauj reāllaikā skatīties sistēmas darbību vai veikt izsekošanas izsekošanu un saglabāt vēlākai analīzei. Zemāk redzamajā videoklipā varat noskatīties, kā darbojas csysdig.

  • Tas ir ātrs, stabils un viegli lietojams, vispusīgi labi dokumentēts.
  • Nāk ar vietējo atbalstu konteineru tehnoloģijām, tostarp Docker, LXC.
  • Tas ir rakstāms Lua valodā; piedāvā kalti (vieglie Lua skripti) notverto sistēmas notikumu apstrādei.
  • Atbalsta noderīgu izejas filtrēšanu.
  • Atbalsta sistēmas un lietojumprogrammu izsekošanu.
  • To var integrēt ar Ansible, Puppet un Logstash.
  • iespējojiet izvērsto žurnāla analīzi.
  • Tas piedāvā arī Linux servera uzbrukuma (kriminālistikas) analīzes funkcijas ētiskiem hakeriem un daudz ko citu.

Šajā rakstā mēs parādīsim, kā instalēt sysdig Linux sistēmā, kā arī izmantot to ar sistēmas analīzes, uzraudzības un problēmu novēršanas pamata piemēriem.

Kā instalēt Sysdig Linux

Sysdig pakotnes instalēšana ir tikpat vienkārša kā zemāk esošās komandas palaišana, kas pārbaudīs visas prasības; ja katra lieta ir vietā, tā lejupielādēs un instalēs pakotni no 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

Pēc tā instalēšanas jums jāpalaiž sysdig kā root, jo tam ir nepieciešama piekļuve kritiskām jomām, piemēram,/proc failu sistēma,/dev/sysdig * ierīcēm, un ir automātiski jāielādē sysdig-probe kodola modulis (ja tā nav). ; pretējā gadījumā izmantojiet sudo komandu.

Pats vienkāršākais piemērs ir tā palaišana bez jebkādiem argumentiem. Tas ļaus jums reāllaikā apskatīt savu Linux sistēmas notikumu straumi:

$ sudo sysdig

Iepriekšminētajai izejai (neapstrādātiem datiem), iespējams, nav daudz jēgas, lai izmantotu noderīgāku izvades darbību csysdig:

$ sudo csysdig 

Piezīme. Lai iegūtu patiesu šī rīka izjūtu, jums jāizmanto sysdig, kas no neapstrādāta Linux sistēmas rada neapstrādātus datus, kā mēs redzējām iepriekš: tas prasa, lai jūs saprastu, kā izmantot filtrus un kalti.

Bet, ja jums ir nepieciešami nesāpīgi līdzekļi sysdig lietošanai, turpiniet ar csysdig.

Izpratne par Sysdig kaltiem un filtriem

Sysdig kalti ir minimāli Lua skripti, lai pārbaudītu sysdig notikumu straumi, lai veiktu noderīgas sistēmas problēmu novēršanas darbības un daudz ko citu. Tālāk sniegtā komanda palīdzēs jums apskatīt visus pieejamos kaltus:

$ sudo sysdig -cl

Ekrānā tiek parādīts dažādu kategoriju kaltu paraugu saraksts.

Ja vēlaties uzzināt vairāk informācijas par konkrētu kaltu, izmantojiet karodziņu -i :

$ sudo sysdig -i topprocs_cpu

Sysdig filtri piešķir lielāku jaudu izvades veidam, ko varat iegūt no notikumu plūsmām, un tie ļauj pielāgot izvadi. Tie jānorāda komandrindas beigās.

Vienkāršs un izplatīts filtrs ir pamata pārbaude “class.field = value”. Varat arī kombinēt kaltus ar filtriem, lai iegūtu vēl jaudīgākus pielāgojumus.

Lai skatītu pieejamo lauku klašu, lauku un to aprakstu sarakstu, ierakstiet:

$ sudo sysdig -l

Lai izgūtu sysdig izvadi failā vēlākai analīzei, izmantojiet šādi izmantoto karodziņu -w .

Trace dump failu var izlasīt, izmantojot karogu -r:

$ sudo sysdig -r trace.scap

Opciju -s izmanto, lai norādītu, cik baitu datu jāaptver katram sistēmas notikumam. Šajā piemērā mēs filtrējam notikumus mongodu procesam.

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

Lai uzskaitītu sistēmas procesus, ierakstiet:

$ sudo sysdig -c ps

Lai skatītos galvenos procesus pēc CPU izmantošanas procentiem, izpildiet šo komandu:

$ sudo sysdig -c topprocs_cpu

Lai skatītu sistēmas tīkla savienojumus, palaidiet:

$ sudo sysdig -c netstat

Šī komanda palīdzēs jums uzskaitīt galvenos tīkla savienojumus pēc kopējiem baitiem:

$ sudo sysdig -c topconns

Pēc tam jūs varat arī uzskaitīt galvenos procesus pēc tīkla I/O šādi:

$ sudo sysdig -c topprocs_net    

Sistēmas procesu nolasītos un rakstītos datus var izvadīt šādi:

$ sudo sysdig -c echo_fds

Lai uzskaitītu galvenos procesus pēc (lasīšanas + rakstīšanas) diska baitiem, izmantojiet:

$ sudo sysdig -c topprocs_file   

Lai nepamanītu sistēmas vājās vietas (lēni sistēmas zvani), izpildiet šo komandu:

$ sudo sysdig -c bottlenecks

Lai izsekotu procesa izpildes laiku, varat palaist šo komandu un izsekot izsekošanu failā:

$ sudo sysdig -w extime.scap -c proc_exec_time 

Pēc tam izmantojiet filtru, lai nulles detalizētu informāciju par konkrētu procesu (šajā piemērā postgres) šādi:

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

Šī vienkāršā komanda palīdzēs jums noteikt lēnu tīkla I/0:

$ sudo sysdig -c netlower     

Tālāk sniegtā komanda palīdz jums parādīt visus syslog rakstītos ziņojumus, ja jūs interesē konkrēta procesa žurnāla ieraksti, izveidojiet izsekošanas dumpu un attiecīgi filtrējiet to, kā parādīts iepriekš:

$ sudo sysdig -c spy_syslog      

Jebkuru procesu rakstītos datus žurnāla failā varat izdrukāt šādi:

$ sudo sysdig -c spy_logs   

Ja mūsu sistēmā darbojas HTTP serveris, piemēram, Apache vai Nginx, pārlūkojiet servera pieprasījumu žurnālu ar šo komandu:

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

Tālāk sniegtā komanda ļaus jums apskatīt visus pieteikšanās čaulas ID:

$ sudo sysdig -c list_login_shells

Visbeidzot, bet ne mazāk svarīgi, jūs varat parādīt sistēmas lietotāju interaktīvo darbību, piemēram:

$ sudo sysdig -c spy_users

Lai iegūtu papildinformāciju par lietošanu un piemērus, izlasiet sysdig un csysdig rokasgrāmatas lapas:

$ man sysdig 
$ man csysdig

Atsauce: https://www.sysdig.org/

Pārbaudiet arī šos noderīgos Linux veiktspējas uzraudzības rīkus:

  1. BCC - dinamiskās izsekošanas rīki Linux veiktspējas pārraudzībai, tīklošanai un citur
  2. pyDash - tīmekļa veiktspējas uzraudzības rīks tīmeklī
  3. Perf - Linux veiktspējas uzraudzības un analīzes rīks
  4. Collectl: uzlabots all-in-one veiktspējas uzraudzības rīks Linux
  5. Netdata - reāllaika veiktspējas uzraudzības rīks Linux sistēmām

Sysdig apvieno daudzu komandrindas rīku funkcijas vienā ievērojamā saskarnē, tādējādi ļaujot jums dziļi iedziļināties Linux sistēmas notikumos, lai apkopotu datus, saglabājot tos vēlākai analīzei, un tas piedāvā neticamu konteineru atbalstu.

Lai uzdotu jautājumus vai dalītos domās par šo rīku, izmantojiet tālāk sniegto atsauksmju veidlapu.