„Sysdig“: kas tai yra ir kaip juo naudotis

„Sysdig“ yra universali sistemos matomumo priemonė, palaikanti konteinerius. „Sysdig“ daro ypatingą tuo, kad jis prikabinamas prie mašinos branduolio ir atskiria informaciją pagal konteinerį. Šiame vadove apžvelgsime atvirojo kodo „Sysdig“ versiją.

Tolesniuose skyriuose jūs:

  • Įdiekite „Sysdig“
  • Sukurkite „Wordpress“ diegimą naudodami „docker-compose“
  • Naudokite „Sysdig“ rinkdami įvykius ir analizuodami juos vėliau
  • Norėdami analizuoti duomenis realiuoju laiku, naudokite „Sysdig“

Būtinos sąlygos

  • „Docker“ įdiegtas jūsų sistemoje. Norėdami gauti daugiau informacijos apie „Docker“ įdiegimą, skaitykite „Install Docker“ puslapį.
  • „Docker Compose“ įdiegtas jūsų sistemoje. Instrukcijas, kaip įdiegti „Docker Compose“, rasite „Install Docker Compose“ puslapyje.
  • Branduolio antraštės yra įdiegtos pagrindinėje sistemoje.

Įdiekite „Sysdig“

Norėdami įdiegti „Sysdig“ „Docker“ talpykloje atlikite šiuos veiksmus:

  1. Terminalo lange vykdykite šią komandą, norėdami nuskaityti „Sysdig Docker“ vaizdą:
dokininkas traukti sysdig / sysdig
Naudojant numatytąją žymą: naujausia naujausia: „pulling“ iš „sysdig“ / „sysdig“ 2967486b0658: „Ištraukti pilną“ 78101b780c72: „Ištraukti visą“ 7e78b657334d: „Ištraukti visą“ 650327159ca8: Ištraukti visą „47ebf73ab754“: „Pull“ bf51ac76a6d9: „Pull complete“ Pilnas 6de86c8ed6e9: Pilnas 8d1825f8be4b: Pilnas aprašymas: sha256: bbfe6953fd2b3221a8974eb13024dd33c7e78aebef8fee3d7a0d9ecdeed84ce0 Būsena: atsisiųstas naujausias „sysdig“ / sysdig vaizdas

2. Paleiskite „Sysdig“ konteineryje įvesdami:

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
* „/ Usr / src“ nuorodų nustatymas iš pagrindinio kompiuterio * „sysdig-zondo“ iškrovimas, jei jis yra. echo 3.10.0-957.12.2.el7.x86_64 branduolio antraštės nerastos aplanke /lib/modules/3.10.0-957.12.2.el7.x86_64/build arba /lib/modules/3.10.0-957.12 .2.el7.x86_64 / šaltinis. * Nepavyko paleisti „dkms“ statyti, nepavyko rasti /var/lib/dkms/sysdig/0.26.4/build/make.log * Bandoma įkelti sistemos „sysdig-zondą“, jei jo yra * Bandant rasti iš anksto kompiliuotą „sysdig-zondą“ 3.10 .0-957.12.2.el7.x86_64 rasta branduolio konfigūracija, esanti /host/boot/config-3.10.0-957.12.2.el7.x86_64 * Bandoma atsisiųsti iš anksto sudarytą modulį iš https://s3.amazonaws.com/download .draios.com / stabilus / sysdig-zondas-dvejetainiai failai / sysdig-probe-0.26.4-x86_64-3.10.0-957.12.2.el7.x86_64-82e2ae1fb159132636f7b50a762f20ef.ko atsisiųsti pavyko, įkeliant modulio šaknį @ 7b14a23f22eb: / #

Keletas dalykų, kuriuos reikia atkreipti į aukščiau pateiktą komandą:

  • -I vėliava neleidžia atidaryti STDIN.
  • Parametras „-privileged“ suteikia prieigą prie visų pagrindinio kompiuterio įrenginių. Taip pat jis nustato „SELinux“, kad procesai, vykdomi konteinerio viduje, turėtų tokią pačią prieigą prie pagrindinio kompiuterio kaip ir procesai, vykdomi pagrindiniame kompiuteryje.
  • Žyma -v nurodo failų (pagrindiniame kompiuteryje), kuriuos gali pasiekti „Sysdig“, sąrašą.

Sukurkite „WordPress“ diegimą

Šiame skyriuje įdiegsite „Wordpress“ naudodamiesi komanda „docker-compose“.

  1. Naujame terminalo lange perkelkite į savo projektų katalogą ir įveskite šias komandas:
„mkdir wordpress-sysdig“ ir „cd wordpress-sysdig“

2. Sukurkite failą, vadinamą dokų sudarytoju, su tokiu turiniu:

versija: '3.3' paslaugos: db: vaizdas: mysql: 5.7 tomai: - db_data: / var / lib / mysql paleidimas iš naujo: visada aplinka: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: WordPress MYSQL_USER: WordPress MYSQL_PASSWORD: WordPress WordPress: priklauso_on: - WordPress: naujausi uostai: - „8000: 80“ paleidimas iš naujo: visada aplinka: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: WordPress WORDPRESS_DB_PASSWORD: WordPress WORDPRESS_DB_NAME: WordPress apimtys: db_data: {}

3. Atsidariusiame režime paleiskite „doko sudarymo“ komandą:

doko sudarytojas -d
Tinklo „WordPress-sysdig_default“ sukūrimas su numatytąja tvarkykle Tinklo „WordPress-sysdig_db_data“ kūrimas su numatytąja tvarkykle „WordPress“ („WordPress“: naujausia) traukimas ... vėliausias: „Ištraukimas iš bibliotekos / WordPress“ 8c04561117a4: patraukite visiškai d6b7434b63a2: patraukite visiškai 83d8859e9744: patraukite visiškai 9c3d824d0ad5: patraukite visiškai 9e316fd5b3b3: patraukite visiškai 578b40496c37: patraukite visiškai 814ae7711d3c: patraukite visiškai 4896fed78b6b: patraukite visiškai e74d71e9611d: patraukite visiškai 46017765526c: patraukite visiškai 280.386.098.458: patraukite visiškai f32eb0d8c540: patraukite visą 5c47b9ea747a: Ištraukite visą ecda5b7aad12: patraukite visą 84256a6b6b44: patraukite visą 35d4f385efb7: patraukite visą bf697c2ae701: patraukite visiškai d054b015f084: patraukite visą Digest: SHA256: 73e8d8adf491c7a358ff94c74c8ebe35cb5f8857e249eb8ce6062b8576a01465 Status: Siuntėsi naujesnę vaizdą WordPress: naujausią kūrimas wordpress-sysdig_db_1 ... padaryta kūrimas wordpress-sysdig_word paspauskite_1 ... padaryta

4. Savo konteinerių būklę galite patikrinti naudodamiesi:

dokininkas ps

Jei viskas klostosi gerai, turėtumėte pamatyti kažką panašaus į šį išėjimą:

KONTEINERIO VAIZDO KOMANDA SUKURTA STATUSO UOSTŲ PAVADINIMAI f390eec29f52 wordpress: naujausias „docker-entrypoint.s…“ Maždaug prieš minutę Aukštyn Apie minutę 0.0.0.0:8000->80/tcp wordpress-sysdig_wordpress_1 a844840626d8 mysql: 5.7 “docker-entrypoint. s ... "Maždaug prieš minutę Aukštyn Apie minutę 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1 7b14a23f22eb sysdig / sysdig" /docker-entrypoint.… "Prieš 13 minučių Aukščiau 13 minučių sysdig

5. Dabar „Wordpress“ veikia ir veikia. Nukreipkite naršyklę į http: // localhost: 8000, kad paleistumėte diegimo vedlį:

6. Baigę diegimo vedlį, eikime į priekį ir sukurkime pavyzdinį įrašą:

Duomenų rinkimas į failą

Šiame skyriuje parodysime, kaip galite naudoti „Sysdig“ rinkdami įvykius ir analizuodami juos vėliau.

  1. Norėdami sudėti visus užfiksuotus įvykius į failą, eikite į „Sysdig“ talpyklą ir įveskite šią komandą:
„sysdig -w“ stebėjimo-„WordPress“

2. Naujame terminalo lange naudokite ab, kad pateiktumėte 10000 užklausų, o ne daugiau kaip 100 užklausų būtų vykdomos tuo pačiu metu:

ab -n 1000 -c 100 http: // localhost: 8000 /? p = 7
Tai „ApacheBench“, 2.3 versija. <$ Revizija: 1430300 $> Autorių teisės 1996 m. Adomas Twissas, „Zeus Technology Ltd“, http://www.zeustech.net/ licencijuota „Apache Software Foundation“, http://www.apache.org/ Benchmarking „localhost“ (būk kantrus) Pabaigta 100 užklausų Užpildyta 200 užklausų Baigta 300 užklausų Baigta 400 užklausų Baigta 500 užklausų Baigta 600 užklausų Baigta 700 užklausų Baigta 800 užklausų Baigta 900 užklausų Baigta 1000 užklausų Baigta 1000 užklausų

Atkreipkite dėmesį, kad aukščiau pateiktas išėjimas buvo sutrumpintas dėl trumpumo.

3. Grįžkite į „Sysdig“ turinį ir sustabdykite duomenų rinkimą įvesdami „CTRL + C“.

Duomenų analizė

Dabar, jei pažiūrėsite į monitoring-wordpress.scap failo dydį, pastebėsite, kad „Sysdig“ užfiksavo ne mažiau kaip 80 mln. Duomenų:

ls-lh monitoring-wordpress.scap
-rw-r - r--. 1 šaknies šaknis 80M sausio 7 d. 16:28 monitoring-wordpress.scap

Norėdami rasti savo kelią per šį duomenų kalną, naudosite tai, kas vadinama kaltu.

Kaltelis iš esmės yra „Lua“ scenarijus, kuris analizuoja įvykių srautą ir atlieka naudingus veiksmus.

Norėdami parodyti kaltų sąrašą, galite paleisti šią komandą:

sysdig -cl
Kategorija: Programa --------------------- „httplog“ HTTP užklausų žurnalas „httptop“ viršuje „HTTP“ užklausų „memcachelog“ išsaugotų užklausų žurnalas Kategorija: CPU naudojimas ---------- --------- spektrograma Vaizduokite OS latenciją realiuoju laiku. subsecoffset Vizualizuokite antrinės sekos poslinkio vykdymo laiką. topcontainers_cpu Populiariausi konteineriai pagal CPU naudojimą topprocs_cpu Populiariausi procesai pagal CPU naudojimą Kategorija: Klaidos ---------------- topcontainers_error Populiariausi konteineriai pagal klaidų skaičių topfiles_errors Populiariausi failai pagal klaidų skaičių topprocs_errors populiariausi procesai pagal skaičių klaidų

Atkreipkite dėmesį, kad aukščiau pateiktas išėjimas buvo sutrumpintas dėl trumpumo.

Norėdami gauti išsamios informacijos apie kaltuką, paleiskite „sysdig“ komandą, po kurios eina vėliava -i, ir pavadinimo pavadinimą, kaip parodyta šiame pavyzdyje:

sysdig -i httptop
Kategorija: Programa --------------------- „httptop“ populiariausios HTTP užklausos Rodyti populiariausias HTTP užklausas pagal: skambučius, laiką ar baitus. pateikė: „ncalls“, „time“ arba „tes“, numatytoji reikšmė yra „ncalls“

Tęsdami mūsų pavyzdį, štai kaip galite naudoti „httptop chisel“ viršutinėms HTTP užklausoms pateikti:

sysdig -r monitoring-wordpress.scap -c httptop
„ncalls“ metodo URL ----------------------------------------------- --------------------------------- 2001 GET localhost: 8000 /? P = 7 14 PARINKTYS * 2 GET localhost: 8000 / favicon.ico 1 GET /wp-content/themes/twentytwenty/assets/fonts/inter/Inter-upright-var.woff2 1 GET localhost / v1.24 / konteineriai / 6bd8418eb03f / json 1 GET localhost / v1.24 / konteineriai / 06def7875617 / json 1 GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 GET /v1.24/images/db39680b63ac47a1f2a8f8b8b2b2b4e4b2b4e4b2b4e4b4e4b4e4b4e4b2b4e4b4e4b2a

Tą pačią informaciją galite pamatyti pritaikydami konteinerius su „konteinerio“ vėliava:

sysdig -r monitoring-wordpress.scap -c httptop -pcontainer
„ncalls“ konteinerio metodo URL ---------------------------------------------- ---------------------------------- 1000 WordPress-sysdig_wo GET localhost: 8000 /? P = 7 1000 host GET „localhost“: 8000 /? p = 7 43 „wordpress-sysdig_wo“ PARINKTYS * 1 sysdig GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 sysdig GET localhost / v1.24 / konteineriai / 06deff „cd06093b141b“ / „json 1 sysdig GET /v1.24/images/00e230fe24da9067f9b6e65cfbe9935a5affac1ae8e44edb6a5b0ccc26374d 1 sysdig GET /v1.24/images/db39680973b8b7b7c7b7ac7b7ac7b7ac47a47b4ac4a

Kasimas giliau

„Sysdig“ kaupia turtingo turinio informaciją, leidžiančią jums gauti išsamios informacijos apie jūsų konteinerių vidaus darbą. Tarkime, kad naudojate kelis konteinerius ir norite sužinoti, kuris procesas sunaudoja daugiausia procesoriaus.

  1. Išvardykite konteinerius, kurie buvo aktyvūs tuo laikotarpiu, kai užfiksavote įvykius:
sysdig -r monitoring-wordpress.scap -c lscontainers

2. konteinerį, kuriame sunaudota daugiausia procesoriaus, galite identifikuoti su:

sysdig -r monitoring-wordpress.scap -c topcontainers_cpu
Procesoriaus proc. Konteinerio pavadinimas --------------------------------------------- ----------------------------------- 5,37% wordpress-sysdig_wordpress_1 1,35% wordpress-sysdig_db_1 0,84% host 0,51% sysdig

3. Galite įsigilinti dar giliau ir nustatyti, koks procesorius yra intensyviausias, naudojant „toppprocs_cpu“ kaltu:

sysdig -r monitoring-wordpress.scap -c topprocs_cpu container.name yra wordpress_1
CPU% proceso 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

Jei norite pamatyti daugiau informacijos, ps kaltai suteikia daugiau išsamios alternatyvos:

sysdig -r monitoring-wordpress.scap -c ps container.name = wordpress-sysdig_wordpress_1
TID PID VARTOTOJAS VIRT RES FDLIMIT CMD 5896 5896 šaknis 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 8424acMac4.44.4MM.49.44.44.4M 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.2009.449 22.89M 429496729 apache2 9372 9372 www-data 235.44M 22.89M 429496729 apache2 9413 9413 www-data 233.44M 20.77M 429496729 apache2

Naudingi patarimai

Jei paleisite „Sysdig“ norėdami užfiksuoti įvykius, kaip aprašyta aukščiau pateiktame pavyzdyje („sysdig -w monitoring-wordpress.scap“), įvykių failas nuolat augs, kol jis sunaudos visą laisvą vietą. Yra keletas būdų, kurie gali padėti išvengti to:

  • Nurodykite įvykių, kuriuos „Sysdig“ turėtų užfiksuoti, skaičių, perduodant jam „n“ vėliavą. Kai „Sysdig“ užfiksuos nurodytą įvykių skaičių, jis automatiškai išeis:
„sysdig -n 5000 -w“ stebėjimo „wordpress.scap“
  • Norėdami sukonfigūruoti „Sysdig“ naudokite žymą -C, kad ji suskaidytų surinkimą į mažesnius nurodyto dydžio failus. Šis pavyzdys nepertraukiamai įrašo įvykius į failus, mažesnius kaip 10 MB:
„sysdig -C 10 -w monitoring-wordpress.scap“

Tai sukurs ne daugiau kaip 10 MB failų:

ls-lh monitoring-wordpress *
-rw-r - r--. 1 šaknies šaknis 9.6M sausio 7 17:13 monitoring-wordpress.scap0 -rw-r - r--. 1 šaknies šaknis 9.6M sausio 7 17:14 monitoring-wordpress.scap1 -rw-r - r--. 1 šaknies šaknis 9.6M sausio 7 17:14 monitoring-wordpress.scap2 -rw-r - r--. 1 šaknies šaknis 9.6M sausio 7 17:14 monitoring-wordpress.scap3 -rw-r - r--. 1 šaknies šaknis 9.6M sausio 7 17:14 monitoring-wordpress.scap4 -rw-r - r--. 1 šaknies šaknis 9.6M sausio 7 17:14 monitoring-wordpress.scap5 -rw-r - r--. 1 šaknies šaknis 9.6M sausio 7 17:14 monitoring-wordpress.scap6 -rw-r - r--. 1 šaknies šaknis 9.6M sausio 7 17:14 monitoring-wordpress.scap7 -rw-r - r--. 1 šaknies šaknis 6.4M sausio 7 17:14 monitoring-wordpress.scap8
  • Nurodykite maksimalų failų, kuriuos „Sysdig“ turėtų laikyti su –W vėliava, skaičių. Pvz., Galite sujungti vėliavas -C ir -W taip:
„sysdig -C 10 -W 4 -w“ stebėjimas-wordpress.scap

Aukščiau pateiktoje komandoje bus saugomi tik paskutiniai keturi fiksavimo failai:

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

Stebėjimas realiuoju laiku

Naudodami „Sysdig“ taip pat galite analizuoti duomenis realiuoju laiku. Iš pirmo žvilgsnio tai gali atrodyti kaip bauginanti užduotis, nes pagal nutylėjimą visi įvykiai yra nuolat spausdinami pulte. Laimei, kaltai padėti.

Paimkime pavyzdį.

Išanalizuokite savo procesus konteinerio pagrindu

  1. Vykdykite šią komandą, kad pateiktumėte savo konteinerių sąrašą:
dokininkas ps
KONTEINERIO VAIZDO KOMANDA SUKURTA STATUSO UOSTŲ PAVADINIMAI 5b253e74e8e7 sysdig / sysdig "/docker-entrypoint.…" prieš 9 minutes Aukštyn 9 minutes sysdig 06def7875617 WordPress: naujausias "docker-entrypoint.s ..." prieš 3 valandas Aukščiau nei 3 valandos 0.0.0.0:8000 -> 80 / tcp wordpress-sysdig_wordpress_1 6bd8418eb03f mysql: 5.7 "docker-entrypoint.s ..." prieš 3 valandas Aukštyn 3 valandos 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1

2. „WordPress“ talpykloje vykstančius procesus galite analizuoti naudodami:

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

3. Panašiai galite analizuoti „MySQL“ talpykloje vykstančius procesus:

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

Atminkite, kad ne daug kuo skiriasi nuo šio pavyzdžio, „Sysdig“ gali stebėti tinklo srautą, disko naudojimą ir pan.

Šiame vadove jūs peržvelgėte pagrindinius „Sysdig“ naudojimo pagrindus, kad gautumėte aiškų supratimą apie jūsų konteinerių sugeneruotą veiklą. Šiame tinklaraščio įraše pateikti pavyzdžiai padėjo jums pradėti darbą, o būsimose mokymo priemonėse parodysime, kaip naudoti „Csysdig“ ir „Sysdig Inspect“.