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:
- strace – descoperiți apeluri de sistem și semnale către un proces.
- tcpdump – monitorizarea brută a traficului de rețea.
- netstat – monitorizarea conexiunilor la rețea.
- htop – monitorizarea procesului în timp real.
- iftop – monitorizarea în timp real a lățimii de bandă a rețelei.
- 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:
- BCC – Instrumente de urmărire dinamică pentru monitorizarea performanței Linux, rețele și multe altele
- pyDash – Un instrument de monitorizare a performanței Linux bazat pe web
- Perf- Un instrument de monitorizare și analiză a performanței pentru Linux
- Collectl: Un instrument avansat de monitorizare a performanței All-in-One pentru Linux
- 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.