Sysdig: kas tas ir un kā to izmantot

Sysdig ir universāls sistēmas redzamības rīks ar atbalstu konteineriem. Tas, kas padara Sysdig īpašu, ir tas, ka tas piesaista sevi mašīnas kodolā un nodala informāciju uz katra konteinera pamata. Šīs apmācības ietvaros mēs koncentrēsies uz Sysdig atvērtā koda versiju.

Nākamajās sadaļās jūs:

  • Instalējiet Sysdig
  • Izveidojiet Wordpress instalāciju, izmantojot doku sastādītāju
  • Izmantojiet Sysdig, lai apkopotu notikumus un tos analizētu vēlāk
  • Izmantojiet Sysdig, lai reālā laikā analizētu datus

Priekšnosacījumi

  • Docker ir instalēts jūsu sistēmā. Lai iegūtu sīkāku informāciju par Docker instalēšanu, skatiet lapu Instalēt Docker.
  • Docker Compose ir instalēts jūsu sistēmā. Norādījumus par Docker Compose instalēšanu skatiet lapā Instalēt Docker Compose.
  • Kodola galvenes ir instalētas resursdatora sistēmā.

Instalējiet Sysdig

Veiciet šīs darbības, lai instalētu Sysdig Docker konteinera iekšpusē:

  1. Termināļa logā izpildiet šo komandu, lai novilktu Sysdig Docker attēlu:
dokotājs pull sysdig / sysdig
Izmantojot noklusējuma tagu: jaunākais, jaunākais: Izvilkšana no sysdig / sysdig 2967486b0658: Pilnībā pavilkt 78101b780c72: Pilnībā velciet 7e78b657334d: Pilnībā pabeigt 650327159ca8: Pilnībā pabeigt 47ebf73ab754: Pilnīgi pabeigt bf51ac76a6d9: Pilnīgi pabeigt bf51ac76a6d9: Pilnīgi pabeigt6d3d3d3d3d3d3d3b3b3b3d3b3d3b3b3d3b3g3b3b3g3p3g3g3g3g3g3g3g3g3g3g3g3g3g3g3g3g3g3g3g3g3g3g3g3g3g3g6g3g3g3g3g3g3g Pilnīga 6de86c8ed6e9: Pilnīga 8d1825f8be4b: Pilnīga kopsavilkums: sha256: bbfe6953fd2b3221a8974eb13024dd33c7e78aebef8fee3d7a0d9ecdeed84ce0 Statuss: Lejupielādēts jaunākais sysdig / image jaunāks attēls

2. Palaidiet Sysdig konteinerā, ievadot:

docker run -i -t - name sysdig - privileģēts -v /var/run/docker.sock:/host/var/run/docker.sock -v / dev: / host / dev -v / proc: / host / proc: ro-v / sāknēšana: / resursdators / sāknēšana: ro-v / lib / moduļi: / resursdators / lib / moduļi: ro -v / usr: / resursdators / usr: ro sysdig / sysdig
* / Usr / src saišu iestatīšana no resursdatora * sysdig-zondes izkraušana, ja tāda ir. * Darbojas dkms, lai instalētu sysdig. echo Jūsu kodola galvenes 3.10.0-957.12.2.el7.x86_64 nevar atrast vietnē /lib/modules/3.10.0-957.12.2.el7.x86_64/build vai /lib/modules/3.10.0-957.12 .2.el7.x86_64 / avots. * Neizdevās palaist dkms versiju, neizdevās atrast /var/lib/dkms/sysdig/0.26.4/build/make.log * Mēģināt ielādēt sistēmu sysdig-zondi, ja tāda ir. * Mēģina atrast iepriekš kompilētu sysdig-zondi 3.10. .0-957.12.2.el7.x86_64 atrasta kodola konfigurācija vietnē /host/boot/config-3.10.0-957.12.2.el7.x86_64 * Mēģinot lejupielādēt iepriekš sastādītu moduli no https://s3.amazonaws.com/download .draios.com / stabils / sysdig-probe-binaries / sysdig-probe-0.26.4-x86_64-3.10.0-957.12.2.el7.x86_64-82e2ae1fb159132636f7b50a762f20ef.ko lejupielāde veiksmīga, moduļa saknes ielāde @ 7b14a23f22eb: / #

Dažas lietas, kas jāņem vērā saistībā ar iepriekš minēto komandu:

  • Ar karodziņu STDIN var atvērt.
  • Parametrs - priviliģēts nodrošina piekļuvi visām resursdatora ierīcēm. Tas arī iestata SELinux, lai procesiem, kas darbojas konteinera iekšpusē, būtu tāda pati piekļuve resursdatoram kā procesiem, kas darbojas resursdatorā.
  • Karodziņš -v norāda to failu sarakstu (resursdatorā), kuriem Sysdig var piekļūt.

Spin Up WordPress instalēšana

Šajā sadaļā jūs instalēsit Wordpress, izmantojot komandu docker-compose.

  1. Jauna termināļa logā pārejiet uz savu projektu direktoriju un ierakstiet šādas komandas:
mkdir wordpress-sysdig &&d cd wordpress-sysdig

2. Izveidojiet failu ar nosaukumu docker-compose ar šādu saturu:

versija: '3.3' pakalpojumi: db: attēls: mysql: 5,7 sējumi: - db_data: / var / lib / mysql restart: vienmēr vide: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: WordPress MYSQL_USER: WordPress MYSQL_PASSWORD: WordPress WordPress: atkarīgs_on: - WordPress: jaunākie porti: - "8000: 80" restartēšana: vienmēr vide: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: WordPress WORDPRESS_DB_PASSWORD: WordPress WORDPRESS_DB_NAME: WordPress sējumi: db_data: {}

3. Atvienotā režīmā palaidiet dokētāja sacerēšanas komandu ar:

dokotājs-sastādiet -d
Tīkla izveide "wordpress-sysdig_default" ar noklusējuma draiveri Skaļuma "wordpress-sysdig_db_data" izveidošana ar noklusējuma draiveri WordPress vilkšana (WordPress: jaunākais) ... jaunākais: Izvilkšana no bibliotēkas / WordPress 8ec398bc0356: Pilnībā pabeigta 85cf4fc86478: Pilnīga 970dadf4ccb6: Pilnīga pabeigšana 8c04561117a4: Pull pilns d6b7434b63a2: Pull pilns 83d8859e9744: Pull pilns 9c3d824d0ad5: Pull pilns 9e316fd5b3b3: Pull pilns 578b40496c37: Pull pilns 814ae7711d3c: Pull pilns 4896fed78b6b: Pull pilns e74d71e9611d: Pull pilns 46017765526c: Pull pilns 280386098458: Pull pilns f32eb0d8c540: Pull pilnā 5c47b9ea747a: Pull pilnīgu ecda5b7aad12: Pull pilnīga 84256a6b6b44: Pull pilnīga 35d4f385efb7: Pull pilnīga bf697c2ae701: Pull pilnīga d054b015f084: Pull pilnīga Digest: SHA256: 73e8d8adf491c7a358ff94c74c8ebe35cb5f8857e249eb8ce6062b8576a01465 Status: lejupielādēto jaunāku attēlu WordPress: jaunākās izveide WordPress sysdig_db_1 ... darīts izveide WordPress sysdig_word press_1 ... darīts

4. Jūs varat pārbaudīt savu konteineru statusu, izmantojot:

dokotājs ps

Ja viss notiek labi, jums vajadzētu redzēt kaut ko līdzīgu šādam izvadam:

KONTEINERA ID ATTĒLU KOMANDA izveidoti STATUSA OSTU VĀRDI f390eec29f52 wordpress: jaunākais "docker-entrypoint.s ..." Aptuveni pirms minūtes Up Up aptuveni minūte 0.0.0.0:8000->80/tcp wordpress-sysdig_wordpress_1 a844840626d8 mysql: 5.7 "docker-entrypoint. s… "Aptuveni pirms minūtes Uz augšu Apmēram minūtes 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1 7b14a23f22eb sysdig / sysdig" /docker-entrypoint.… "pirms 13 minūtēm Uz augšu 13 minūtes sysdig

5. Tagad Wordpress darbojas un darbojas. Palaidiet pārlūkprogrammu uz vietni http: // localhost: 8000, lai sāktu instalēšanas vedni:

6. Kad instalēšanas vednis ir pabeigts, iesim un izveidosim parauga pastu:

Datu apkopošana failā

Šajā sadaļā mēs parādīsim, kā jūs varat izmantot Sysdig, lai apkopotu notikumus un tos analizētu vēlāk.

  1. Lai visus uzņemtos notikumus ievietotu failā, pārejiet uz konteineru Sysdig un ievadiet šo komandu:
sysdig -w uzraudzības-wordpress.scap

2. Jauna termināla logā izmantojiet ab, lai veiktu 10000 pieprasījumus, bet vienlaikus darbotos ne vairāk kā 100 pieprasījumi:

ab -n 1000 -c 100 http: // localhost: 8000 /? p = 7
Šī ir ApacheBench, versija 2.3  Autortiesības 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licencēts Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (esi pacietīgs) Pabeigti 100 pieprasījumi Pabeigti 200 pieprasījumi Pabeigti 300 pieprasījumi Pabeigti 400 pieprasījumi Pabeigti 500 pieprasījumi Pabeigti 600 pieprasījumi Pabeigti 700 pieprasījumi Pabeigti 800 pieprasījumi Pabeigti 900 pieprasījumi Pabeigti 1000 pieprasījumi Pabeigti 1000 pieprasījumi

Ņemiet vērā, ka iepriekšminētā izlaide tika saīsināta īsuma dēļ.

3. Dodieties atpakaļ uz Sysdig konteineru un pārtrauciet datu iegūšanu, ievadot “CTRL + C”.

Datu analīze

Tagad, aplūkojot uzraudzības-wordpress.scap faila lielumu, jūs pamanīsit, ka Sysdig uztvēra ne mazāk kā 80 miljonus datu:

ls -lh monitorings-wordpress.scap
-rw-r - r--. 1 saknes sakne 80M 7. janvāris 16:28 monitoring-wordpress.scap

Lai atrastu savu ceļu caur šo datu kalnu, izmantosit kaut ko ar nosaukumu kalts.

Kalts būtībā ir Lua skripts, kas analizē notikumu plūsmu un veic noderīgas darbības.

Lai parādītu kaltu sarakstu, varat palaist šo komandu:

sysdig -cl
Kategorija: Lietojumprogramma --------------------- httplog HTTP pieprasījumu žurnāls httptop top HTTP pieprasījumi memcachelog memcached pieprasījumu žurnāls Kategorija: CPU lietojums ---------- --------- spektrogramma Vizualizējiet OS latentumu reālā laikā. subsecoffset Vizualizējiet subsecond nobīdes izpildes laiku. topcontainers_cpu augšējie konteineri pēc CPU izmantošanas topprocs_cpu top procesi pēc CPU izmantošanas Kategorija: kļūdas ---------------- topcontainers_error top konteineri pēc kļūdu skaita topfiles_errors top faili pēc kļūdu skaita topprocs_errors top procesi pēc skaita no kļūdām

Ņemiet vērā, ka iepriekšminētā izlaide tika saīsināta īsuma dēļ.

Lai iegūtu detalizētu informāciju par kaltu, palaidiet komandu sysdig, kam seko -i karodziņš un kalta nosaukums, kā parādīts šajā piemērā:

sysdig -i httptop
Kategorija: Lietojumprogramma --------------------- httptop Top HTTP pieprasījumi Rāda populārākos HTTP pieprasījumus pēc: ncalls, time vai bytes Args: [string] by - Rādīt top HTTP transakcijas Autors: ncalls, laiks vai tes, pēc noklusējuma ir ncalls

Turpinot mūsu piemēru, šeit parādīts, kā jūs varat izmantot httptop kaltu, lai parādītu galvenos HTTP pieprasījumus:

sysdig -r monitorings-wordpress.scap -c httptop
ncalls metodes 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 / containers / 6bd8418eb03f / json 1 GET localhost / v1.24 / konteineri / 06def7875617 / json 1 GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 GET /v1.24/images/db39680b63ac47a1f2000f1e8b8b8b8b4b4b4e4b4e4b4e4b4e4b2b4e4b2e4b4e4b2a

To pašu informāciju konteineriem draudzīgā formātā var redzēt ar konteinera karodziņu:

sysdig -r monitorings-wordpress.scap -c httptop -pcontainer
ncalls konteinera metodes 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 / containers / konteineriem / 06deff cd06093b141b / json 1 sysdig GET /v1.24/images/00e230fe24da9067f9b6e65cfbe9935a5affac1ae8e44edb6a5b0ccc26374d 1 sysdig GET /v1.24/images/db39680973b8b7c7b7c7b7ac7b7ac7b7ac4b4ac4a4b7ac4a7b4a4b4a4b4a

Rakšana dziļāk

Sysdig uztver ar saturu bagātu informāciju, kas ļauj iegūt detalizētu ieskatu konteineru iekšējā darbībā. Pieņemsim, ka jūs izmantojat dažus konteinerus un vēlaties uzzināt, kurš process patērē visvairāk CPU.

  1. Uzskaitiet konteinerus, kas bija aktīvi tajā laika posmā, kurā esat fiksējis notikumus:
sysdig -r monitorings-wordpress.scap -c lkonteineri

2. Konteineri, kurā patērēts visvairāk CPU, var identificēt ar:

sysdig -r monitorings-wordpress.scap -c topcontainers_cpu
Centrālais procesors% konteinera nosaukums --------------------------------------------- ----------------------------------- 5,37% wordpress-sysdig_wordpress_1 1,35% wordpress-sysdig_db_1 0,84% resursdators 0,51% sysdig

3. Izmantojot topprocs_cpu kaltu, varat izrakt vēl dziļāk un noteikt visprocesīvāko procesu:

sysdig -r monitorings-wordpress.scap -c topprocs_cpu container.name satur wordpress_1
CPU% procesa 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

Ja vēlaties redzēt vairāk informācijas, ps kalts piedāvā precīzāku alternatīvu:

sysdig -r monitorings-wordpress.scap -c ps container.name = wordpress-sysdig_wordpress_1
TID PID LIETOTĀJS VIRT RES FDLIMIT CMD 5896 5896 sakne 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 8424ac4MM.44.44.4M.49.4.4.4MM 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 930000000000000000 22.89M 429496729 apache2 9372 9372 www-data 235.44M 22.89M 429496729 apache2 9413 9413 www-data 233.44M 20.77M 429496729 apache2

Noderīgi padomi

Ja palaižat Sysdig, lai uztvertu notikumus, kā parādīts iepriekš minētajā piemērā (sysdig -w monitoring-wordpress.scap), notikumu fails nepārtraukti pieaugs, līdz tas patērē visu pieejamo vietu. Ir dažas metodes, kas var palīdzēt to novērst:

  • Norādiet notikumu skaitu, kas Sysdig jāfiksē, nododot tam karodziņu -n. Kad Sysdig uztver norādīto notikumu skaitu, tas automātiski iziet:
sysdig -n 5000 -w uzraudzības-wordpress.scap
  • Izmantojiet karodziņu -C, lai konfigurētu Sysdig tā, lai sadalīšana tiktu sadalīta noteiktā lieluma mazākos failos. Šis piemērs nepārtraukti saglabā notikumus failos <10 MB:
sysdig -C 10 -w uzraudzības-wordpress.scap

Tādējādi tiks izveidots failu kopums, kas nav lielāks par 10 MB:

ls -lh uzraudzības-WordPress *
-rw-r - r--. 1 saknes sakne 9.6M 7. janvāris 17:13 monitorings-wordpress.scap0 -rw-r - r--. 1 saknes sakne 9.6M 7. janvāris 17:14 monitoring-wordpress.scap1 -rw-r - r--. 1 saknes sakne 9.6M 7. janvāris 17:14 monitorings-wordpress.scap2 -rw-r - r--. 1 saknes sakne 9.6M 7. janvāris 17:14 monitorings-wordpress.scap3 -rw-r - r--. 1 saknes sakne 9.6M 7. janvāris 17:14 monitorings-wordpress.scap4 -rw-r - r--. 1 saknes sakne 9.6M 7. janvāris 17:14 monitorings-wordpress.scap5 -rw-r - r--. 1 saknes sakne 9.6M 7. janvāris 17:14 monitorings-wordpress.scap6 -rw-r - r--. 1 saknes sakne 9.6M 7. janvāris 17:14 monitorings-wordpress.scap7 -rw-r - r--. 1 saknes sakne 6.4M 7. janvāris 17:14 monitoring-wordpress.scap8
  • Norādiet maksimālo failu skaitu, kas Sysdig jāsaglabā ar -W karogu. Piemēram, jūs varat apvienot karodziņus -C un -W šādi:
sysdig -C 10 -W 4 -w uzraudzības-wordpress.scap

Iepriekš minētā komanda saglabās tikai pēdējos četrus uztveršanas failus:

ls -lh uzraudzības-WordPress *
-rw-r - r--. 1 saknes sakne 7.2M 7. janvāris 17:21 monitorings-wordpress.scap0 -rw-r - r--. 1 saknes sakne 9.6M 7. janvāris 17:21 monitorings-wordpress.scap1 -rw-r - r--. 1 saknes sakne 9.6M 7. janvāris 17:21 monitorings-wordpress.scap2 -rw-r - r--. 1 saknes sakne 9.6M 7. janvāris 17:21 monitoring-wordpress.scap3 root @ cd06093b141b: / # sysdig -C 10 -W 4 -w monitorings-wordpress.scap

Monitorings reāllaikā

Izmantojot Sysdig, jūs varat arī analizēt datus reālā laikā. No pirmā acu uzmetiena tas var šķist biedējošs uzdevums, jo pēc noklusējuma visi notikumi tiek nepārtraukti izdrukāti konsolē. Par laimi, kalti ir klāt, lai palīdzētu.

Ņemsim piemēru.

Analizējiet savus procesus, pamatojoties uz katru konteineru

  1. Izpildiet šo komandu, lai uzskaitītu konteinerus:
dokotājs ps
KONTEINERA ID ATTĒLU KOMANDA izveidoti STATUSA OSTU VĀRDI 5b253e74e8e7 sysdig / sysdig "/docker-entrypoint.…" pirms 9 minūtēm Up 9 minutes sysdig 06def7875617 WordPress: jaunākais "docker-entrypoint.s ..." pirms 3 stundām Up 3 hours 0.0.0.0:8000 -> 80 / tcp wordpress-sysdig_wordpress_1 6bd8418eb03f mysql: 5.7 "docker-entrypoint.s…" pirms 3 stundām Augšup 3 stundas 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1

2. WordPress konteinerā darbojošos procesus var analizēt ar:

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

3. Līdzīgi varat analizēt procesus, kas darbojas MySQL konteinerā:

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

Ņemiet vērā, ka, maz atšķiroties no šī piemēra, Sysdig var pārraudzīt tīkla trafiku, diska izmantošanu utt.

Šajā apmācībā jūs esat apskatījis Sysdig lietošanas pamatus, lai iegūtu skaidru izpratni par jūsu konteineru ģenerētajām darbībām. Šīs emuāra ziņas piemēri palīdzēja jums sākt darbu, un turpmākajās apmācībās mēs jums parādīsim, kā izmantot Csysdig un Sysdig Inspect.