Sysdig: Ano Ito at Paano Ito Gagamitin

Ang Sysdig ay isang unibersal na tool ng kakayahang makita ng system na may suporta para sa mga lalagyan. Ang gumagawa ng Sysdig na espesyal, na ito mismo ang nakasabit sa kernel ng makina at ihiwalay ang impormasyon sa isang batayan ng bawat lalagyan. Para sa saklaw ng tutorial na ito, tututuon namin ang bukas na mapagkukunan ng Sysdig.

Sa mga susunod na seksyon, gagawin mo:

  • I-install ang Sysdig
  • Paikutin ang isang pag-install ng Wordpress gamit ang docker-compose
  • Gumamit ng Sysdig upang mangolekta ng mga kaganapan at pag-aralan ang mga ito sa ibang pagkakataon
  • Gumamit ng Sysdig upang pag-aralan ang data sa real-time

Mga kinakailangan

  • Naka-install ang docker sa iyong system. Para sa mga detalye tungkol sa pag-install ng Docker, sumangguni sa pahina ng I-install ang Docker.
  • Ang Docker Compose ay naka-install sa iyong system. Sumangguni sa pahina ng I-install ang Docker Compose para sa mga tagubilin tungkol sa kung paano i-install ang Docker Compose.
  • Ang mga headset ng kernel ay naka-install sa host system.

I-install ang Sysdig

Sundin ang mga hakbang na ito upang mai-install ang Sysdig sa loob ng isang lalagyan ng Docker:

  1. Sa isang window window, isagawa ang sumusunod na utos upang hilahin ang imahe ng Sysdig Docker:
docker pull sysdig / sysdig
Paggamit ng default na tag: pinakabagong pinakabagong: Paghila mula sa sysdig / sysdig 2967486b0658: Hilahin ang kumpletong 78101b780c72: Hilahin ang kumpletong 7e78b657334d: Hilahin ang kumpletong 650327159ca8: Hilahin ang kumpletong 47ebf73ab754: Hilahin ang kumpletong bf51ac76a6d9: Pull kumpleto 0d Kumuha ng kumpletong 6de86c8ed6e9: Hilahin ang kumpletong 8d1825f8be4b: Hilahin ang kumpletong Digest: sha256: bbfe6953fd2b3221a8974eb13024dd33c7e78aebef8fee3d7a0d9ecdeed84ce0 Katayuan: Nai-download na mas bagong imahe para sa sysig /

2. Patakbuhin ang Sysdig sa isang lalagyan sa pamamagitan ng pagpasok:

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 / modules: / host / lib / modules: ro -v / usr: / host / usr: ro sysdig / sysdig
* Pagse-set up / usr / src na link mula sa host * Pag-aalis ng sysdig-probe, kung naroroon * Tumatakbo ang mga dkms na naka-install para sa sysdig Error! icho Ang iyong mga heading ng kernel para sa kernel 3.10.0-957.12.2.el7.x86_64 ay hindi matatagpuan sa /lib/modules/3.10.0-957.12.2.el7.x86_64/build o /lib/modules/3.10.0-957.12 .2.el7.x86_64 / mapagkukunan. * Nabigo ang pagpapatakbo ng dkms, hindi mahanap /var/lib/dkms/sysdig/0.26.4/build/make.log * Sinusubukang mag-load ng isang system sysdig-probe, kung naroroon * Sinusubukang makahanap ng nauna na sysdig-probe para sa 3.10 .0-957.12.2.el7.x86_64 Natagpuan ang kernel config sa /host/boot/config-3.10.0-957.12.2.el7.x86_64 * Sinusubukang i-download ang nauna nang module mula sa https://s3.amazonaws.com/download .draios.com / matatag / sysdig-probe-binaries / sysdig-probe-0.26.4-x86_64-3.10.0-957.12.2.el7.x86_64-82e2ae1fb159132636f7b50a762f20ef.ko I-download ang matagumpay, pag-load ng module root @ 7b14a23f22eb: / #

Ang ilang mga bagay na dapat tandaan tungkol sa utos sa itaas:

  • Ang flag ng -i ay nagpapanatiling bukas ang STDIN.
  • Ang parameter na - Pinahalagahan ay nagbibigay ng pag-access sa lahat ng mga aparato sa host. Nagtatakda din ito ng SELinux upang payagan ang mga proseso na tumatakbo sa loob ng lalagyan ng parehong pag-access sa host bilang isang proseso na tumatakbo sa host.
  • Tinukoy ng flag ng -v ang listahan ng mga file (sa host) na ma-access ng Sysdig.

Paikutin ang isang Pag-install ng Wordpress

Sa seksyong ito, mai-install mo ang Wordpress gamit ang utos na docker-compose.

  1. Sa isang bagong window window, lumipat sa direktoryo ng iyong mga proyekto at i-type ang sumusunod na mga utos:
mkdir wordpress-sysdig && cd wordpress-sysdig

2. Lumikha ng isang file na tinatawag na docker-compose kasama ang mga sumusunod na nilalaman:

bersyon: serbisyo ng 3.3 ': db: imahe: mysql: 5.7 volume: - db_data: / var / lib / mysql restart: palaging kapaligiran: MYSQL_ROOT_PASSWORD: patuloyordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: nakasalalay: wordpress: pinakabagong mga port: - "8000: 80" i-restart: palaging kapaligiran: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: dami ng wordpress: db_data: {}

3. Patakbuhin ang utos ng docker-compose sa hiwalay na mode na may:

docker-compose up -d
Paglikha ng network ng "wordpress-sysdig_default" na may default na driver Lumilikha ng lakas ng tunog "wordpress-sysdig_db_data" na may default na driver Pulling wordpress (wordpress: pinakabagong) ... pinakabagong: Paghila mula sa library / wordpress 8ec398bc0356: Hilahin ang kumpletong 85cf4fc86478: Hilahin kumpleto 970dadf4 8c04561117a4: Pull kumpletong d6b7434b63a2: Pull kumpletong 83d8859e9744: Pull kumpletong 9c3d824d0ad5: Pull kumpletong 9e316fd5b3b3: Pull kumpletong 578b40496c37: Pull kumpletong 814ae7711d3c: Pull kumpletong 4896fed78b6b: Pull kumpletong e74d71e9611d: Pull kumpletong 46017765526c: Pull kumpletong 280,386,098,458: Pull kumpletong f32eb0d8c540: Hilahin kumpletong 5c47b9ea747a: hilahin kumpletong ecda5b7aad12: Pull kumpletong 84256a6b6b44: Pull kumpletong 35d4f385efb7: Pull kumpletong bf697c2ae701: Pull kumpletong d054b015f084: Pull kumpletong Digest: sha256: 73e8d8adf491c7a358ff94c74c8ebe35cb5f8857e249eb8ce6062b8576a01465 Katayuan: Nai-download na mas bagong image for wordpress: pinakabagong Paglikha WordPress-sysdig_db_1 ... tapos Paglikha WordPress-sysdig_word pindutin_1 ... tapos na

4. Maaari mong i-verify ang katayuan ng iyong mga lalagyan na may:

docker ps

Kung ang lahat ay maayos, dapat mong makita ang isang bagay na katulad ng sumusunod na output:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f390eec29f52 wordpress: pinakabagong "docker-entry point.s ..." Mga isang minuto ang nakakaraan Hanggang sa isang minuto 0.0.0.0:8000->80/tcp wordpress-sysdig_wordpress_1 a844840626d8 mysql: 5.7 " s… "Mga isang minuto ang nakakaraan Hanggang sa isang minuto 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1 7b14a23f22eb sysdig / sysdig" /docker-entrypoint.… "13 minuto ang nakalipas Up 13 minuto sysdig

5. Ngayon ang Wordpress ay tumatakbo at tumatakbo. Ituro ang iyong browser sa http: // localhost: 8000 upang simulan ang pag-install wizard:

6. Kapag natapos ang pag-install ng wizard, magpatuloy tayo at lumikha ng isang halimbawang post:

Pagkolekta ng Data sa isang File

Sa seksyong ito, ipapakita namin kung paano mo magagamit ang Sysdig upang mangolekta ng mga kaganapan at pag-aralan ang mga ito sa ibang pagkakataon.

  1. Upang itapon ang lahat ng mga nakunan na kaganapan sa isang file, lumipat sa lalagyan ng Sysdig, at ipasok ang sumusunod na utos:
sysdig -w monitoring-wordpress.scap

2. Sa isang bagong window window, gumamit ng ab upang makagawa ng 10000 mga kahilingan na may maximum na 100 mga kahilingan na tumatakbo nang sabay-sabay:

ab -n 1000 -c 100 http: // localhost: 8000 /? p = 7
Ito ang ApacheBench, Bersyon 2.3 <$ Pagbabago: 1430300 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Naisensiyado sa Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (maging pasyente) Natapos ang 100 kahilingan Natapos na 200 kahilingan Natapos na 300 kahilingan Natapos na 400 kahilingan Natapos na 500 kahilingan Natapos na 600 kahilingan Natapos na 700 kahilingan Natapos na 800 kahilingan Natapos na 900 kahilingan Natapos na 1000 kahilingan Natapos na 1000 kahilingan Natapos na 1000 kahilingan

Tandaan na ang output sa itaas ay na-truncated para sa brevity.

3. Lumipat sa paglalakbay sa Sysdig container at itigil ang pagkuha ng data sa pamamagitan ng pagpasok ng "CTRL + C".

Pag-aaral ng data

Ngayon, kung titingnan mo ang laki ng file ng pagsubaybay-wordpress.scap, mapapansin mo na nakuha ng Sysdig ng hindi bababa sa 80M ng data:

ls -lh monitoring-wordpress.scap
-rw-r - r--. 1 root root 80M Jan 7 16:28 monitoring-wordpress.scap

Upang mahanap ang iyong paraan sa pamamagitan ng bundok ng data na ito, gagamit ka ng isang bagay na tinatawag na pait.

Ang isang pait ay karaniwang isang script ng Lua na pinag-aaralan ang stream ng kaganapan at nagsasagawa ng mga kapaki-pakinabang na aksyon.

Maaari mong patakbuhin ang sumusunod na utos upang ipakita ang listahan ng mga pait:

sysdig -cl
Category: Application --------------------- httplog Hilingin ng HTTP mag-log ng httptop Nangungunang mga HTTP ay humiling ng memcachelog memcache na kahilingan sa pag-log Category: Paggamit ng CPU ---------- --------- spectrogram Pag-isipan ang latency ng OS sa real time. subsecoffset I-visualize ang subsecond offset na pagpapatupad ng oras. topcontainers_cpu Nangungunang mga lalagyan sa paggamit ng paggamit ng topprocs_cpu Nangungunang mga proseso sa pamamagitan ng paggamit ng CPU Category: Mga Mali ---------------- topcontainers_error Nangungunang mga lalagyan sa bilang ng mga error topfiles_errors Nangungunang mga file sa pamamagitan ng bilang ng mga error topprocs_errors nangungunang mga proseso sa pamamagitan ng numero ng mga pagkakamali

Tandaan na ang output sa itaas ay na-truncated para sa brevity.

Upang makuha ang detalyadong impormasyon tungkol sa isang pait, patakbuhin ang utos ng sysdig na sinusundan ng watawat -i at ang pangalan ng pait, tulad ng sa sumusunod na halimbawa:

sysdig -i httptop
Kategorya: Application --------------------- httptop Nangungunang mga kahilingan sa HTTP Ipakita ang nangungunang mga kahilingan sa HTTP sa pamamagitan ng: ncalls, oras o byte Args: [string] ni - Ipakita ang nangungunang mga transaksyon sa HTTP ni: ncalls, oras o sa pamamagitan ng mga tes, default ay ncalls

Ang pagpapatuloy ng aming halimbawa, narito kung paano mo magagamit ang pait ng httptop upang maipakita ang nangungunang mga kahilingan sa HTTP:

sysdig -r monitoring-wordpress.scap -c httptop
ncalls paraan 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 / lalagyan / 6bd8418eb03f / json 1 GET localhost / v1.24 / mga lalagyan / 06def7875617 / json 1 GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 GET /v1.24/images/db39680b63ac47a1d989da7b742f74

Maaari mong makita ang parehong impormasyon sa isang format na friendly-container na may watawat -pcontainer:

sysdig -r monitoring-wordpress.scap -c httptop -pcontainer
ncalls container method url ---------------------------------------------- ---------------------------------- 1000 wordpress-sysdig_wo GET localhost: 8000 /? P = 7 1000 host GET localhost: 8000 /? p = 7 43 wordpress-sysdig_wo OPTIONS * 1 sysdig GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 sysdig GET localhost / v1.24 /38 cd06093b141b / json 1 sysdig GET /v1.24/images/00e230fe24da9067f9b6e65cfbe9935a5affac1ae8e44edb6a5b0ccc26374d 1 sysdig GET /v1.24/images/db39680b63ac47a1d

Humuhukay ng malalim

Kinukuha ng Sysdig ang impormasyon na mayaman sa nilalaman na nagbibigay-daan sa iyo upang makakuha ng detalyadong pananaw sa mga panloob na gawa ng iyong mga lalagyan. Ipagpalagay na nagpapatakbo ka ng ilang mga lalagyan at nais mong malaman kung aling proseso ang kumokonsumo ng karamihan sa mga CPU.

  1. Ilista ang mga lalagyan na aktibo sa panahon kung saan mo nakuha ang mga kaganapan:
sysdig -r monitoring-wordpress.scap -c lscontainers

2. Maaari mong makilala ang lalagyan na natupok ang karamihan sa mga CPU na may:

sysdig -r monitoring-wordpress.scap -c topcontainers_cpu
Ang CPU% container.name --------------------------------------------- ----------------------------------- 5.37% wordpress-sysdig_wordpress_1 1.35% wordpress-sysdig_db_1 0.84% ​​host 0.51% sysdig

3. Maaari kang maghukay kahit na mas malalim at matukoy ang pinaka-masinsinang proseso ng CPU na may pait na topprocs_cpu:

sysdig -r monitoring-wordpress.scap -c topprocs_cpu container.name naglalaman ng wordpress_1
CPU% Proseso ng PID ---------------------------------------------- ---------------------------------- 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

Kung nais mong makita ang higit pang mga detalye, ang ps chisel ay nagbibigay ng isang mas alternatibong pandiwa:

sysdig -r monitoring-wordpress.scap -c ps container.name = wordpress-sysdig_wordpress_1
TID PID USER VIRT RES FDLIMIT CMD 5896 5896 ugat 232.82M 22.32M 429496729 apache2 8383 8383 www-data 307.44M 25.46M 429496729 apache2 8422 8422 www-data 235.44M 22.90M 429496729 apache2 8424 8424 www-data 307.44M 25.46M 8897 www-data 235.44M 22.89M 429496729 apache2 9154 9154 www-data 235.44M 22.91M 429496729 apache2 9241 9241 www-data 307.44M 25.66M 429496729 apache2 9242 9242 www-data 307.44M 25.67M 429496729 apache2 9300 9300 22.89M 429496729 apache2 9372 9372 www-data 235.44M 22.89M 429496729 apache2 9413 9413 www-data 233.44M 20.77M 429496729 apache2

Mga kapaki-pakinabang na Tip

Kung nagpapatakbo ka ng Sysdig upang makuha ang mga kaganapan tulad ng sa itaas na halimbawa (sysdig -w monitoring-wordpress.scap), ang file ng kaganapan ay patuloy na lalago hanggang sa maubos ang lahat ng magagamit na puwang. Mayroong ilang mga pamamaraan na makakatulong upang maiwasan ito mula sa nangyari:

  • Tukuyin ang bilang ng mga kaganapan na dapat makuha ng Sysdig sa pamamagitan ng pagpasa nito ng-isang watawat. Kapag nakuha ng Sysdig ang tinukoy na bilang ng mga kaganapan, awtomatikong lalabas ito:
sysdig -n 5000 -w monitoring-wordpress.scap
  • Gamitin ang watawat ng C upang i-configure ang Sysdig upang masira ang pagkuha sa mas maliit na mga file ng isang tinukoy na laki. Ang sumusunod na halimbawa ay patuloy na nakakatipid ng mga kaganapan sa mga file <10MB:
sysdig -C 10 -w monitoring-wordpress.scap

Lumilikha ito ng isang bungkos ng mga file na hindi mas malaki kaysa sa 10 MB:

ls -lh monitoring-wordpress *
-rw-r - r--. 1 root root 9.6M Ene 7: 13 pagsubaybay-wordpress.scap0 -rw-r - r--. 1 root root 9.6M Ene 7 17:14 pagsubaybay-wordpress.scap1 -rw-r - r--. 1 root root 9.6M Ene 7 17:14 monitoring-wordpress.scap2 -rw-r - r--. 1 root root 9.6M Ene 7: 17 pagsubaybay-wordpress.scap3 -rw-r - r--. 1 root root 9.6M Ene 7 17:14 monitoring-wordpress.scap4 -rw-r - r--. 1 root root 9.6M Ene 7 17:14 pagsubaybay-wordpress.scap5 -rw-r - r--. 1 root root 9.6M Ene 7 17:14 monitoring-wordpress.scap6 -rw-r - r--. 1 root root 9.6M Ene 7 17:14 monitoring-wordpress.scap7 -rw-r - r--. 1 ugat ng 6.4M Jan 7 17:14 monitoring-wordpress.scap8
  • Tukuyin ang maximum na bilang ng mga file na dapat panatilihin ng Sysdig gamit ang -W flag. Halimbawa, maaari mong pagsamahin ang mga flag ng -C at -W na tulad nito:
sysdig -C 10 -W 4 -w monitoring-wordpress.scap

Ang utos sa itaas ay panatilihin lamang ang huling apat na mga file ng pagkuha:

ls -lh monitoring-wordpress *
-rw-r - r--. 1 root root 7.2M Ene 7 17:21 monitoring-wordpress.scap0 -rw-r - r--. 1 root root 9.6M Ene 7 17:21 monitoring-wordpress.scap1 -rw-r - r--. 1 root root 9.6M Ene 7 17:21 monitoring-wordpress.scap2 -rw-r - r--. 1 root root 9.6M Ene 7 17:21 monitoring-wordpress.scap3 ugat @ cd06093b141b: / # sysdig -C 10 -W 4 -w monitoring-wordpress.scap

Real-Time Monitor

Sa Sysdig, maaari mo ring pag-aralan ang data sa real time. Sa isang unang sulyap, ito ay maaaring mukhang isang kakila-kilabot na gawain dahil, sa default, ang lahat ng mga kaganapan ay patuloy na naka-print sa console. Sa kabutihang palad, ang mga pait ay narito upang makatulong.

Kumuha tayo ng isang halimbawa.

Suriin ang Iyong mga Proseso sa isang Per container na Batayan

  1. Patakbuhin ang sumusunod na utos upang ilista ang iyong mga lalagyan:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5b253e74e8e7 sysdig / sysdig "/docker-entrypoint.…" 9 minuto ang nakakaraan Hanggang 9 minuto sysdig 06def7875617 wordpress: pinakabagong "docker-entrypoint.s ..." 3 oras ang nakakaraan Hanggang sa 3 oras 0.0.0.08 -> 80 / tcp wordpress-sysdig_wordpress_1 6bd8418eb03f mysql: 5.7 "docker-entrypoint.s ..." 3 oras ang nakakaraan Hanggang 3 oras 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1

2. Maaari mong pag-aralan ang mga proseso na tumatakbo sa lalagyan ng WordPress na may:

sysdig -pc -c topprocs_cpu container.name = wordpress-sysdig_wordpress_1

3. Katulad nito, maaari mong pag-aralan ang mga proseso na tumatakbo sa lalagyan ng MySQL:

sysdig -pc -c topprocs_cpu container.name = wordpress-sysdig_db_1

Tandaan na, hindi masyadong naiiba sa halimbawang ito, maaaring masubaybayan ng Sysdig ang trapiko sa network, paggamit ng disk, at iba pa.

Sa tutorial na ito, napunta ka sa mga batayan ng paggamit ng Sysdig upang makakuha ng isang malinaw na pag-unawa sa aktibidad na nilikha ng iyong mga lalagyan. Ang mga halimbawa sa post na ito ng blog ay nakatulong sa iyo upang makapagsimula at, sa mga susunod na tutorial, ipapakita namin sa iyo kung paano gamitin ang Csysdig at Sysdig Suriin.