Sysdig: Mikä se on ja kuinka sitä käytetään

Sysdig on universaali järjestelmän näkyvystyökalu, joka tukee kontteja. Sysdigin tekee erikoiseksi se, että se koukkuu itsensä koneen ytimeen ja erottaa tiedot säiliökohtaisesti. Tämän opetusohjelman laajuudessa keskitymme Sysdigin avoimen lähdekoodin versioon.

Seuraavissa osioissa:

  • Asenna Sysdig
  • Pyöritä Wordpress-asennusta docker-compose -sovelluksella
  • Käytä Sysdigiä kerätäksesi tapahtumia ja analysoidaksesi niitä myöhemmin
  • Sysdigin avulla voit analysoida tietoja reaaliajassa

edellytykset

  • Docker on asennettu järjestelmään. Lisätietoja Dockerin asentamisesta on Install Dockerin asennus -sivulla.
  • Docker Compose on asennettu järjestelmään. Katso Docker Compose -sovelluksen asennusohjeet Asenna Docker Compose -sivulta.
  • Ytimen otsikot on asennettu isäntäjärjestelmään.

Asenna Sysdig

Asenna Sysdig Docker-säilön sisään seuraavasti:

  1. Suorita seuraava komento pääteikkunassa vetääksesi Sysdig Docker -kuvan:
telakoitsija pull sysdig / sysdig
Oletustunnisteen käyttäminen: viimeisin viimeisin: Vedäminen sysdigistä / sysdig 2967486b0658: Vedä täydellinen 78101b780c72: Vedä täydellinen 7e78b657334d: Vedä täydellinen 650327159ca8: Vedä täydellinen 47ebf73ab754: Vedä täydellinen bf51ac76a6d9: Vedä täydellinen bf51ac76a6d9: Vedä täydellinen 0c Vedä täydellinen 6de86c8ed6e9: Vedä täydellinen 8d1825f8be4b: Vedä täydellinen tiivistelmä: sha256: bbfe6953fd2b3221a8974eb13024dd33c7e78aebef8fee3d7a0d9ecdeed84ce0 Tila: Ladattu uudempi sysdig / sysdig-tiedosto

2. Suorita Sysdig säilössä syöttämällä:

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 / käynnistys: / isäntä / käynnistys: ro -v / lib / moduulit: / isäntä / lib / moduulit: ro -v / usr: / isäntä / usr: ro sysdig / sysdig
* / Usr / src-linkkien luominen isännästä * sysdig-anturin purkaminen, jos sellainen on * Käynnissä dkms install for sysdig -virhe! echo ytimen otsikot ytimelle 3.10.0-957.12.2.el7.x86_64 ei löydy osoitteesta /lib/modules/3.10.0-957.12.2.el7.x86_64/build tai /lib/modules/3.10.0-957.12 .2.el7.x86_64 / lähde. * Dkms-rakennuksen suorittaminen epäonnistui, /var/lib/dkms/sysdig/0.26.4/build/make.log ei löytynyt * Yritetään ladata järjestelmän sysdig-koetin, jos sellainen on. * Yritetään löytää esikäännetty sysdig-anturi 3.10: lle .0-957.12.2.el7. .draios.com / vakaa / sysdig-probe-binaries / sysdig-probe-0.26.4-x86_64-3.10.0-957.12.2.el7.x86_64-82e2ae1fb159132636f7b50a762f20ef.ko lataus onnistui, moduulin juuri @ 7b14a23f22eb ladataan: / #

Muutamia huomioita yllä olevasta komennosta:

  • -I-lippu pitää STDIN: n auki.
  • Parametri --privileged tarjoaa pääsyn kaikkiin isäntälaitteen laitteisiin. Se asettaa myös SELinuxin sallimaan säiliön sisällä kulkeville prosesseille saman pääsyn isäntään kuin isäntällä suoritettavat prosessit.
  • -V-lippu määrittelee luettelon tiedostoista (isännässä), joita Sysdig voi käyttää.

Pyöritä Wordpress-asennusta

Tässä osassa asennat Wordpressin käyttämällä docker-compose -komentoa.

  1. Siirry uudessa pääteikkunassa projektihakemistoon ja kirjoita seuraavat komennot:
mkdir wordpress-sysdig && cd wordpress-sysdig

2. Luo tiedosto, jonka nimi on docker-compose ja jolla on seuraava sisältö:

versio: '3.3' palvelut: db: kuva: mysql: 5.7 volyymit: - db_data: / var / lib / mysql uudelleenkäynnistys: aina ympäristö: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: WordPress WordP: image_d: --__:: wordpress: viimeisimmät portit: - "8000: 80" uudelleenkäynnistys: aina ympäristö: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: WordPress-määrät: db_data: {}

3. Suorita docker-compose up -komento irrotetussa tilassa:

telakka-kirjoita ylös -d
Verkon "wordpress-sysdig_default" luominen oletusohjaimella Tallenteen luominen "wordpress-sysdig_db_data" oletusohjaimella Wordpressin vetäminen (WordPress: viimeisin) ... viimeisin: Vedäminen kirjastosta / wordpress 8ec398bc0356: Vedä kokonaan 85cf4fc86478: Vedä täydellinen 970dadf4ccb6: Pull täydellinen 8c04561117a4: Vedä täydellinen d6b7434b63a2: Vedä täydellinen 83d8859e9744: Vedä täydellinen 9c3d824d0ad5: Vedä täydellinen 9e316fd5b3b3: Vedä täydellinen 578b40496c37: Vedä täydellinen 814ae7711d3c: Vedä täydellinen 4896fed78b6b: Vedä täydellinen e74d71e9611d: Vedä täydellinen 46017765526c: Vedä täydellinen 280386098458: Vedä täydellinen f32eb0d8c540: Vedä valmis 5c47b9ea747a: pull täydellinen ecda5b7aad12: vedä täydellinen 84256a6b6b44: vedä täydellinen 35d4f385efb7: vedä täydellinen bf697c2ae701: vedä täydellinen d054b015f084: vedä täydellinen Digest: sha256: 73e8d8adf491c7a358ff94c74c8ebe35cb5f8857e249eb8ce6062b8576a01465 Tila: Ladattu uudempia kuva crowdsourcing: uusin luominen WordPress-sysdig_db_1 ... tehty luominen WordPress-sysdig_word paina_1 ... valmis

4. Voit tarkistaa säilöidesi tilan:

telakka ps

Jos kaikki menee hyvin, sinun pitäisi nähdä jotain seuraavan tuotosta:

CONTAINER ID KUVAKomento luotiin tila-satamien nimiksi f390eec29f52 wordpress: latest "docker-entrypoint.s…" Noin minuutti sitten ylös Noin minuutti 0.0.0.0:8000->80/tcp wordpress-sysdig_wordpress_1 a844840626d8 mysql: 5.7 "docker-entrypoint. s… "Noin minuutti sitten ylös Noin minuutti 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1 7b14a23f22eb sysdig / sysdig" /docker-entrypoint.… "13 minuuttia sitten Ylä 13 minuuttia sysdig

5. Wordpress on nyt toiminnassa. Osoita selaimesi kohtaan http: // localhost: 8000 käynnistääksesi asennustoiminnon:

6. Kun ohjattu asennus on valmis, siirrytään eteenpäin ja luodaan näyteviesti:

Tietojen kerääminen tiedostoon

Tässä osiossa näytetään, kuinka voit Sysdigin avulla kerätä tapahtumia ja analysoida niitä myöhemmin.

  1. Jos haluat siirtää kaikki kaapatut tapahtumat tiedostoon, siirry Sysdig-säilöön ja kirjoita seuraava komento:
sysdig -w monitoring-wordpress.scap

2. Tee uudessa pääteikkunassa ab-painikkeella 10000 pyyntöä ja enintään 100 pyyntöä suoritetaan samanaikaisesti:

ab -n 1000 -c 100 http: // localhost: 8000 /? p = 7
Tämä on ApacheBench, versio 2.3 <$ Versio: 1430300 $> Tekijänoikeudet 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ lisensoitu Apache Software Foundation -säätiölle, http://www.apache.org/ Benchmarking localhost (ole kärsivällinen) Täytetty 100 pyyntöä Täytetty 200 pyyntöä Täytetty 300 pyyntöä Täytetty 400 pyyntöä Valmis 500 pyyntöä täytetty 600 pyyntöä täytetty 700 pyyntöä valmiita 800 pyyntöä valmiita 900 pyyntöä valmista 1000 pyyntöä valmista 1000 pyyntöä

Huomaa, että yllä oleva lähtö katkaistiin lyhyyden vuoksi.

3. Siirry takaisin Sysdig-säilöön ja lopeta tietojen sieppaaminen kirjoittamalla ”CTRL + C”.

Tietojen analysointi

Nyt, jos tarkastelet monitoring-wordpress.scap-tiedoston kokoa, huomaat, että Sysdig on kerännyt vähintään 80 miljoonaa dataa:

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

Käytä jotain, jota kutsutaan talttaksi löytääksesi läpi tämän tiedonvuoren.

Taltta on pohjimmiltaan Lua-skripti, joka analysoi tapahtumavirran ja suorittaa hyödyllisiä toimia.

Voit suorittaa seuraavan komennon avataksesi talttaluettelon:

sysdig -cl
Luokka: Sovellus --------------------- httplog HTTP-pyyntöjen loki httptop top HTTP-pyyntöjen memcachelog memcached pyyntöjen loki Luokka: CPU-käyttö ---------- --------- spektrogrammi Kuvittele käyttöjärjestelmän latenssi reaaliajassa. subsecoffset Visualisoi subsecd-offset-suoritusaika. topcontainers_cpu Suosituimmat säilyt CPU-käytön mukaan topprocs_cpu Suosituimmat prosessit CPU-käytön mukaan Luokka: Virheet ---------------- topcontainers_error Suosituimmat säilöt virheiden lukumäärän mukaan topfiles_errors Suosituimmat tiedostot virheiden lukumäärän mukaan topprocs_errors top prosessit lukumäärän mukaan virheistä

Huomaa, että yllä oleva lähtö katkaistiin lyhyyden vuoksi.

Saadaksesi yksityiskohtaisia ​​tietoja taltasta, suorita sysdig-komento, jota seuraa -i-lippu ja taltan nimi, kuten seuraavassa esimerkissä:

sysdig -i httptop
Luokka: Sovellus --------------------- httptop top HTTP -pyynnöt Näytä suosituimmat HTTP-pyynnöt: ncalls, time tai bytes Args: [string] by - Näytä top HTTP -tapahtumat lähettäjä: ncalls, aika tai tes, oletus on ncalls

Jatkamalla esimerkkiämme, miten voit käyttää httptop-talttaa näyttämään ylimmät HTTP-pyynnöt:

sysdig -r seuranta-wordpress.scap -c httptop
ncalls-menetelmän 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 / konteinerit / 06def7875617 / json 1 GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 GET / v1.24/images/db39680b63ac47a1f2b4e4b2e4b2b2e4b2b4e4b2e4b2b2e4b2e4b2e4b2b2e4b2e4b2e4e2b2a

Voit nähdä samat tiedot konttiystävällisessä muodossa -pcontainer-lipun kanssa:

sysdig -r seuranta-wordpress.scap -c httptop -pcontainer
ncalls-konttimenetelmä-URL ---------------------------------------------- ---------------------------------- 1000 wordpress-sysdig_wo GET localhost: 8000 /? P = 7 1000 host GET localhost: 8000 /? p = 7 43 wordpress-sysdig_wo VAIHTOEHDOT * 1 sysdig GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 sysdig GET localhost / v1.24 / konteinerit / 06defff cd06093b141b / json 1 sysdig GET /v1.24/images/00e230fe24da9067f9b6e65cfbe9935a5affac1ae8e44edb6a5b0ccc26374d 1 sysdig GET /v1.24/images/db39680973b8b7b7ac8b7ac7b7ac7b7ac4b7ac47a

Kaivaa syvemmälle

Sysdig kaappaa sisältörikkaita tietoja, joiden avulla saat yksityiskohtaisia ​​tietoja konttien sisäisestä toiminnasta. Oletetaan, että käytät muutamaa säilöä ja haluat tietää, mikä prosessi kuluttaa eniten prosessoria.

  1. Luettelo kontteista, jotka olivat aktiivisia tapahtumakaappauksen aikana:
sysdig -r monitoring-wordpress.scap -c lcontainerit

2. Voit tunnistaa eniten prosessoria käyttäneen säiliön seuraavilla:

sysdig -r seuranta-wordpress.scap -c topcontainers_cpu
Prosessorin prosenttiosuus.nimi --------------------------------------------- ----------------------------------- 5,37% wordpress-sysdig_wordpress_1 1,35% wordpress-sysdig_db_1 0,84% isäntä 0,51% sysdig

3. Voit kaivaa vielä syvemmälle ja tunnistaa tehokkain prosessoriprosessi topprocs_cpu-taltalla:

sysdig -r monitoring-wordpress.scap -c topprocs_cpu container.name sisältää wordpress_1
Prosessorin% prosessin 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

Jos haluat nähdä lisätietoja, ps-taltta tarjoaa selkeämmän vaihtoehdon:

sysdig -r tarkkailu-wordpress.scap -c ps container.name = wordpress-sysdig_wordpress_1
TID PID USER VIRT RES FDLIMIT CMD 5896 5896 juuri 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 wwwM data 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 930000000000 22.89M 429496729 apache2 9372 9372 www-data 235.44M 22.89M 429496729 apache2 9413 9413 www-data 233.44M 20.77M 429496729 apache2

Hyödyllisiä vinkkejä

Jos suoritat Sysdigin tallentaaksesi tapahtumia kuten yllä olevassa esimerkissä (sysdig -w monitoring-wordpress.scap), tapahtumatiedosto kasvaa jatkuvasti, kunnes se vie kaiken käytettävissä olevan tilan. Eräät menetelmät voivat auttaa estämään tämän tapahtumista:

  • Määritä tapahtumien lukumäärä, jonka Sysdigin tulisi tallentaa lähettämällä sille -n-lippu. Kun Sysdig on tallentanut määritetyn määrän tapahtumia, se poistuu automaattisesti:
sysdig -n 5000 -w seuranta-wordpress.scap
  • Määritä Sysdig -C-lipun avulla siten, että se hajottaa sieppauksen pienemmiksi tietyn koon tiedostoiksi. Seuraava esimerkki tallentaa tapahtumia jatkuvasti tiedostoihin <10 Mt:
sysdig -C 10 -w valvonta-wordpress.scap

Tämä luo joukon tiedostoja, joiden koko on enintään 10 Mt:

ls-lh monitorointi-wordpress *
-rw-r - r--. 1 juurijuuri 9.6M 7. tammikuuta 17:13 monitoring-wordpress.scap0 -rw-r - r--. 1 juurijuuri 9.6M 7. tammikuuta 17:14 monitoring-wordpress.scap1 -rw-r - r--. 1 juurijuuri 9.6M 7. tammikuuta 17:14 monitoring-wordpress.scap2 -rw-r - r--. 1 juurijuuri 9.6M 7. tammikuuta 17:14 monitoring-wordpress.scap3 -rw-r - r--. 1 juurijuuri 9.6M 7. tammikuuta 17:14 monitoring-wordpress.scap4 -rw-r - r--. 1 juurijuuri 9.6M 7. tammikuuta 17:14 monitoring-wordpress.scap5 -rw-r - r--. 1 juurijuuri 9.6M 7. tammikuuta 17:14 monitoring-wordpress.scap6 -rw-r - r--. 1 juurijuuri 9.6M 7. tammikuuta 17:14 monitoring-wordpress.scap7 -rw-r - r--. 1 juurijuuri 6.4M 7. tammikuuta 17:14 monitoring-wordpress.scap8
  • Määritä tiedostojen enimmäismäärä, jonka Sysdigin tulisi pitää -W-lipun kanssa. Voit esimerkiksi yhdistää -C- ja -W-liput seuraavasti:
sysdig -C 10 -W 4 -w valvonta-wordpress.scap

Yllä oleva komento säilyttää vain neljä viimeistä sieppaustiedostoa:

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

Reaaliaikainen seuranta

Sysdigin avulla voit myös analysoida tietoja reaaliajassa. Ensi silmäyksellä tämä voi tuntua pelottavalta tehtävältä, koska oletuksena kaikkia tapahtumia tulostetaan jatkuvasti konsoliin. Onneksi taltta on täällä auttamassa.

Otetaan esimerkki.

Analysoi prosessit konttikohtaisesti

  1. Suorita seuraava komento luetteloidaksesi säilöt:
telakka ps
CONTAINER ID KUVAKomento luotiin tila-satamien nimet 5b253e74e8e7 sysdig / sysdig "/docker-entrypoint.…" 9 minuuttia sitten Ylä 9 minuuttia sysdig 06def7875617 wordpress: viimeisin "docker-entrypoint.s ..." 3 tuntia sitten Yli 3 tuntia 0.0.0.0:8000 -> 80 / tcp wordpress-sysdig_wordpress_1 6bd8418eb03f mysql: 5.7 "docker-entrypoint.s…" 3 tuntia sitten Ylä 3 tuntia 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1

2. Voit analysoida WordPress-säilössä käynnissä olevia prosesseja:

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

3. Samoin voit analysoida MySQL-säilössä käynnissä olevia prosesseja:

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

Huomaa, että Sysdig voi valvoa verkkoliikennettä, levyn käyttöä ja niin edelleen, mikä ei eroa paljon tästä esimerkistä.

Tässä opetusohjelmassa olet käynyt läpi Sysdigin käytön perusteet saadaksesi selkeän käsityksen konttien luomasta toiminnasta. Tämän blogiviestin esimerkit auttoivat sinua pääsemään alkuun, ja tulevissa opetusohjelmissa näytämme sinulle, kuinka käyttää Csysdigiä ja Sysdig Inspectiä.