Sysdig - Un instrument puternic de monitorizare și depanare a sistemului pentru Linux


Sysdig este un instrument open-source, multiplatformă, puternic și flexibil de monitorizare și depanare a sistemului pentru Linux; funcționează și pe Windows și Mac OSX, dar cu funcționalități limitate și poate fi folosit pentru analiza sistemului, inspecție și depanare.

În mod normal, veți folosi o combinație de diverse instrumente de monitorizare și depanare a performanței Linux, inclusiv cele enumerate mai jos pentru a efectua sarcinile de monitorizare și depanare Linux:

  1. strace – descoperiți apeluri de sistem și semnale către un proces.
  2. tcpdump – monitorizarea brută a traficului de rețea.
  3. netstat – monitorizarea conexiunilor la rețea.
  4. htop – monitorizarea procesului în timp real.
  5. iftop – monitorizarea în timp real a lățimii de bandă a rețelei.
  6. lsof – vedeți ce fișiere sunt deschise prin care proces.

Cu toate acestea, sysdig integrează ceea ce toate instrumentele de mai sus și multe altele oferă într-un singur program simplu, cu atât mai mult cu un suport uimitor de containere. Vă permite să capturați, să salvați, să filtrați și să examinați comportamentul real (fluxul de evenimente) al sistemelor Linux, precum și al containerelor.

Vine cu o interfață de linie de comandă și o interfață de utilizare interactivă puternică (csysdig), care vă permit să urmăriți activitatea sistemului în timp real sau să efectuați o descărcare de urmărire și să salvați pentru analiză ulterioară. Puteți urmări cum funcționează csysdig din videoclipul de mai jos.

Caracteristici Sysdig:

  • Este rapid, stabil și ușor de utilizat, cu o documentare completă.
  • Vine cu suport nativ pentru tehnologiile containerelor, inclusiv Docker, LXC.
  • Este scriptabil în Lua; oferă dalte (scripturi Lua ușoare) pentru procesarea evenimentelor de sistem capturate.
  • Acceptă filtrarea utilă a ieșirii.
  • Suportă urmărirea sistemului și a aplicațiilor.
  • Poate fi integrat cu Ansible, Puppet și Logstash.
  • Activați eșantionul de analiză avansată a jurnalului.
  • Oferă, de asemenea, funcții de analiză a atacurilor de server Linux (medicale criminalistice) pentru hackeri etici și multe altele.

În acest articol, vom arăta cum să instalați sysdig pe un sistem Linux și să îl folosim cu exemple de bază de analiză, monitorizare și depanare a sistemului.

Cum se instalează Sysdig în Linux

Instalarea pachetului sysdig este la fel de simplă ca și rularea comenzii de mai jos, care va verifica toate cerințele; dacă totul este la locul lui, va descărca și instala pachetul din depozitul 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

După ce îl instalați, trebuie să rulați sysdig ca root, deoarece necesită acces la zone critice, cum ar fi sistemul de fișiere /proc, /dev/sysdig* dispozitive și trebuie să încarce automat modulul kernel sysdig-probe (în cazul în care nu este); în caz contrar, utilizați comanda sudo.

Cel mai de bază exemplu este rularea acestuia fără niciun argument, acest lucru vă va permite să vizualizați fluxul de evenimente de sistem Linux actualizat în timp real:

sudo sysdig

Ieșirea de mai sus (date brute) poate nu are prea mult sens pentru dvs., pentru o ieșire mai utilă, rulați csysdig:

sudo csysdig 

Notă: pentru a obține percepția reală a acestui instrument, trebuie să utilizați sysdig care produce date brute așa cum am văzut anterior, dintr-o rulare Sistem Linux: acest lucru vă cere să înțelegeți cum să utilizați filtrele și daltele.

Dar dacă aveți nevoie de un mijloc nedureros de a folosi sysdig – continuați cu csysdig.

Înțelegerea dalților și filtrelor Sysdig

Dălțile Sysdig sunt scripturi Lua minime pentru examinarea fluxului de evenimente sysdig pentru a efectua acțiuni utile de depanare a sistemului și multe altele. Comanda de mai jos vă va ajuta să vedeți toate daltele disponibile:

sudo sysdig -cl

Captura de ecran arată o listă de mostre de dalte din diferite categorii.

Dacă doriți să aflați mai multe informații despre o anumită daltă, utilizați indicatorul -i:

sudo sysdig -i topprocs_cpu

Filtrele Sysdig adaugă mai multă putere tipului de ieșire pe care îl puteți obține din fluxurile de evenimente, vă permit să personalizați ieșirea. Ar trebui să le specificați la sfârșitul unei linii de comandă.

Un filtru simplu și cel mai obișnuit este o verificare de bază „class.field=value”, puteți, de asemenea, să combinați daltele cu filtre pentru personalizări și mai puternice.

Pentru a vedea o listă de clase de câmpuri disponibile, câmpuri și descrierile acestora, tastați:


sudo sysdig -l

Crearea fișierului de urmărire a sistemului Linux

Pentru a descărca ieșirea sysdig într-un fișier pentru o analiză ulterioară, utilizați marcatorul -w în felul acesta.

Puteți citi fișierul de descărcare a urmăririi folosind marcatorul -r:


sudo sysdig -r trace.scap

Opțiunea -s este folosită pentru a specifica cantitatea de octeți de date care trebuie capturați pentru fiecare eveniment de sistem. În acest exemplu, filtrem evenimente pentru procesul mongod.

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

Monitorizarea proceselor Linux

Pentru a lista procesele de sistem, tastați:

sudo sysdig -c ps

Monitorizați procesele în funcție de utilizarea CPU

Pentru a urmări procesele de top în funcție de procentul de utilizare a CPU, rulați această comandă:

sudo sysdig -c topprocs_cpu

Monitorizarea conexiunilor de rețea și I/O

Pentru a vizualiza conexiunile de rețea de sistem, rulați:

sudo sysdig -c netstat

Următoarea comandă vă va ajuta să enumerați conexiunile de rețea de top după numărul total de octeți:

sudo sysdig -c topconns

În continuare, puteți lista procesele de top după I/O rețea, după cum urmează:

sudo sysdig -c topprocs_net    

Monitorizarea I/O fișierului sistemului

Puteți scoate datele citite și scrise de procesele din sistem după cum urmează:

sudo sysdig -c echo_fds

Pentru a enumera procesele de top după octeți de disc (citire + scriere), utilizați:

sudo sysdig -c topprocs_file   

Depanarea performanței unui sistem Linux

Pentru a fi cu ochii pe blocajele sistemului (apeluri lente de sistem), executați această comandă:

sudo sysdig -c bottlenecks

Urmăriți timpul de execuție al unui proces

Pentru a urmări timpul de execuție al unui proces, puteți rula această comandă și descărcați urma într-un fișier:

sudo sysdig -w extime.scap -c proc_exec_time 

Apoi utilizați un filtru pentru a reduce detaliile unui anumit proces (postgres în acest exemplu), după cum urmează:

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

Descoperiți Slow Network I/0

Această comandă simplă vă va ajuta să detectați rețeaua lentă I/0:

sudo sysdig -c netlower     

Vizionarea intrărilor din fișierul jurnal

Comanda de mai jos vă ajută să afișați fiecare mesaj scris în syslog, dacă sunteți interesat de intrările de jurnal pentru un anumit proces, creați un dump de urmărire și filtrați-l în consecință, așa cum se arată mai sus:

sudo sysdig -c spy_syslog      

Puteți imprima orice date scrise de orice proces într-un fișier jurnal, după cum urmează:

sudo sysdig -c spy_logs   

Monitorizarea solicitărilor serverului HTTP

Dacă aveți un server HTTP, cum ar fi Apache sau Nginx, care rulează pe sistemul nostru, consultați jurnalul de solicitări al serverului cu această comandă:

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

Afișați shell-urile de conectare și activitatea interactivă a utilizatorului

Comanda de mai jos vă va permite să vizualizați toate ID-urile shell-ului de conectare:

sudo sysdig -c list_login_shells

Nu în ultimul rând, puteți afișa activitatea interactivă a utilizatorilor sistemului astfel:

sudo sysdig -c spy_users

Pentru mai multe informații despre utilizare și exemple, citiți paginile de manual sysdig și csysdig:

man sysdig 
man csysdig

Referință: https://www.sysdig.org/

Verificați și aceste instrumente utile de monitorizare a performanței Linux:

  1. BCC – Instrumente de urmărire dinamică pentru monitorizarea performanței Linux, rețele și multe altele
  2. pyDash – Un instrument de monitorizare a performanței Linux bazat pe web
  3. Perf- Un instrument de monitorizare și analiză a performanței pentru Linux
  4. Collectl: Un instrument avansat de monitorizare a performanței All-in-One pentru Linux
  5. Netdata – Un instrument de monitorizare a performanței în timp real pentru sistemele Linux
Concluzie

Sysdig reunește funcționalitățile din numeroase instrumente de linie de comandă într-o interfață remarcabilă, permițându-vă astfel să explorați în profunzime evenimentele sistemului dvs. Linux pentru a aduna date, cu excepția unei analize ulterioare și oferă suport incredibil pentru containere.

Pentru a pune întrebări sau a împărtăși orice părere despre acest instrument, utilizați formularul de feedback de mai jos.