Sysdig: mis see on ja kuidas seda kasutada

Sysdig on universaalne süsteemi nähtavuse tööriist, mis toetab konteinereid. Sysdigi teeb eriliseks see, et see haarab end masina tuuma ja eraldab teabe konteinerite kaupa. Selle õpetuse ulatuses keskendume Sysdigi avatud lähtekoodiga versioonile.

Järgmistes osades teete järgmist:

  • Installige Sysdig
  • Spinker Wordpressi installimist, kasutades dokkimis-komponeerimist
  • Kasutage Sysdigit sündmuste kogumiseks ja hilisemaks analüüsimiseks
  • Kasutage Sysdigit andmete reaalajas analüüsimiseks

Eeltingimused

  • Docker on teie süsteemi installitud. Dockeri installimise üksikasju leiate Dockeri installimise lehelt.
  • Docker Compose on teie süsteemi installitud. Docker Compose installimise juhiseid leiate lehelt Docker Compose installimine.
  • Kerneli päised installitakse hostisüsteemi.

Installige Sysdig

Järgige neid samme, et installida Sysdig Dockeri konteinerisse:

  1. Täitke terminali aknas Sysdig Dockeri pildi tõmbamiseks järgmine käsk:
doki tõmbamine sysdig / sysdig
Vaikimisi sildi kasutamine: uusim uusim: Tõmbamine süsteemist sysdig / sysdig 2967486b0658: Tõmmake täielik 78101b780c72: Tõmmake täielik 7e78b657334d: Tõmmake täielik 650327159ca8: Tõmmake täielik 47ebf73ab754: Tõmmake täielik bf51ac76a6d9: Tõmmake täielik bf51ac76a6d9: Tõmmake täielikuks 0d6: Pull täielikuks 0 Tõmmake täielik 6de86c8ed6e9: tõmmake täielik 8d1825f8be4b: tõmmake täielik kokkuvõte: sha256: bbfe6953fd2b3221a8974eb13024dd33c7e78aebef8fee3d7a0d9ecdeed84ce0 Olek: alla laaditud sysdigi / sysdigiti uuem pilt

2. Käivitage Sysdig konteineris, sisestades:

doki run -i -t - nimi sysdig - privaatsed -v /var/run/docker.sock:/host/var/run/docker.sock -v / dev: / host / dev -v / proc: / host / proc: ro-v / alglaadimine: / host / alglaadimine: ro -v / lib / moodulid: / host / lib / moodulid: ro -v / usr: / host / usr: ro sysdig / sysdig
* / Usr / src-linkide seadistamine hostist * sysdig-sondi mahalaadimine, kui see on olemas * dkms-i installimine sysdig-i jaoks Viga! kaja Teie tuuma päised tuuma 3.10.0-957.12.2.el7.x86_64 ei leia aadressilt /lib/modules/3.10.0-957.12.2.el7.x86_64/build või /lib/modules/3.10.0-957.12 .2.el7.x86_64 / allikas. * Dkms-i käivitamine ebaõnnestus, faili /var/lib/dkms/sysdig/0.26.4/build/make.log ei leitud * Süsteemi sysdig-sondi laadimine, kui see on olemas * Proovin leida eelkompileeritud sysdig-sondi 3.10 jaoks .0-957.12.2.el7.x86_64 leitud kerneli konfiguratsioon aadressilt /host/boot/config-3.10.0-957.12.2.el7.x86_64 * Proovin eelkompileeritud mooduli alla laadida saidilt https://s3.amazonaws.com/download .draios.com / stabiilne / sysdig-probe-binaries / sysdig-probe-0.26.4-x86_64-3.10.0-957.12.2.el7.x86_64-82e2ae1fb159132636f7b50a762f20ef.ko allalaadimine õnnestus, mooduli juur @ 7b14a23f22eb laadimine: / #

Mõned märkused ülaltoodud käsu kohta:

  • -I lipp hoiab STDINi lahti.
  • Parameeter --privileged võimaldab juurdepääsu kõikidele masina seadmetele. Samuti seab see SELinuxi lubama konteineri sees töötavatel protsessidel sama juurdepääsu masinale kui hostil töötavatel protsessidel.
  • Lipp -v määrab failide loendi (hostis), millele Sysdig pääseb.

Spin Up Wordpress installimine

Selles jaotises installite Wordpressi käsu Docker-compose abil.

  1. Uues terminaliaknas liikuge oma projektide kataloogi ja tippige järgmised käsud:
mkdir wordpress-sysdig && cd wordpress-sysdig

2. Looge järgmise sisuga fail nimega docker-compose:

versioon: '3.3' teenused: db: pilt: mysql: 5,7 köidet: - db_data: / var / lib / mysql taaskäivitamine: alati keskkond: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordb: image_d: --_on: - WordPress: viimased pordid: - "8000: 80" taaskäivitamine: alati keskkond: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: WordPress WORDPRESS_DB_PASSWORD: WordPress WORDPRESS_DB_NAME: WordPressi mahud: db_data: {}

3. Käivitage dokkuri koostamise käsk eraldatud režiimis järgmiselt:

dokkija-koosta üles -d
Võrgu "wordpress-sysdig_default" loomine vaikimisi draiveriga Köite "wordpress-sysdig_db_data" loomine vaikimisi draiveriga Wordpressi tõmbamine (WordPress: viimane) ... viimane: Tõmbamine teegist / wordpress 8ec398bc0356: Tõmmake täielik 85cf4fc86478: Tõmmake täielik 970dadf4ccb6: Pull täielik 8c04561117a4: Pull täielik d6b7434b63a2: Pull täielik 83d8859e9744: Pull täielik 9c3d824d0ad5: Pull täielik 9e316fd5b3b3: Pull täielik 578b40496c37: Pull täielik 814ae7711d3c: Pull täielik 4896fed78b6b: Pull täielik e74d71e9611d: Pull täielik 46017765526c: Pull täielik 280386098458: Pull täielik f32eb0d8c540: Tõmmake täielik 5c47b9ea747a: tõmmake täielik ecda5b7aad12: pull täielik 84256a6b6b44: pull täielik 35d4f385efb7: pull täielik bf697c2ae701: pull täielik d054b015f084: pull täielik Digest: SHA256: 73e8d8adf491c7a358ff94c74c8ebe35cb5f8857e249eb8ce6062b8576a01465 staatus: allalaaditud uuem pilt WordPress: viimased loomine WordPress-sysdig_db_1 ... teinud loomine WordPress-sysdig_word vajutage_1 ... valmis

4. Saate oma konteinerite olekut kontrollida:

dokk ps

Kui kõik läheb hästi, peaksite nägema midagi järgmise väljundiga sarnast:

CONTAINER ID IMAGE COMMAND LOODUD STAATUS PORTRITE NIMED f390eec29f52 wordpress: Viimane "docker-entrypoint.s…" Umbes minut tagasi Üles Umbes minut 0.0.0.0:8000->80/tcp wordpress-sysdig_wordpress_1 a844840626d8 mysql: 5.7 "docker-entrypoint. s… "Umbes minut tagasi Üles Umbes minut 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1 7b14a23f22eb sysdig / sysdig" /docker-entrypoint.… "13 minutit tagasi Üles 13 minutit sysdig

5. Nüüd on Wordpress üleval ja töötab. Installimisviisardi käivitamiseks suunake brauser aadressile http: // localhost: 8000:

6. Kui installimisviisard on lõpule jõudnud, lähme edasi ja loome näidispostituse:

Andmete kogumine faili

Selles jaotises näitame, kuidas saate Sysdigit sündmuste kogumiseks ja hilisemaks analüüsimiseks kasutada.

  1. Kõigi salvestatud sündmuste kopeerimiseks faili minge konteinerisse Sysdig ja sisestage järgmine käsk:
sysdig -w monitoring-wordpress.scap

2. Uues terminaliaknas kasutage ab, et teha 10000 päringut maksimaalselt 100 päringuga samaaegselt:

ab -n 1000 -c 100 http: // localhost: 8000 /? p = 7
See on ApacheBench, versioon 2.3  Autoriõigused 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Litsentseeritud Apache Tarkvara Sihtasutusele, http://www.apache.org/ Benchmarking localhost (ole kannatlik) täidetud 100 taotlust täidetud 200 taotlust täidetud 300 taotlust täidetud 400 taotlust täidetud 500 taotlust täidetud 600 taotlust täidetud 700 taotlust täidetud 800 taotlust täidetud 900 taotlust täidetud 1000 taotlust lõpetatud 1000 taotlust

Pange tähele, et ülaltoodud väljund lühendati lühiduse huvides.

3. Liikuge tagasi Sysdigi konteinerisse ja lõpetage andmete hõivamine, sisestades “CTRL + C”.

Andmete analüüsimine

Kui vaatate nüüd faili monitoring-wordpress.scap suurust, siis märkate, et Sysdig salvestas vähemalt 80 miljonit andmeid:

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

Selle andmete mäe kaudu tee leidmiseks kasutage peitlit.

Peitel on põhimõtteliselt Lua skript, mis analüüsib sündmuse voogu ja teeb kasulikke toiminguid.

Peitrite loendi kuvamiseks võite käivitada järgmise käsu:

sysdig -cl
Kategooria: Rakendus --------------------- httplog HTTP-taotluste logi httptop Top HTTP-taotluste memcachelog memcached taotluste logi Kategooria: CPU kasutamine ---------- --------- spektrogramm Kujutage OS-i latentsust reaalajas. subsecoffset Alamsekundilise nihke täitmise aja visualiseerimine. topcontainers_cpu Parimad konteinerid CPU kasutamise järgi topprocs_cpu Parimad protsessid CPU kasutamise järgi Kategooria: Vead ---------------- topcontainers_error Ülemised konteinerid vigade arvu järgi topfiles_errors Ülemised failid vigade arvu järgi topprocs_errors top protsesside arv vigadest

Pange tähele, et ülaltoodud väljund lühendati lühiduse huvides.

Peitli kohta üksikasjaliku teabe saamiseks käivitage käsk sysdig, millele järgneb lipp -i ja peitli nimi, nagu järgmises näites:

sysdig -i httptop
Kategooria: Rakendus --------------------- httptop Top HTTP-taotlused Kuvab HTTP-päringute populaarsus: ncalls, time või bytes Args: [string] by - Show top HTTP Transactions autor: ncalls, time või tes, vaikimisi on ncalls

Jätkates meie näidet, näete järgmiselt, kuidas saate HTTP-peitlit kasutada parimate HTTP-taotluste kuvamiseks:

sysdig -r monitoring-wordpress.scap -c httptop
ncalls-meetodi URL ----------------------------------------------- --------------------------------- 2001 GET localhost: 8000 /? P = 7 14 VÕIMALUST * 2 GET localhost: 8000 / favicon.ico 1 GET /wp-content/themes/twentytwenty/assets/fonts/inter/Inter-upright-var.woff2 1 GET localhost / v1.24 / konteinerid / 6bd8418eb03f / json 1 GET localhost / v1.24 / konteinerid / 06def7875617 / json 1 GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 GET /v1.24/images/db39680b63ac47a1f2a8f8b8b8b2b2b2b4e4b4e4b4e4b4e4b2a4b4e4b4e4b2a2a

Sama teavet näete konteinerisõbralikus vormingus konteineri lipuga:

sysdig -r jälgimine-wordpress.scap -c httptop -pcontainer
ncalls konteineri meetodi URL ---------------------------------------------- ---------------------------------- 1000 wordpress-sysdig_wo GET localhost: 8000 /? P = 7 1000 host GET localhost: 8000 /? p = 7 43 WordPress-sysdig_wo VÕIMALUSED * 1 sysdig GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 sysdig GET localhost / v1.24 / konteinerid / 06deff cd06093b141b / json 1 sysdig GET /v1.24/images/00e230fe24da9067f9b6e65cfbe9935a5affac1ae8e44edb6a5b0ccc26374d 1 sysdig GET /v1.24/images/db39680b3b7b7b7f7b7ac8b7ac4b7ac47a

Kaevamine sügavamale

Sysdig kogub rikkalikku sisu, mis võimaldab teil saada üksikasjalikku teavet konteinerite sisemise töö kohta. Oletame, et teil on mõni konteiner ja soovite teada, milline protsess tarbib kõige rohkem protsessorit.

  1. Loetlege konteinerid, mis olid aktiivsed sündmuste hõivamise perioodil:
sysdig -r monitoring-wordpress.scap -c lscontainers

2. Enim protsessorit tarbinud konteineri saate tuvastada järgmistel viisidel:

sysdig -r jälgimine-wordpress.scap -c topcontainers_cpu
Protsessori% konteiner.nimi --------------------------------------------- ----------------------------------- 5,37% wordpress-sysdig_wordpress_1 1,35% wordpress-sysdig_db_1 0,84% host 0,51% sysdig

3. Pealkirjaga topprocs_cpu saate kaevata veelgi sügavamale ja tuvastada protsessori intensiivseima protsessi:

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

Kui soovite näha rohkem üksikasju, pakub ps peitel verbaalsemat alternatiivi:

sysdig -r jälgimine-wordpress.scap -c ps container.name = wordpress-sysdig_wordpress_1
TID PID KASUTAJA VIRT RES FDLIMIT CMD 5896 5896 root 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 8424ac4MM4,44,44.44MM.49MM.49M2.44MM 8897 www-andmed 235.44M 22.89M 429496729 apache2 9154 9154 www-andmed 235.44M 22.91M 429496729 apache2 9241 9241 www-andmed 307.44M 25.66M 429496729 apache2 9242 9242 www-andmed 307.44M 93.600M.2949.429M 22.89M 429496729 apache2 9372 9372 www-data 235.44M 22.89M 429496729 apache2 9413 9413 www-data 233.44M 20.77M 429496729 apache2

Kasulikke näpunäiteid

Kui käivitate sündmuse hõivamiseks Sysdigit nagu ülaltoodud näites (sysdig -w monitoring-wordpress.scap), kasvab sündmusfail pidevalt, kuni see võtab kogu vaba ruumi. Selle vältimiseks on mõned meetodid:

  • Täpsustage sündmuste arv, mida Sysdig peaks jäädvustama, edastades lipu -n. Kui Sysdig jäädvustab määratud arvu sündmusi, väljub see automaatselt:
sysdig -n 5000 -w jälgimine-wordpress.scap
  • Kasutage -C lippu, et konfigureerida Sysdig nii, et see jaotaks hõivamise väiksemateks kindla suurusega failideks. Järgmine näide salvestab sündmused pidevalt failidesse <10 MB:
sysdig -C 10 -w jälgimine-wordpress.scap

See loob hunniku faile, mis pole suuremad kui 10 MB:

ls-lh jälgimis-WordPress *
-rw-r - r--. 1 juurejuur 9.6M 7. jaanuar 17:13 monitoring-wordpress.scap0 -rw-r - r--. 1 juurejuur 9.6M 7. jaanuar 17:14 monitoring-wordpress.scap1 -rw-r - r--. 1 juurejuur 9.6M 7. jaanuar 17:14 monitoring-wordpress.scap2 -rw-r - r--. 1 juurjuur 9.6M 7. jaanuar 17:14 monitoring-wordpress.scap3 -rw-r - r--. 1 juurejuur 9.6M 7. jaanuar 17:14 monitoring-wordpress.scap4 -rw-r - r--. 1 juurejuur 9.6M 7. jaanuar 17:14 monitoring-wordpress.scap5 -rw-r - r--. 1 juurejuur 9.6M 7. jaanuar 17:14 monitoring-wordpress.scap6 -rw-r - r--. 1 juurejuur 9.6M 7. jaanuar 17:14 monitoring-wordpress.scap7 -rw-r - r--. 1 juurejuur 6.4M 7. jaanuar 17:14 monitoring-wordpress.scap8
  • Täpsustage failide maksimaalne arv, mida Sysdig peaks koos lipuga -W hoidma. Näiteks võite kombineerida lippe -C ja -W nii:
sysdig -C 10 -W 4 -w jälgimine-wordpress.scap

Ülaltoodud käsk säilitab ainult neli viimast pildifaili:

ls-lh jälgimis-WordPress *
-rw-r - r--. 1 juurejuur 7.2M 7. jaanuar 17:21 monitoring-wordpress.scap0 -rw-r - r--. 1 juurejuur 9.6M 7. jaanuar 17:21 monitoring-wordpress.scap1 -rw-r - r--. 1 juurejuur 9.6M 7. jaanuar 17:21 monitoring-wordpress.scap2 -rw-r - r--. 1 juurjuur 9.6M 7. jaanuar 17:21 monitoring-wordpress.scap3 root @ cd06093b141b: / # sysdig -C 10 -W 4 -w monitoring-wordpress.scap

Reaalajas jälgimine

Sysdigiga saate andmeid analüüsida ka reaalajas. Esmapilgul võib see tunduda hirmutav ülesanne, sest vaikimisi prinditakse kõik sündmused pidevalt konsooli. Õnneks on peitlid siin abiks.

Võtame näite.

Analüüsige oma protsesse konteineri kohta

  1. Käivitage järgmine käsk konteinerite loetlemiseks:
dokk ps
KONTEINERI ID KUJUTUSKÄSK LOODUD STAATUS SADAMATE NIMED 5b253e74e8e7 sysdig / sysdig "/docker-entrypoint.…" 9 minutit tagasi Üles 9 minutit sysdig 06def7875617 wordpress: viimane "docker-entrypoint.s ..." 3 tundi tagasi Kuni 3 tundi 0.0.0.0:8000 -> 80 / tcp wordpress-sysdig_wordpress_1 6bd8418eb03f mysql: 5,7 "docker-entrypoint.s…" 3 tundi tagasi Üles 3 tundi 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1

2. Saate WordPressi konteineris töötavaid protsesse analüüsida järgmiselt:

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

3. Samamoodi saate analüüsida MySQL konteineris töötavaid protsesse:

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

Pange tähele, et erinevalt sellest näitest saab Sysdig jälgida võrguliiklust, ketta kasutamist ja nii edasi.

Selles õpetuses olete tutvunud Sysdigi kasutamise põhialustega, et saada selge ülevaade konteinerite loodud tegevusest. Selle ajaveebi postituse näited aitasid teil alustada ja tulevastes õpetustes näitame teile, kuidas kasutada Csysdigit ja Sysdig Inspect.