Sysdig: nədir və bundan necə istifadə etmək olar

Sysdig, qablar üçün dəstəyi olan universal bir sistem görmə vasitəsidir. Sysdig'i xüsusi edən şey, maşının ləpəsinə bükülməsi və məlumatı hər konteyner əsasında ayırmasıdır. Bu dərs vəsaiti üçün Sysdig-in açıq mənbəli versiyasına diqqət yetirəcəyik.

Növbəti hissələrdə:

  • Sysdig quraşdırın
  • Doker kompozisiyasından istifadə edərək Wordpress quraşdırmasını sürətləndirin
  • Hadisələri toplamaq və sonradan təhlil etmək üçün Sysdig istifadə edin
  • Real vaxtda məlumatları təhlil etmək üçün Sysdig istifadə edin

Ön şərtlər

  • Docker sisteminizə quraşdırılmışdır. Docker qurmaq barədə ətraflı məlumat üçün Quraşdırma Docker səhifəsinə baxın.
  • Docker Compose sisteminizə quraşdırılmışdır. Docker Compose proqramını necə quraşdıracağınıza dair təlimatlar üçün Install Docker Compose səhifəsinə baxın.
  • Ləpənin başlıqları ev sahibi sisteminə quraşdırılmışdır.

Sysdig quraşdırın

Sysdig'i bir Docker konteynerinin içərisinə quraşdırmaq üçün bu addımları izləyin:

  1. Terminal pəncərəsində Sysdig Docker görüntüsünü çəkmək üçün aşağıdakı əmri yerinə yetirin:
docker çəkmək sysdig / sysdig
Varsayılan etiketi istifadə edərək: ən son: sysdig / sysdig 2967486b0658: Tam 78101b780c72: Tam çək 7e78b657334d: Tam çəkin 650327159ca8: Tam 47ebf73ab754: Tamamilə bf51ac76a6d9: Tamametli Tamamil: Dd66996998: Tamametli Tamametlədim: Doldurun: Tamamilə 6de86c8ed6e9 çəkin: Tam çəkin 8d1825f8be4b: Tam çəkin Digest: sha256: bbfe6953fd2b3221a8974eb13024dd33c7e78aebef8fee3d7a0d9ecdeed84ce0 Vəziyyəti: sysdig / sys üçün yeni görüntü

2. Sysdig'i bir konteynerə daxil edərək işə salın:

docker run -i -t - ad sysdig - qorunan -v /var/run/docker.sock:/host/var/run/docker.sock -v / dev: / host / dev -v / proc: / host / proc: ro -v / açılış: / host / açılış: ro -v / lib / modullar: / host / lib / modullar: ro -v / usr: / host / usr: ro sysdig / sysdig
* Host-dan / usr / src bağlantıları qurmaq * Əgər varsa, sysdig-probe boşaltma * Ssdig səhvləri üçün quraşdırılmış dkms quraşdırmaq! echo 3.10.0-957.12.2.el7.x86_64 üçün kernel başlıqlarınızı /lib/modules/3.10.0-957.12.2.el7.x86_64/build ya da /lib/modules/3.10.0-957.12 tapıla bilməz .2.el7.x86_64 / mənbə. * Dkms build işləmədi, /var/lib/dkms/sysdig/0.26.4/build/make.log * Bir sistem sysdig-prob yükləməyə çalışır, əgər varsa * 3.10 üçün əvvəlcədən hazırlanmış sysdig-probe tapmağa çalışır .0-957.12.2.el7.x86_64 /host/boot/config-3.10.0-957.12.2.el7.x86_64 saytında kernel konfiqurasiya tapıldı https://s3.amazonaws.com/download-dan əvvəlcədən hazırlanmış modulu yükləməyə çalışırıq .draios.com / stabil / sysdig-prob-binaries / sysdig-prob-0.26.4-x86_64-3.10.0-957.12.2.el7.x86_64-82e2ae1fb159132636f7b50a762f20ef.ko Yüklənmə müvəffəq oldu, yükləmə modulu kökü @ 7b14a23f22eb: / #

Yuxarıda göstərilən əmrlə əlaqədar bir neçə şeyi qeyd etmək lazımdır.

  • -İ bayrağı STDIN-i açıq saxlayır.
  • - Xüsusi parametr ana sahədəki bütün cihazlara girişi təmin edir. Ayrıca, SELinux'u, konteynerin içərisində gedən proseslərə, ana üzərində işləyən bir proses kimi ana ilə eyni giriş imkanı vermək üçün təyin edir.
  • -V bayrağı Sysdig-ın əldə edə biləcəyi faylların siyahısını (hostda) göstərir.

Bir Wordpress Quraşdırma Fırlat

Bu hissədə docker-compose əmrindən istifadə edərək Wordpress-i quraşdıracaqsınız.

  1. Yeni bir terminal pəncərəsində layihələr qovluğuna keçin və aşağıdakı əmrləri yazın:
mkdir wordpress-sysdig && cd wordpress-sysdig

2. Aşağıdakı məzmunla docker-compose adlı bir fayl yaradın:

versiya: '3.3' xidmətləri: db: görüntü: mysql: 5.7 cild: - db_data: / var / lib / mysql yenidən başladın: hər zaman mühit: MYSQL_ROOT_PASSWORD: biraz mətn MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PonSWb: image wordpress: son limanlar: - "8000: 80" yenidən başladın: həmişə mühit: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress həcmi: db_data: {}

3. Docker-compos up əmrini ayrılmış rejimdə işləyin:

docker-compose up -d
Standart sürücüylə "wordpress-sysdig_default" şəbəkə yaratmaq Default sürücü ilə "wordpress-sysdig_db_data" həcmi yaratmaq Wordpress (çəkən söz: son) ... son: Kitabxana / wordpress-dən çəkmək 8ec398bc0356: Tam 85cf4fc86478: Tamamilə 970dadf4ccb 8c04561117a4: Pull tam d6b7434b63a2: Pull tam 83d8859e9744: Pull tam 9c3d824d0ad5: Pull tam 9e316fd5b3b3: Pull tam 578b40496c37: Pull tam 814ae7711d3c: Pull tam 4896fed78b6b: Pull tam e74d71e9611d: Pull tam 46017765526c: Pull tam 280386098458: Pull tam f32eb0d8c540: tam 5c47b9ea747a Pull: tam ecda5b7aad12 Pull: Pull tam 84256a6b6b44: Pull tam 35d4f385efb7: Pull tam bf697c2ae701: Pull tam d054b015f084: Pull tam Digest: SHA256: 73e8d8adf491c7a358ff94c74c8ebe35cb5f8857e249eb8ce6062b8576a01465 Status: Yüklənib yeni image for wordpress son yaradılması wordpress-sysdig_db_1 ... wordpress-sysdig_word yaradılması həyata press_1 ... etdi

4. Konteynerlərinizin vəziyyətini aşağıdakılarla yoxlaya bilərsiniz:

docker ps

Hamısı yaxşı gedirsə, aşağıdakı çıxışa bənzər bir şey görməlisiniz:

ƏLAQƏ ID ID ŞİKAYƏT YARADILMASI STATUS PORTS ADLARI f390eec29f52 wordpress: son "docker-girişpoint.s ..." Təxminən bir dəqiqə əvvəl bir dəqiqə əvvəl 0.0.0.0:8000->80/tcp wordpress-sysdig_wordpress_1 a844840626d8 mysql: 5.7 "dock. s ... "Təxminən bir dəqiqə əvvəl Bir dəqiqəyə 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1 7b14a23f22eb sysdig / sysdig" /docker-entrypoint.… "13 dəqiqə əvvəl 13 dəqiqə əvvəl

5. İndi Wordpress işləyir. Quraşdırma ustasını işə salmaq üçün brauzerinizi http: // localhost: 8000-ə yönəldin:

6. Quraşdırma sihirbazı bitdikdən sonra gəlin nümunə yazı hazırlayaq:

Bir fayla məlumat toplamaq

Bu hissədə Sysdig'i hadisələri toplamaq və sonradan təhlil etmək üçün necə istifadə edə biləcəyinizi göstərəcəyik.

  1. Bütün çəkilmiş hadisələri bir fayla atmaq üçün Sysdig konteynerinə keçin və aşağıdakı əmri daxil edin:
sysdig -w monitorinq-wordpress.scap

2. Yeni bir terminal pəncərəsində, maksimum 100 sorğu eyni vaxtda işləyən 10000 sorğu etmək üçün ab istifadə edin:

ab -n 1000 -c 100 http: // localhost: 8000 /? p = 7
Bu ApacheBench, Version 2.3 <$ Revision: 1430300 $> Müəlliflik hüququ 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Apache Proqram Fonduna lisenziyalı, http://www.apache.org/ Benchmarking localhost (səbirli olun) Tamamlanmış 100 sorğu Tamamlanmış 200 sorğu Tamamlanmış 300 sorğu Tamamlanmış 400 sorğu Tamamlanmış 500 sorğu Tamamlanmış 600 sorğu Tamamlanmış 600 sorğu Tamamlanmış 700 sorğular Tamamlanmış 800 sorğular Tamamlanmış 900 sorğular Tamamlanmış 1000 sorğular 1000 İstəklər

Qeyd edək ki, yuxarıdakı çıxış kəsik üçün kəsilmişdi.

3. Sysdig konteynerinə geri qayıdın və "CTRL + C" girərək məlumat əldə etməyi dayandırın.

Məlumatların təhlili

İndi monitorinq-wordpress.scap faylının ölçüsünə baxsanız, Sysdig-in 80M-dən az olmayan məlumatı ələ keçirdiyini görürsünüz:

ls -lh monitorinq-wordpress.scap
-rw-r - r--. 1 kök kök 80M Jan 7 16:28 monitorinq-wordpress.scap

Bu məlumat dağı ilə yolunuzu tapmaq üçün bir çisel deyilən bir şey istifadə edəcəksiniz.

Bir çisel, əsasən, hadisə axını təhlil edən və faydalı hərəkətlər edən Lua yazıdır.

Kəsiklərin siyahısını göstərmək üçün aşağıdakı əmri işləyə bilərsiniz:

sysdig -cl
Kateqoriya: Tətbiq --------------------- HTTP bağlantısı HTTP sorğuları daxil olmaq --------- spektrogram Real vaxtda OS gecikməsini görüntüləyin. subecoffset Subecond ofset icra müddətini görüntüləyin. topcontainers_cpu CPU istifadəsi ilə üst konteynerlər topprocs_cpu CPU istifadəsi ilə üst proseslər Kateqoriya: Səhvlər ---------------- topcontainers_error Səhvlərin sayına görə üst konteynerlər səhvlər

Qeyd edək ki, yuxarıdakı çıxış kəsik üçün kəsilmişdi.

Bir çisel haqqında ətraflı məlumat əldə etmək üçün aşağıdakı nümunədəki kimi -i bayraq və çiselin adından sonra sysdig əmrini işlədin:

sysdig -i wikiptop
Kateqoriya: Tətbiq --------------------- Httpop Top Top HTTP sorğuları: Ən yaxşı HTTP sorğularını göstər: ncalls, time and bytes Args: [string] by - Ən yaxşı HTTP əməliyyatlarını göstər tərəfindən: ncalls, vaxt və ya tes, default olaraq ncalls

Nümunəmizi davam etdirərək, burada ən yaxşı HTTP sorğularını göstərmək üçün hipptop çini istifadə edə bilərsiniz:

sysdig -r monitorinq-wordpress.scap -c hippptop
ncalls metodu url ----------------------------------------------- --------------------------------- 2001 yerli mövqe GET: 8000 /? P = 7 14 Seçimlər * 2 Lokal Host: 8000 / favicon.ico 1 GET /wp-content/txem/twentytwenty/assets/fonts/inter/Inter-upright-var.woff2 1 GET localhost / v1.24 / konteynerlər / 6bd8418eb03f / json 1 GET localhost / v1.24 / konteynerlər / 06def7875617 / json 1 GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 GET /v1.24/images/db39680b63ac47a1d989daa8992996996996996996996996996996996999796996996996996996996996996996996996996996996996bb6bdb6bd6bb6bbdf6bdfdb8df8bb6df8bb6df8bb6bdf6bb6bdf8bb6bdf6bb6bdf6b6fe6db8b6b6e6b6e6d6996999996996996996996996996996996996996996996996996996996996996996996996996b6

Eyni məlumatları konteyner bayrağı ilə konteyner dostu formatında görə bilərsiniz:

sysdig -r monitorinqi-wordpress.scap -c hippptop-əlaqə
ncalls konteyner metodu url ---------------------------------------------- ---------------------------------- 1000 wordpress-sysdig_wo localhost GET: 8000 /? P = 7 1000 ev sahibi GET localhost: 8000 / p = 7 43 wordpress-sysdig_wo OPTIONS 1 sysdig GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 sysdig GET localhost / v1.24 / qablar / 06def7875617 / json 1 sysdig GET localhost / v1.24 / qablar * / cd06093b141b / json 1 sydigig GET /v1.24/images/00e230fe24da9067f9b6e65cfbe9935a5affac1ae8e44edb6a5b0ccc26374d 1 sysdig GET /v1.24/images/db39680b8d7a6bb6bb6a6bb6a6bb3dbd6dbb6bb6dbd6db6dbb6dbd6db6dbbbbb6bbbb6bbb6bb6bbbb6bb6bb6dbb6bb6bb6db6bb6bbb)) / 631bb6bbb6a6bb6bb6bb6bb6bbb6ebb6bb6bb6bbb6a6bbbb6a8b44fbb6a5b0ccc26374d 1

Dərin qazma

Sysdig, qablarınızın daxili işlərinə dair ətraflı məlumat əldə etməyə imkan verən məzmunla zəngin məlumatları əldə edir. Güman edək ki, bir neçə konteyner işlədirsiniz və hansı prosessorun ən çox istehlak etdiyini bilmək istəyirsiniz.

  1. Hadisələri çəkdiyiniz dövrdə aktiv olan konteynerləri sadalayın:
sysdig -r monitorinq-wordpress.scap -c lscontainers

2. Ən çox CPU istehlak edən konteyneri aşağıdakılarla müəyyən edə bilərsiniz:

sysdig -r monitorinq-wordpress.scap -c topcontainers_cpu
CPU% konteyner.name --------------------------------------------- ----------------------------------- 5.37% wordpress-sysdig_wordpress_1 1.35% wordpress-sysdig_db_1 0.84% ​​ana 0.51% sysdig

3. Daha dərin qazmaq və topprocs_cpu chisel ilə ən CPU intensiv prosesini təyin edə bilərsiniz:

sysdig -r monitorinq-wordpress.scap -c topprocs_cpu konteyner.name wordpress_1
CPU% Proses 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

Daha çox məlumat görmək istəyirsinizsə, ps çisel daha çox alternativ təmin edir:

sysdig -r monitorinq-wordpress.scap -c ps konteyner.name = wordpress-sysdig_wordpress_1
TID PID İSTİFADƏ VERT RES FDLIMIT CMD 5896 5896 kök 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.44M49 297.49 259.4949.4924.4949.49M.4924.49M.49M.49M.49M-497.49M-496 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.67Mache -999999999999999967999296799929679 22.89M 429496729 apache2 9372 9372 www-data 235.44M 22.89M 429496729 apache2 9413 9413 www-data 233.44M 20.77M 429496729 apache2

Faydalı məsləhətlər

Yuxarıdakı nümunədə (sysdig -w monitoring-wordpress.scap) olduğu kimi hadisələri ələ keçirmək üçün Sysdig-i işə salsanız, hadisə faylı bütün mövcud məkanı tükənənə qədər davamlı olaraq böyüyəcəkdir. Bunun baş verməsinin qarşısını almağa kömək edən bir neçə üsul var:

  • Sysdig'in bayraq ötürərək tutması lazım olan hadisələrin sayını göstərin. Sysdig göstərilən hadisələrin sayını çəkdikdən sonra avtomatik olaraq çıxacaq:
sysdig -n 5000 -w monitorinq-wordpress.scap
  • Sysdig'i konkretləşdirmək üçün -C bayraqdan istifadə edin ki, ələ keçirməni müəyyən ölçülü kiçik sənədlərə ayırsın. Aşağıdakı nümunə hadisələri davamlı olaraq fayllara saxlayır <10MB:
sysdig -C 10 -w monitorinq-wordpress.scap

Bu, 10 MB-dən çox olmayan bir dəstə fayl yaradacaq:

ls -lh monitorinq-wordpress *
-rw-r - r--. 1 kök kök 9.6M Jan 7 17:13 monitorinq-wordpress.scap0 -rw-r - r--. 1 kök kök 9.6M Jan 7 17:14 monitorinq-wordpress.scap1 -rw-r - r--. 1 kök kök 9.6M Jan 7 17:14 monitorinq-wordpress.scap2 -rw-r - r--. 1 kök kök 9.6M Jan 7 17:14 monitorinq-wordpress.scap3 -rw-r - r--. 1 kök kök 9.6M Jan 7 17:14 monitorinq-wordpress.scap4 -rw-r - r--. 1 kök kök 9.6M Jan 7 17:14 monitorinq-wordpress.scap5 -rw-r - r--. 1 kök kök 9.6M Jan 7 17:14 monitorinq-wordpress.scap6 -rw-r - r--. 1 kök kök 9.6M Jan 7 17:14 monitorinq-wordpress.scap7 -rw-r - r--. 1 kök kök 6.4M Jan 7 17:14 monitorinq-wordpress.scap8
  • Sysdig -W bayrağı ilə saxlamalı olduğunuz maksimum sayını göstərin. Məsələn, -C və -W bayraqları belə birləşdirə bilərsiniz:
sysdig -C 10 -W 4 -w monitorinq-wordpress.scap

Yuxarıdakı əmr yalnız son dörd ələ keçirmə sənədini saxlayacaq:

ls -lh monitorinq-wordpress *
-rw-r - r--. 1 kök kök 7.2M Jan 7 17:21 monitorinq-wordpress.scap0 -rw-r - r--. 1 kök kök 9.6M Jan 7 17:21 monitorinq-wordpress.scap1 -rw-r - r--. 1 kök kök 9.6M Jan 7 17:21 monitorinq-wordpress.scap2 -rw-r - r--. 1 kök kök 9.6M Jan 7 17:21 monitorinq-wordpress.scap3 kök @ cd06093b141b: / # sysdig -C 10 -W 4 -w monitorinq-wordpress.scap

Real vaxt rejimində monitorinq

Sysdig ilə də real vaxtda məlumatları təhlil edə bilərsiniz. İlk baxışdan bu, çox qorxunc bir vəzifə kimi görünə bilər, çünki standart olaraq bütün hadisələr davamlı olaraq konsola çap olunur. Xoşbəxtlikdən, çisellər kömək etmək üçün buradadır.

Bir nümunə götürək.

Proseslərinizi hər bir konteyner əsasında təhlil edin

  1. Konteynerlərinizi sadalamaq üçün aşağıdakı əmri işə salın:
docker ps
ƏLAQƏ ID ID ŞİKAYƏT YARADILMASI STATUS PORTS ADLARI 5b253e74e8e7 sysdig / sysdig "/docker-entrypoint.…" 9 dəqiqə əvvəl 9 dəqiqə əvvəl 6 dəqiqəlik 06def7875617 wordpress: son "docker-girişpoint.s ..." 3 saat əvvəl 3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 -> 80 / tcp wordpress-sysdig_wordpress_1 6bd8418eb03f mysql: 5.7 "docker-girişpoint.s ..." 3 saat əvvəl 3 saat 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1

2. WordPress konteynerində işləyən prosesləri aşağıdakılarla təhlil edə bilərsiniz:

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

3. Eynilə, MySQL konteynerində gedən prosesləri analiz edə bilərsiniz:

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

Qeyd edək ki, bu nümunədən çox fərqlənən Sysdig şəbəkə trafikini, disk istifadəsini və s. Nəzarət edə bilər.

Bu dərslikdə, qablarınız tərəfindən yaradılan fəaliyyət haqqında dəqiq bir məlumat əldə etmək üçün Sysdig istifadə əsaslarını aşmışsınız. Bu blog yazıdakı nümunələr sizə başlamağa kömək etdi və gələcək dərslərdə Csysdig və Sysdig Inspect-dən necə istifadə edəcəyinizi sizə göstərəcəyik.