Sysdig: Itfarë është dhe si ta përdorim atë

Sysdig është një mjet universal i dukshmërisë së sistemit me mbështetje për kontejnerë. Ajo që e bën Sysdig të veçantë, është se ai lidh veten në kernelin e makinerisë dhe ndan informacionin mbi bazën për një enë. Për qëllimin e këtij tutoriali, ne do të përqendrohemi në versionin me burim të hapur të Sysdig.

Në seksionet e ardhshme, ju do të:

  • Instaloni Sysdig
  • Spin up një instalim Wordpress duke përdorur kompozim docker
  • Përdorni Sysdig për të mbledhur ngjarje dhe analizuar ato në një kohë të mëvonshme
  • Përdorni Sysdig për të analizuar të dhënat në kohë reale

parakushtet

  • Docker është instaluar në sistemin tuaj. Për detaje rreth instalimit të Docker, referojuni faqes Install Docker.
  • Docker Compose është instaluar në sistemin tuaj. Referojuni faqes Install Docker Compose për udhëzime se si të instaloni Docker Compose.
  • Kokat e kernelit janë instaluar në sistemin pritës.

Instaloni Sysdig

Ndiqni këto hapa për të instaluar Sysdig brenda një enë Docker:

  1. Në një dritare të terminalit, ekzekutoni urdhrin e mëposhtëm për të tërhequr imazhin Sysdig Docker:
docker pull sysdig / sysdig
Përdorimi i etiketës së parazgjedhur: Më e fundit e tërheqjes: Tërhiqni nga sysdig / sysdig 2967486b0658: Tërhiqni të plotë 78101b780c72: Tërhiqni të plotë 7e78b657334d: Tërhiqni të plotë 650327159ca8: Tërhiqni të plotë 47ebf73ab754: Tërhuni të plotë bf51ac76a6d9: Pullse të plotë Tërhiqe të plotë 6de86c8ed6e9: Tërhiqe të plotë 8d1825f8be4b: Tërhiq tërhiqeni Digest: sha256: bbfe6953fd2b3221a8974eb13024dd33c7e78aebef8fee3d7a0d9ecdeed84ce0 Statusi: Shkarkoni imazhin më të ri për sysdig / sysdig

2. Drejtoni Sysdig në një enë duke futur:

docker run -i -t --name sysdig --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v / dev: / host / dev -v / proc: / host / proc: ro -v / boot: / host / boot: ro -v / lib / module: / host / lib / module: ro -v / usr: / host / usr: ro sysdig / sysdig
* Vendosja e lidhjeve / usr / src nga hosti * Shkarkimi i sondës sysdig, nëse është e pranishme * Drejtimi i dkms instalon për Gabim në sysdig! jehona Titujt e kernelit tuaj për kernel 3.10.0-957.12.2.el7.x86_64 nuk mund të gjenden në /lib/modules/3.10.0-957.12.2.el7.x86_64/build ose /lib/modules/3.10.0-957.12 .2.el7.x86_64 / burimi. * Ndërtimi i dkms-it dështoi, nuk u gjet dot /var/lib/dkms/sysdig/0.26.4/build/make.log * Përpjekja për të ngarkuar një sonda sysdig-sistemi, nëse është e pranishme .0-957.12.2.el7.x86_64 Konfiguroni gjetjen e kernelit në /host/boot/config-3.10.0-957.12.2.el7.x86_64 * Duke u përpjekur për të shkarkuar modulin e preokupuar nga https://s3.amazonaws.com/download .draios.com / të qëndrueshme / sysdig-sondë-binare / sysdig-sondë-0.26.4-x86_64-3.10.0-957.12.2.el7.x86_64-82e2ae1fb159132636f7b50a762f20ef.ko Shkarkoni sukses, duke ngarkuar rrënjën e modulit @ 7b14a23f22eb: / #

Disa gjëra për tu shënuar në lidhje me urdhrin e mësipërm:

  • Flamuri -i mban STDIN hapur.
  • Parametri --privileged siguron qasje në të gjitha pajisjet në host. Gjithashtu, ai vendos SELinux që të lejojë që proceset të ndodhin brenda kontejnerit të njëjtin akses ndaj hostit, si një proces që funksionon në host.
  • Flamuri -v specifikon listën e skedarëve (në host) që Sysdig mund të ketë qasje.

Spin Up Një Instalim Wordpress

Në këtë pjesë, ju do të instaloni Wordpress duke përdorur komandën docker-compose.

  1. Në një dritare të re të terminalit, zhvendosni në drejtorinë tuaj të projekteve dhe shtypni komandat e mëposhtme:
mkdir wordpress-sysdig && cd wordpress-sysdig

2. Krijoni një skedar të quajtur kompozim docker me përmbajtjen e mëposhtme:

versioni: Shërbimet '3.3': db: imazhi: mysql: 5.7 vëllime: - db_data: / var / lib / mysql rinisni: gjithnjë ambienti: MYSQL_ROOT_PASSWORD: dishepres MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress varet: wordpress wordpress: portet e fundit: - "8000: 80" rinisni: gjithnjë mjedis: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: vëllime të fjalës: db_data: {}

3. Drejtoni komandën docker-compose up në modalitetin e shkëputur me:

docker-compose up -d
Krijimi i rrjetit "wordpress-sysdig_default" me drejtuesin e parazgjedhur Krijimi i vëllimit "wordpress-sysdig_db_data" me drejtuesin e parazgjedhur Fjala tërheqëse (wordpress: fundit) ... e fundit: Tërheqja nga biblioteka / wordpress 8ec398bc0356: Tërhiqe të plotë 85cf4fc86478: Tërhiqe të plotë 970dadf4qb 8c04561117a4: Pull plotë d6b7434b63a2: Pull plotë 83d8859e9744: Pull plotë 9c3d824d0ad5: Pull plotë 9e316fd5b3b3: Pull plotë 578b40496c37: Pull plotë 814ae7711d3c: Pull plotë 4896fed78b6b: Pull plotë e74d71e9611d: Pull plotë 46017765526c: Pull plotë 280386098458: Pull f32eb0d8c540 plotë: Pull 5c47b9ea747a plotë: Tërhiqe ecda5b7aad12 plotë: Pull plotë 84256a6b6b44: Pull plotë 35d4f385efb7: Pull bf697c2ae701 plotë: Pull plotë d054b015f084 Tërhiqi plotë Digest: sha256: 73e8d8adf491c7a358ff94c74c8ebe35cb5f8857e249eb8ce6062b8576a01465 Statusi: Shkarkuar imazhin më të ri për WordPress: Krijimi fundit wordpress-sysdig_db_1 ... bëhet Krijimi wordpress-sysdig_word shtyp_1 ... e bërë

4. Ju mund të verifikoni statusin e kontejnerëve tuaj me:

dok i ps

Nëse gjithçka po shkon mirë, duhet të shihni diçka të ngjashme me rezultatin e mëposhtëm:

SHENJTSIA E KOMUNAVE PTAR IMAGIMIN E KONTAINERIT NAMJET PREJTAT E STATUSIT F390eec29f52 wordpress: fundit "docker-enterpoint.s ..." Rreth një minutë më parë Deri rreth një minutë 0.0.0.0:8000->80/tcp wordpress-sysdig_wordpress_1 a844840626d8 mysql: 5.7 "point " s ... "Rreth një minutë më parë Lart Rreth një minutë 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1 7b14a23f22eb sysdig / sysdig" /docker-entrypoint.… "13 minuta më parë Deri në 13 minuta sysdig

5. Tani Wordpress është duke funksionuar. Drejtoni shfletuesin tuaj në http: // localhost: 8000 për të filluar magjistarin e instalimit:

6. Pasi të keni mbaruar magjistari i instalimit, le të shkojmë përpara dhe të krijojmë një postim kampioni:

Mbledhja e të dhënave në një skedar

Në këtë pjesë, ne do të tregojmë se si mund ta përdorni Sysdig për të mbledhur ngjarje dhe t'i analizoni ato në një kohë të mëvonshme.

  1. Për të hedhur të gjitha ngjarjet e kapura në një skedar, zhvendoseni në enën Sysdig dhe shkruani komandën e mëposhtme:
sysdig -w monitorim-wordpress.scap

2. Në një dritare të re të terminalit, përdorni ab për të bërë 10000 kërkesa me maksimum 100 kërkesa që ekzekutohen njëkohësisht:

ab -n 1000 -c 100 http: // localhost: 8000 /? p = 7
Ky është ApacheBench, Versioni 2.3 <$ Revision: 1430300 $> E drejta e autorit 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Liçensuar në Fondacionin Apache Softuer, http://www.apache.org/ Benchmarking localhost (të jetë i durueshëm) 100 kërkesa të përfunduara 200 kërkesa të përfunduara 300 kërkesa të përfunduara 400 kërkesa të përfunduara 500 kërkesa të përfunduara 600 kërkesa të përfunduara 700 kërkesa të përfunduara 800 kërkesa të përfunduara 900 kërkesa të përfunduara 1000 kërkesa të përfunduara 1000 kërkesa

Vini re se prodhimi i mësipërm ishte i cunguar për shkurtësi.

3. Kaloni përsëri në turne në kontejnerin Sysdig dhe ndaloni kapjen e të dhënave duke hyrë në "CTRL + C".

Analizimi i të dhënave

Tani, nëse shikoni madhësinë e skedarit monitorues-wordpress.scap, do të vini re që Sysdig kapi jo më pak se 80M të të dhënave:

ls -lh monitorim-wordpress.scap
-rw-r - r--. 1 rrënjë rrënjë 80M Jan 7 16:28 monitorim-fjalëformim.scap

Për të gjetur rrugën tuaj përmes këtij mali të të dhënave, do të përdorni diçka që quhet daltë.

Një daltë është në thelb një skenar Lua që analizon rrjedhën e ngjarjeve dhe kryen veprime të dobishme.

Ju mund të ekzekutoni komandën e mëposhtme për të shfaqur listën e daltave:

sysdig -cl
Kategoria: Aplikimi --------------------- httplogu kërkesat e HTTP log httptop Kërkesat më të mira HTTP memcachelog memorcached log log Kategoria: Përdorimi i CPU ---------- --------- spektrogram Vizualizoni vonesën e OS në kohë reale. subsecoffset Vizualizoni kohën e ekzekutimit të kompensimit të nënkërkuesve. topcontainers_cpu Kontejnerët kryesorë nga përdorimi i CPU topprocs_cpu Proceset më të larta sipas përdorimit të CPU Kategoria: Gabimet ---------------- topcontainers_error Kontejnerët kryesorë sipas numrit të gabimeve e gabimeve

Vini re se prodhimi i mësipërm ishte i cunguar për shkurtësi.

Për të tërhequr informacion të detajuar në lidhje me një daltë, ekzekutoni komandën sysdig të ndjekur nga -i flamurin dhe emrin e daltës, si në shembullin e mëposhtëm:

sysdig -i httptop
Kategoria: Aplikimi --------------------- httptop Kërkesat më të mira HTTP Shfaq kërkesat më të larta HTTP nga: ncalls, koha ose bytes Argumentet: [varg] nga - Shfaq transaksionet më të mira HTTP nga: ncalls, koha ose nga tes, parazgjedhja është ncalls

Vazhdimi i shembullit tonë, këtu është se si mund të përdorni daltën httptop për të shfaqur kërkesat më të larta HTTP:

sysdig -r monitorim-wordpress.scap -c httptop
metoda ncalls url ----------------------------------------------- --------------------------------- 2001 GET localhost: 8000 /? P = 7 14 OPTIONS * 2 GET localhost: 8000 / favicon.ico 1 GET /wp-content/themes/twentytwenty/assets/fonts/inter/Inter-upright-var.woff2 1 GET localhost / v1.24 / kontejnerë / 6bd8418eb03f / json 1 GET localhost / v1.24 / kontejnerë / 06def7875617 / json 1 GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 GET /v1.24/images/db39680b63ac47a1d989da7b742f7b382af34d85a68214f8977bad59c05901 1 GET localhost: 8000 /

Ju mund të shihni të njëjtat informacione në një format miqësor me kontejnerë me flamurin e kontrolluesit:

sysdig -r monitorim-wordpress.scap -c httptop -pcontainer
metoda e enës ncalls url ---------------------------------------------- ---------------------------------- 1000 wordpress-sysdig_wo GET localhost: 8000 /? P = 7 1000 host GET localhost: 8000 / p = 7 43 OPTIONS wordpress-sysdig_wo * 1 sysdig GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 sysdig GET localhost / v1.24 / kontejnerë / 06def7875617 / json 1 sysdig GET localhost / v1.24 / kontejnerë / cd06093b141b / json 1 sysdig GET /v1.24/images/00e230fe24da9067f9b6e65cfbe9935a5affac1ae8e44edb6a5b0ccc26374d 1 sysdig GET /v1.24/images/db39680b63adb4d9d4b9d9bdbbbbbbbbbbbbbbbb

Gërmimi më i thellë

Sysdig kap informacione të pasura me përmbajtje që ju lejojnë të merrni njohuri të hollësishme në punën e brendshme të kontejnerëve tuaj. Le të supozojmë se po ekzekutoni disa kontejnerë dhe dëshirojmë të dimë se cili proces konsumon më shumë CPU.

  1. Renditni kontejnerët që ishin aktivë gjatë periudhës në të cilën keni kapur ngjarje:
sysdig -r monitorim-wordpress.scap -c lscontainers

2. Ju mund të identifikoni enën që ka konsumuar më së shumti CPU me:

sysdig -r monitorim-wordpress.scap -c topcontainers_cpu
Kontejner%% kontejner.name --------------------------------------------- ----------------------------------- 5.37% wordpress-sysdig_wordpress_1 1.35% wordpress-sysdig_db_1 0.84% ​​host 0.51% sysdig

3. Mund të gërmoni akoma më thellë dhe të identifikoni procesin më intensiv të CPU me daltën topprocs_cpu:

sysdig -r monitorim-wordpress.scap -c enë topprocs_cpu.name përmban wordpress_1
PID Procesi i CPU% ---------------------------------------------- ---------------------------------- 0.12% apache2 8383 0.11% apache2 9413 0.11% apache2 9300 0.11% apache2 9242 0.11% apache2 8897 0.11% apache2 8422 0.10% apache2 9372 0.10% apache2 9241 0.10% apache2 8424 0.09% apache2 9429

Nëse dëshironi të shihni më shumë detaje, dalta ps ofron një alternativë më verbale:

sysdig -r monitorim-wordpress.scap -c enë ps.name = wordpress-sysdig_wordpress_1
TID PID USER Virt RES FDLIMIT CMD 5896 5896 rrënjës 232.82M 22.32M 429.496.729 apache2 8383 8383 www-dhënat 307.44M 25.46M 429.496.729 apache2 8422 8422 www-dhënat 235.44M 22.90M 429.496.729 apache2 8424 8424 www-dhënat 307.44M 25.46M 429.496.729 apache2 8897 8897 www-të dhëna 235.44M 22.89M 429496729 apache2 9154 9154 www-të dhëna 235.44M 22.91M 429496729 apache2 9241 9241 www-të dhëna 307.44M 25.66M 429496729 apache2 9242 9242 www-të dhëna 307.44M 25.67M 4294929 22.89M 429496729 apache2 9372 9372 www-data 235.44M 22.89M 429496729 apache2 9413 9413 www-data 233.44M 20.77M 429496729 apache2

Këshilla të dobishme

Nëse e drejtoni Sysdig për të kapur ngjarje si në shembullin e mësipërm (sysdig -w monitorim-wordpress.scap), skedari i ngjarjes do të rritet vazhdimisht derisa të konsumojë të gjithë hapësirën në dispozicion. Ka disa metoda që mund të ndihmojnë në parandalimin e ndodhjes së kësaj:

  • Specifikoni numrin e ngjarjeve që Sysdig duhet të kapë duke e kaluar atë flamurin -n. Pasi Sysdig kap numrin e caktuar të ngjarjeve, automatikisht do të dalë:
sysdig -n 5000 -w monitorim-fjalëformim.scap
  • Përdorni flamurin -C për të konfiguruar Sysdig në mënyrë që të prish kapjen në skedarë më të vegjël të një madhësie të specifikuar. Shembulli i mëposhtëm ruan vazhdimisht ngjarjet në skedarë <10MB:
sysdig -C 10 -w monitorim-fjalëformim.scap

Kjo do të krijojë një bandë skedarësh jo më të mëdha se 10 MB:

ls -lh monitorim-wordpress *
-rw-r - r--. 1 rrënjë rrënjore 9.6M Jan 7 17:13 monitorim-fjalëformim.scap0 -rw-r - r--. 1 rrënjë rrënjësore 9.6M Jan 7 17:14 monitorim-fjalëpress.scap1 -rw-r - r--. 1 rrënjë rrënjësore 9.6M Jan 7 17:14 monitorim-fjalëpress.scap2 -rw-r - r--. 1 rrënjë rrënjësore 9.6M Jan 7 17:14 monitorim-fjalëformim.scap3 -rw-r - r--. 1 rrënjë rrënjë 9.6M Jan 7 17:14 monitorim-fjalëformim.scap4 -rw-r - r--. 1 rrënjë rrënjësore 9.6M Jan 7 17:14 monitorim-fjalëformim.scap5 -rw-r - r--. 1 rrënjë rrënjësore 9.6M Jan 7 17:14 monitorim-fjalëformim.scap6 -rw-r - r--. 1 rrënjë rrënjësore 9.6M Jan 7 17:14 monitorim-fjalëpress.scap7 -rw-r - r--. 1 rrënjë rrënjë 6.4M Jan 7 17:14 monitorim-fjalëformim.scap8
  • Specifikoni numrin maksimal të skedarëve që Sysdig duhet t'i mbajë me flamurin -W. Për shembull, ju mund të kombinoni flamujt -C dhe -W si kështu:
sysdig -C 10-W 4 -w monitorim-wordpress.scap

Komanda e mësipërme do të mbajë vetëm katër skedarët e fundit të kapjes:

ls -lh monitorim-wordpress *
-rw-r - r--. 1 rrënjë rrënjësore 7.2M Jan 7 17:21 monitorim-fjalëpresë.scap0 -rw-r - r--. 1 rrënjë rrënjësore 9.6M Jan 7 17:21 monitorim-fjalëformim.scap1 -rw-r - r--. 1 rrënjë rrënjësore 9.6M Jan 7 17:21 monitorim-fjalëformim.scap2 -rw-r - r--. 1 rrënjë rrënjë 9.6M Jan 7 17:21 monitorim-wordpress.scap3 root @ cd06093b141b: / # sysdig -C 10 -W 4 -w monitorim-wordpress.scap

Monitorimi në kohë reale

Me Sysdig, ju gjithashtu mund të analizoni të dhënat në kohë reale. Në pamje të parë, kjo mund të duket si një detyrë e frikshme sepse, si parazgjedhje, të gjitha ngjarjet shtypen vazhdimisht në tastierë. Për fat të mirë, daltë janë këtu për të ndihmuar.

Le të marrim një shembull.

Analizoni proceset tuaja mbi bazën e një kontejneri

  1. Drejtoni komandën e mëposhtme për të renditur kontejnerët tuaj:
dok i ps
SHENJTSIA E IDEVE TTA CONTAINER KOMUNA E KRIJUAR PATTSSIT NAMJET 5b253e74e8e7 sysdig / sysdig "/docker-entrypoint.…" 9 minuta më parë Deri 9 minuta sysdig 06def7875617 wordpress: fundit "docker-entry.s ..." 3 orë më parë Up 3 orë 0.0.0.0:8 -> 80 / tcp wordpress-sysdig_wordpress_1 6bd8418eb03f mysql: 5.7 "docker-entrypoint.s ..." 3 orë më parë Up 3 orë 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1

2. Ju mund të analizoni proceset që funksionojnë në enën WordPress me:

enë topprocs_cpu sysdig-pc -c.name = wordpress-sysdig_wordpress_1

3. Në mënyrë të ngjashme, ju mund të analizoni proceset që ndodhen në enën MySQL:

enë topprocs_cpu sysdig-pc -c.name = wordpress-sysdig_db_1

Vini re se, jo shumë ndryshe nga ky shembull, Sysdig mund të monitorojë trafikun e rrjetit, përdorimin e diskut, etj.

Në këtë tutorial, ju keni tejkaluar bazat e përdorimit të Sysdig për të kuptuar qartë aktivitetin e krijuar nga kontejnerët tuaj. Shembujt në këtë postim në blog ju ndihmuan të filloni dhe, në mësimet e ardhshme, ne do t'ju tregojmë se si të përdorni Csysdig dhe Sysdig Inspect.