Sysdig: bu nima va undan qanday foydalanish

Sysdig - konteynerlarni qo'llab-quvvatlaydigan universal tizim ko'rinishi vositasi. Sysdig-ning o'ziga xos xususiyati shundaki, u o'z-o'zidan mashinaning yadrosiga bog'lanadi va ma'lumotni har bir konteyner asosida ajratadi. Ushbu qo'llanmaning ko'lami uchun biz Sysdig-ning ochiq manbali versiyasiga e'tibor qaratamiz.

Keyingi bo'limda siz:

  • Sysdig-ni o'rnating
  • Docker-compose-dan foydalanib, Wordpress-ning o'rnatilishini tezlatib oling
  • Voqealarni to'plash va keyinchalik tahlil qilish uchun Sysdig-dan foydalaning
  • Ma'lumotlarni real vaqt rejimida tahlil qilish uchun Sysdig-dan foydalaning

Talablar

  • Docker sizning tizimingizda o'rnatilgan. Docker-ni o'rnatish haqida batafsil ma'lumot uchun Docker-ni o'rnatish sahifasiga qarang.
  • Docker Compose dasturi tizimingizga o'rnatildi. Docker Compose dasturini qanday o'rnatish haqida ko'rsatmalarni o'rnatish uchun Docker Compose sahifasiga qarang.
  • Yadro sarlavhalari xost tizimiga o'rnatildi.

Sysdig-ni o'rnating

Sysdig-ni Docker konteyneriga o'rnatish uchun quyidagi amallarni bajaring:

  1. Sysdig Docker rasmini olish uchun terminal oynasida quyidagi buyruqni bajaring:
docker pull sysdig / sysdig
Birlamchi tegdan foydalanish: eng yangi: sysdig / sysdig 2967486b0658: To'ldirish 78101b780c72: To'liq tortib olish 7e78b657334d: To'liq 650327159ca8: 47ebf73ab754 to'liq siljitish: to'liq bf51ac76a6d9: to'liq tugmasi to'liq3996: to'la-to'kis6996 To'liq 6de86c8ed6e9: 8d1825f8be4b: To'liq torting Digest: sha256: bbfe6953fd2b3221a8974eb13024dd33c7e78aebef8fee3d7a0d9ecdeed84ce0 Vaziyat: sysdig / sys uchun yangi rasm yuklandi.

2. Sysdig-ni konteynerga kiritib ishga tushiring:

docker run -i -t - nomi 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 / modullar: / host / lib / modullar: ro -v / usr: / host / usr: ro sysdig / sysdig
* Xostdan / usr / src havolalarini o'rnatish * Agar mavjud bo'lsa, sysdig-prob-ni tushirish * Ssdig uchun dkms-ni o'rnatish xatosi! echo Sizning yadro sarlavhangizni 3.10.0-957.12.2.el7.x86_64 /lib/modules/3.10.0-957.12.2.el7.x86_64/build yoki /lib/modules/3.10.0-957.12 manzilida topib bo'lmaydi .2.el7.x86_64 / manba. * Dkms build ishlamadi, topilmadi /var/lib/dkms/sysdig/0.26.4/build/make.log * Agar tizim mavjud bo'lsa, sysdig-probni yuklashga urinish * 3.10 uchun oldindan tayyorlangan sysdig-probe topishga urinish .0-957.12.2.el7.x86_64 yadro konfiguratsiyasi /host/boot/config-3.10.0-957.12.2.el7.x86_64 * da oldindan to'ldirilgan modulni https://s3.amazonaws.com/download-dan yuklab olishga urinilmoqda .draios.com / stabil / sysdig-prob-binaries / sysdig-probe-0.26.4-x86_64-3.10.0-957.12.2.el7.x86_64-82e2ae1fb159132636f7b50a762f20ef.ko yuklab olindi, yuklash moduli ildizi @ 7b14a23f22eb: / #

Yuqoridagi buyruq haqida bir nechta narsalarga e'tibor bering.

  • -I bayrog'i STDIN-ni ochiq qoldiradi.
  • - Xususiylashtirilgan parametr xostdagi barcha qurilmalarga kirishni ta'minlaydi. Bundan tashqari, u SELinux-ni idish ichida ishlaydigan jarayonlarni xostga ishlov berish jarayoniga bir xil kirish huquqini beradi.
  • -V bayrog'i Sysdig foydalana oladigan fayllar ro'yxatini (hostda) belgilaydi.

Wordpress o'rnatilishini tezlatish

Ushbu bo'limda siz docker-compose buyrug'i yordamida Wordpress-ni o'rnatasiz.

  1. Yangi terminal oynasida loyihalaringiz katalogiga o'ting va quyidagi buyruqlarni kiriting:
mkdir wordpress-sysdig &&d wordpress-sysdig

2. Quyidagi tarkibga ega bo'lgan dok-kompozit deb nomlangan fayl yarating:

versiya: '3.3' xizmatlari: db: rasm: mysql: 5.7 jild: - db_data: / var / lib / mysql qayta ishga tushirish: har doim atrof-muhit: MYSQL_ROOT_PASSWORD: bir oz qisqartirish MYSQL_DATABASE: so'z bosimi MYSQL_USER: so'z bosimi MYSQL_PASSWORD: tasvir: wordpress: so'nggi portlar: - "8000: 80" qayta yoqing: har doim atrof-muhit: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: WORDPRESS_DB_PASSWORD: so'z bosimi WORDPRESS_DB_NAME: so'z bosimi hajmi: db_data: {}

3. Docker-compos up buyrug'ini alohida rejimda:

docker-compose up -d
Standart drayver bilan "wordpress-sysdig_default" tarmog'ini yaratish Standart drayver bilan "wordpress-sysdig_db_data" hajmini yaratish wordpress (wordpress: eng so'nggi) ... so'nggi: kutubxonadan / wordpress-dan tortib olish 8ec398bc0356: 85cf4fc86478 to'liq tortish: to'liq 970dadf4bb 8c04561117a4: Pull to'liq d6b7434b63a2: Pull to'liq 83d8859e9744: Pull to'liq 9c3d824d0ad5: Pull to'liq 9e316fd5b3b3: Pull to'liq 578b40496c37: Pull to'liq 814ae7711d3c: Pull to'liq 4896fed78b6b: Pull to'liq e74d71e9611d: Pull to'liq 46017765526c: Pull to'liq 280386098458: Pull to'liq f32eb0d8c540: to'liq 5c47b9ea747a oling: to'liq ecda5b7aad12 oling: Pull to'liq 84256a6b6b44: Pull to'liq 35d4f385efb7: Pull to'liq bf697c2ae701: Pull to'liq d054b015f084: Pull to'liq Digest: SHA256: 73e8d8adf491c7a358ff94c74c8ebe35cb5f8857e249eb8ce6062b8576a01465 Status: Yuklandi yangi tasvirni wordpress uchun: eng so'nggi yaratish wordpress-sysdig_db_1 ... wordpress-sysdig_word yaratish amalga press_1 ... bajarildi

4. Siz idishlaringiz holatini quyidagilar bilan tekshirishingiz mumkin:

docker ps

Agar hammasi yaxshi bo'lsa, siz quyidagi chiqishga o'xshash narsani ko'rishingiz kerak:

CONTAINER ID IMAGE YARATILGAN STATUS PORTS NOMLARI f390eec29f52 wordpress: so'nggi "docker-girişpoint.s ..." Taxminan bir daqiqa oldin bir daqiqaga qadar 0.0.0.0:8000->80/tcp wordpress-sysdig_wordpress_1 a844840626d8 mysql: 5.7 "dock." s ... "Taxminan bir daqiqa oldin bir daqiqaga 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1 7b14a23f22eb sysdig / sysdig" /docker-entrypoint.… "13 daqiqa oldin yuqoriga 13 daqiqalik sysdig

5. Endi Wordpress ishlamoqda. O'rnatish ustasini ishga tushirish uchun brauzeringizni http: // localhost: 8000 ga yo'naltiring:

6. O'rnatish ustasi tugagandan so'ng, keling, namunaviy postni yaratamiz:

Faylga ma'lumot to'plash

Ushbu bo'limda biz Sysdig-dan qanday qilib tadbirlarni to'plash va keyinchalik tahlil qilish uchun foydalanishingiz mumkinligini ko'rsatamiz.

  1. Barcha olingan voqealarni faylga tashlash uchun, Sysdig konteyneriga o'ting va quyidagi buyruqni kiriting:
sysdig -w monitoring-wordpress.scap

2. Yangi terminal oynasida ab-dan foydalanib, 10000 ta so'rovlar bir vaqtning o'zida bajarilishi kerak:

ab -n 1000 -c 100 http: // localhost: 8000 /? p = 7
Bu ApacheBench, versiya 2.3 <$ Revision: 1430300 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Apache dasturiy fondi litsenziyasiga ega, http://www.apache.org/ Benchmarking localhost (sabrli) 100 ta so'rov bajarildi 200 ta so'rov bajarildi 300 ta so'rov bajarildi 400 ta so'rov bajarildi 500 ta so'rov bajarildi 600 ta so'rov bajarildi 600 ta so'rov bajarildi 700 ta so'rovlar bajarildi 800 ta talablar bajarildi 900 ta talablar bajarildi 1000 ta so'rovlar yakunlandi 1000 ta so'rovlar

Yuqoridagi chiqish qisqartirish uchun kesilganligini unutmang.

3. Sysdig konteyneriga sayohat qilish uchun orqaga qayting va "CTRL + C" raqamini kiritib ma'lumotlarni to'plashni to'xtating.

Ma'lumotni tahlil qilish

Endi, monitoring-wordpress.scap faylining hajmiga nazar tashlasangiz, Sysdig kamida 80M ma'lumotlarni ushlaganligini ko'rasiz:

ls -lh monitoring-wordpress.scap
-rw-r - r--. 1-ildiz ildizi 80M-yil 7-yanvar 16:28 monitoring-wordpress.scap

Ushbu ma'lumot tog'idan o'tishingiz uchun siz chisel deb nomlangan narsani ishlatasiz.

Chisel, asosan, voqea oqimini tahlil qiladigan va foydali harakatlarni bajaradigan Lua skriptidir.

Chiziqlar ro'yxatini ko'rsatish uchun siz quyidagi buyruqni bajarishingiz mumkin:

sysdig -cl
Kategoriya: Ilova --------------------- HTTP so'rovlari jurnali hthttop Top HTTP so'rovlari memcachelog so'ralgan so'rovlar jurnali Kategoriya: CPUdan foydalanish ---------- --------- spektrogram real vaqt rejimida operatsion tizimning kechikishini ingl. subecoffset Subecond ofset ijro vaqtini ingl. topcontainers_cpu CPU-dan foydalanish bo'yicha yuqori konteynerlar topprocs_cpu CPU-dan foydalanish bo'yicha eng yaxshi jarayonlar Kategoriya: Xatolar ---------------- topcontainers_error Xatolar soni bo'yicha yuqori konteynerlar xatolar

Yuqoridagi chiqish qisqartirish uchun kesilganligini unutmang.

Sisel haqida batafsil ma'lumot olish uchun, sysdig buyrug'ini va -i bayrog'ini va chiselning nomini quyidagi misolda ishlating:

sysdig -i wikiptop
Kategoriya: Ilova --------------------- HTTP top-top so'rovlari Eng yaxshi HTTP so'rovlarini quyidagilar bo'yicha ko'rsatish: ncalls, time yoki bayt Args: [string] by - HTTP operatsiyalarini eng yaxshi ko'rsat tomonidan: ncalls, vaqt yoki tes, asl ncalls

Bizning misolimizni davom ettirib, eng yaxshi HTTP so'rovlarini namoyish qilish uchun siz choptop chiselidan qanday foydalanishingiz mumkin:

sysdig -r monitoring-wordpress.scap -c hippop
ncalls usuli url ----------------------------------------------- --------------------------------- 2001 Lokal xostni oling: 8000 /? P = 7 14 OPTIONS * 2 Lokal xostni oling: 8000 / favicon.ico 1 GET /wp-content/themes/twentytwenty/assets/fonts/inter/Inter-upright-var.woff2 1 GET localhost / v1.24 / konteynerlar / 6bd8418eb03f / json 1 GET localhost / v1.24 / konteynerlar / 06def7875617 / json 1 GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 GET /v1.24/images/db39680b63ac47a1d989daa996992996996992996996996996996996996996996996996996996b6996b6bb6b6bb6bb6bb6bdb6bdb6bd6b6bd6b6bdb6bdb6bdb6bd6fdb6d6df6b6fdb6fdb6fdb6fdb8fdb8fdb8fdb8fdb8fdb8fdb8fdb8fdb8bdb6b6d796b6b79bb6b79bb6e79db6b798bb6b798bb6e796b6b6e7970bb

Xuddi shu ma'lumotlarni konteynerga mos formatda -pcontainer bayrog'i bilan ko'rishingiz mumkin:

sysdig -r monitoring-wordpress.scap -c hthttop -pontonter
ncalls konteyner usuli url ---------------------------------------------- ---------------------------------- 1000 wordpress-sysdig_wo localhost: 8000 /? P = 7 1000 xostni olish localhost:? 8000 / p = 7 43 wordpress-sysdig_wo imkoniyatiga 1 sysdig GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 sysdig GET localhost / v1.24 / konteyner / 06def7875617 / JSON 1 sysdig GET localhost / v1.24 / konteyner * / cd06093b141b / JSON 1 sysdig GET /v1.24/images/00e230fe24da9067f9b6e65cfbe9935a5affac1ae8e44edb6a5b0ccc26374d 1 sysdig GET /v1.24/images/db39680b63ac47a1d989da7b742f7b382af34d85a68214f8977bad59c05901

Chuqur qazish

Sysdig sizning konteynerlaringizning ichki ishlashi haqida batafsil ma'lumot olishga imkon beradigan tarkibga boy ma'lumotlarni to'playdi. Aytaylik, siz bir nechta konteyner ishlaysiz va qaysi protsessor eng ko'p iste'mol qilinishini bilishni xohlaysiz.

  1. Siz voqealarni yozib olish paytida faol bo'lgan konteynerlarni sanab bering:
sysdig -r monitoring-wordpress.scap -c lscontainers

2. Siz eng ko'p protsessor iste'mol qilgan idishni quyidagilar bilan aniqlashingiz mumkin:

sysdig -r monitoring-wordpress.scap -c topcontainers_cpu
CPU% konteyner.name --------------------------------------------- ----------------------------------- 5.37% wordpress-sysdig_wordpress_1 1,35% wordpress-sysdig_db_1 0.84% ​​xost 0.51% sysdig

3. Siz yanada chuqurroq qazishingiz va topprocs_cpu chisel yordamida eng ko'p protsessor intensiv jarayonini aniqlashingiz mumkin:

sysdig -r monitoring-wordpress.scap -c topprocs_cpu konteyneri.name wordpress_1 ni o'z ichiga oladi
CPU% jarayon 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

Agar siz ko'proq tafsilotlarni ko'rishni istasangiz, ps chisel ko'proq kengaytirilgan alternativani taqdim etadi:

sysdig -r monitoring-wordpress.scap -c ps konteyner.name = wordpress-sysdig_wordpress_1
TID PID USER VIRT RES FDLIMIT CMD 5896 5896 ildiz 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 -24.4924.49M49 397.49M49 397.4924.4949.4924.4924.49494999246 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.67M-94999999999999999999999999999999929699929699929699999999699999999999999799999999999999999979999999888998889988899899899922222222222 22.89M 429496729 apache2 9372 9372 www-data 235.44M 22.89M 429496729 apache2 9413 9413 www-data 233.44M 20.77M 429496729 apache2

Foydali maslahatlar

Agar siz yuqoridagi misolda (sysdig -w monitoring-wordpress.scap) voqealarni yozib olish uchun Sysdig-ni ishlatsangiz, voqea fayli barcha mavjud bo'sh joyni sarf qilgunga qadar doimiy ravishda o'sib boradi. Buning oldini olishga yordam beradigan bir necha usul mavjud:

  • Sysdig -ni bayroq orqali bosib o'tishi kerak bo'lgan hodisalar sonini belgilang. Sysdig belgilangan tadbirlar sonini yozib olgach, u avtomatik ravishda chiqadi:
sysdig -n 5000 -w monitor-wordpress.scap
  • Sysdig-ni sozlash uchun -C bayroqidan foydalaning, shunda u ushlanganni ma'lum hajmdagi kichikroq fayllarga ajratadi. Quyidagi misol voqealarni fayllarga doimiy ravishda saqlaydi <10MB:
sysdig -C 10 -w monitor-wordpress.scap

Bu 10 MB dan katta bo'lmagan fayllar to'plamini yaratadi:

ls -lh monitoring-wordpress *
-rw-r - r--. 1-ildiz ildizi 9.6M 7-yanvar 17:13 monitoring-wordpress.scap0 -rw-r - r--. 1-ildiz ildizi 9.6M 7-yanvar 17:14 monitoring-wordpress.scap1 -rw-r - r--. 1-ildiz ildizi 9.6M 7-yanvar 17:14 monitoring-wordpress.scap2 -rw-r - r--. 1-ildiz ildizi 9.6M 7-yanvar 17:14 monitoring-wordpress.scap3 -rw-r - r--. 1-ildiz ildizi 9.6M Yan 7 17:14 monitoring-wordpress.scap4 -rw-r - r--. 1-ildiz ildizi 9.6M Yan 7 17:14 monitoring-wordpress.scap5 -rw-r - r--. 1-ildiz ildizi 9.6M Jan 7 17:14 monitoring-wordpress.scap6 -rw-r - r--. 1-ildiz ildizi 9.6M 7-yanvar 17:14 monitoring-wordpress.scap7 -rw-r - r--. 1-ildiz ildizi 6.4M 7-yanvar kuni 17:14 monitoring-wordpress.scap8
  • Sysdig -W bayrog'i bilan saqlanishi kerak bo'lgan fayllarning maksimal miqdorini belgilang. Masalan, siz -C va -W bayroqlarini quyidagicha birlashtira olasiz:
sysdig -C 10 -W 4 -w monitor-wordpress.scap

Yuqoridagi buyruq faqat oxirgi to'rtta yozib olish fayllarini saqlab qoladi:

ls -lh monitoring-wordpress *
-rw-r - r--. 1-ildiz ildizi 7.2M 7-yanvar 17:21 monitor-wordpress.scap0 -rw-r - r--. 1-ildiz ildizi 9.6M 7-yanvar 17:21 monitoring-wordpress.scap1 -rw-r - r--. 1-ildiz ildizi 9.6M 7-yanvar 17:21 monitor-wordpress.scap2 -rw-r - r--. 1-ildiz ildizi 9.6M 7-yanvar kuni 17:21 monitoring-wordpress.scap3 ildiz @ cd06093b141b: / # sysdig -C 10 -W 4 -w Monitoring-wordpress.scap

Real vaqt rejimida monitoring

Sysdig yordamida ma'lumotlarni real vaqtda tahlil qilishingiz mumkin. Bir qarashda, bu juda qiyin vazifa bo'lib tuyulishi mumkin, chunki odatdagidek barcha voqealar doimiy ravishda konsolga chiqariladi. Yaxshiyamki, chisels yordam berish uchun shu erda.

Bir misolni olaylik.

Jarayonlaringizni har bir konteyner asosida tahlil qiling

  1. Sizning konteynerlaringizni ro'yxatlash uchun quyidagi buyruqni bajaring:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NOMLARI 5b253e74e8e7 sysdig / sysdig "/docker-entrypoint.…" 9 daqiqa oldin 9 daqiqagacha sisdig 06def7875617 wordpress: so'nggi "docker-enterpoint.s ..." 3 soat oldin 3,08.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.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 soat oldin 3 soat 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1

2. WordPress konteynerida ishlaydigan jarayonlarni quyidagilar bilan tahlil qilishingiz mumkin.

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

Xuddi shunday, siz MySQL konteynerida ishlaydigan jarayonlarni tahlil qilishingiz mumkin:

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

Shuni esda tutingki, ushbu misoldan unchalik farq qilmaydi, Sysdig tarmoq trafigini, diskdan foydalanishni va boshqalarni kuzatishi mumkin.

Ushbu o'quv qo'llanmada siz Sysdig-dan foydalanishingiz asoslarini o'rganib chiqdingiz, bu sizning idishlaringiz tomonidan ishlab chiqarilgan harakatlar haqida aniq ma'lumotga ega bo'lishdir. Ushbu blog postidagi misollar sizni boshlashingizga yordam berdi va kelgusi darslarda biz Csysdig va Sysdig Inspect-dan qanday foydalanishni ko'rsatamiz.