Сисдиг: Бул эмне жана аны кантип колдонсо болот

Sysdig - контейнерлерди колдогон универсалдуу тутумдун көрүнөө куралы. Сысдигдин өзгөчө өзгөчөлүгү, ал машинанын өзөгүнө илинип, маалыматты бир контейнер боюнча бөлүштүрөт. Бул окуу куралынын көлөмү үчүн, биз Sysdig'дин ачык булактуу нускасына токтолобуз.

Кийинки бөлүмдөрдө сиз:

  • Sysdig орнотуңуз
  • Докер-компостун жардамы менен Wordpress орнотуусун жайыңыз
  • Окуяларды чогултуу жана кийинчерээк талдоо үчүн Sysdig колдонуңуз
  • Маалыматтарды реалдуу убакыт режиминде талдоо үчүн Sysdig колдонуңуз

Талаптар

  • Docker тутумуңузда орнотулган. Dockerди орнотуу жөнүндө кененирээк маалыматты орнотуу баракчасынан караңыз.
  • Docker Compose тутумуңузга орнотулган. Docker Compose программасын кантип орнотуу керектиги жөнүндө нускаманы орнотуу үчүн Доктер куруу баракчасын караңыз.
  • Ядро аталыштары хост тутумуна орнотулган.

Sysdig орнотуңуз

Sysdig'ди Docker контейнерине орнотуу үчүн төмөнкү кадамдарды жасаңыз:

  1. Терминалдык терезеде Sysdig Docker сүрөтүн тартыш үчүн төмөнкү буйрукту аткарыңыз:
докер sysdig / sysdig тартуу
Демейки тегди колдонуу: эң акыркы: sysdig / sysdig 2967486b0658: Толугу менен 78101b780c72: Толугу менен тартыңыз 7e78b657334d: Толугу менен тартыңыз 650327159ca8: 47ebf73ab754: Толугу менен тартыңыз 47ff73ab754: Толугу менен тартыңыз bf51ac76a6d9: Тартуу толугу менен3996: Dull6 Толугу менен 6de86c8ed6e9 тартыңыз: 8d1825f8be4b толугу менен тартыңыз: Дайджестти толугу менен тартыңыз: sha256: bbfe6953fd2b3221a8974eb13024dd33c7e78aebef8fee3d7a0d9ecdeed84ce0 Статусу: sysdig / sys үчүн жаңы сүрөт жүктөлдү.

2. Сисдигди контейнерге киргизип иштетиңиз:

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 шилтемелерин орнотуу * sysdig-probe жүктөө, эгер бар болсо * sysdig үчүн dkms орнотуу катасы! echo Сиздин ядро ​​үчүн 3.10.0-957.12.2.el7.x86_64 даректери /lib/modules/3.10.0-957.12.2.el7.x86_64/build же /lib/modules/3.10.0-957.12 дарегинен табылбайт .2.el7.x86_64 / булагы. * Dkms build иштебей калды, /var/lib/dkms/sysdig/0.26.4/build/make.log * Система sysdig-зонд жүктөөгө аракет кылынат, эгер бар болсо * 3.10 үчүн алдын ала тандалган sysdig-probe табууга аракет кылып жатат .0-957.12.2.el7.x86_64 ядро ​​конфигурациясын /host/boot/config-3.10.0-957.12.2.el7.x86_64 * сайтынан таптык модулун https://s3.amazonaws.com/download сайтынан жүктөп алууда .draios.com / туруктуу / sysdig-probe-binaries / sysdig-probe-0.26.4-x86_64-3.10.0-957.12.2.el7.x86_64-82e2ae1fb159132636f7b50a762f20ef.ko Жүктөлүп алынды, жүктөө модели @ 7b14a23f22eb түптөлдү: / #

Жогорудагы буйрукка көңүл буруу керек бир нече нерсе:

  • -I желеги STDIN ачык бойдон турат.
  • --Privileged параметри хосттагы бардык түзмөктөргө мүмкүнчүлүк берет. Ошондой эле, ал SELinux орнотуп, контейнердин ичинде жүрүп жаткан процесстерге хостко иштетилген процесс сыяктуу эле хостко жеткидей мүмкүнчүлүк берет.
  • -V желеги Сысдиг кире турган файлдардын тизмесин (хостдо) аныктайт.

Wordpress орнотуусун айлантуу

Бул бөлүмдө, docker-compose буйругун колдонуп, Wordpressти орнотосуз.

  1. Терминалдын жаңы терезесинде долбоорлоруңуздун каталогуна өтүп, төмөнкү буйруктарды териңиз:
mkdir wordpress-sysdig &&d wordpress-sysdig

2. Төмөнкү мазмунун камтыган docker-compose деп аталган файлды түзүңүз:

версия: '3.3' кызматтары: db: image: mysql: 5.7 көлөмү: - db_data: / var / lib / mysql өчүрүп күйгүзүү: ар дайым айлана-чөйрө: MYSQL_ROOT_PASSWORD: кандайдыр бир деңгээлде MYSQL_DATABASE: wordpress MYSQL_USER: сөз басмасы MYSQL_PonSWORD: сүрөт: Dbb: Db_data: / var / lib / mysql. wordpress.

3. Docker-compose up буйрутмасын өзүнчө режимде иштетиңиз:

докер-композитор -d
Демейки драйвер менен "wordpress-sysdig_default" тармагын түзүү Демейки драйвер менен "wordpress-sysdig_db_data" көлөмүн түзүү wordpress (wordpress: эң акыркы) ... акыркы: китепканадан / wordpress-тен 8ec398bc0356: 85cf4fc86478 толугу менен тартыңыз: толугу менен 970dadf4ccb 8c04561117a4: Хэйруллина толук d6b7434b63a2: жагымдуулугу толук 83d8859e9744: жагымдуулугу толук 9c3d824d0ad5: жагымдуулугу толук 9e316fd5b3b3: жагымдуулугу толук 578b40496c37: жагымдуулугу толук 814ae7711d3c: жагымдуулугу толук 4896fed78b6b: жагымдуулугу толук e74d71e9611d: жагымдуулугу толук 46017765526c: жагымдуулугу толук 280386098458: жагымдуулугу толук f32eb0d8c540: толук 5c47b9ea747a Pull: Тартуу толук ecda5b7aad12: жагымдуулугу толук 84256a6b6b44: жагымдуулугу толук 35d4f385efb7: жагымдуулугу толук bf697c2ae701: жагымдуулугу толук d054b015f084: жагымдуулугу толук Digest: sha256: 73e8d8adf491c7a358ff94c74c8ebe35cb5f8857e249eb8ce6062b8576a01465 Абалы: WordPress үчүн жүктөлүп башка сүрөт: акыркы түзүү WordPress-sysdig_db_1 ... WordPress-sysdig_word түзүү кылган press_1 ... бүттү

4. Сиз контейнерлериңиздин абалын текшере аласыз:

докер ps

Эгер бардыгы жакшы болуп жатса, анда сиз төмөнкү жыйынтыкка окшош нерсени көрүшүңүз керек:

CONTAINER ID IMAGE CREATED STATUS PORTS ысымдары f390eec29f52 wordpress: акыркы "docker-girişpoint.s ..." бир мүнөт мурун 0.0.0.0:8000->80/tcp wordpress-sysdig_wordpress_1 a844840626d8 mysql: 5.7 "док. s… "Болжол менен бир мүнөт мурун 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1 7b14a23f22eb sysdig / sysdig" /docker-entrypoint.… "13 мүнөт мурун Up 13 minutes sysdig

5. Азыр Wordpress иштеп жатат. Орнотуу чеберин баштоо үчүн браузериңизди http: // localhost: 8000 дарегине багыттаңыз:

6. Орнотуу чебери бүткөндөн кийин, үлгү постун түзөбүз:

Файлга маалымат чогултуу

Бул бөлүктө Сисдигди кандайча окуяларды чогултуу жана кийинчерээк талдоо үчүн колдонсоңуз болот.

  1. Бардык камтылган окуяларды файлга ыргытыш үчүн, Сисдиг контейнерине өтүп, төмөнкү буйрукту киргизиңиз:
sysdig -w мониторинг-wordpress.scap

2. Терминалдын жаңы терезесинде ab-ди колдонуп, 10000 суроо-талапты бир учурда иштетип көрүңүз:

ab -n 1000 -c 100 http: // localhost: 8000 /? p = 7
Бул ApacheBench, 2.3 нускасы <$ Revision: 1430300 $> Автордук укук 1996 Адам Твисс, Зевс Технология Лтд, http://www.zeustech.net/, Apache программалык фондуна лицензияланган, http://www.apache.org/ Benchmarking localhost (чыдамдуу болуңуз) Аткарылган 100 суроо-талап Аткарылган 200 суроо-талап Аткарылган 300 суроо-талап Аткарылган 400 суроо-талап Аткарылган 500 суроо-талап Аткарылган 600 суроо-талап Аткарылган 700 суроо-талап Аткарылган 800 суроо-талап Аткарылган 900-сурамдар Аткарылган 1000-сурамдар Аткарылган 1000 сурамдар

Жогорудагы чыгарылыш кыскартуу үчүн кесилгендигин эске алыңыз.

3. Sysdig контейнерине кайра барыңыз жана "CTRL + C" киргизип, маалымат топтоону токтотуңуз.

Маалыматтарды анализдөө

Эми, мониторинг-wordpress.scap файлынын көлөмүнө көз чаптырсаңыз, Сисдиг 80Мден кем эмес маалыматтарды алгандыгын байкайсыз:

дар -lh мониторинг-wordpress.scap
-rwxr-- r--. 1 тамыр тамыры 80M Jan 7 16:28 monitoring-wordpress.scap

Ушул маалымат тоосу аркылуу өз жолуңузду табуу үчүн, кесилген бир нерсени колдоносуз.

Чисель негизинен Луа сценарийи болуп, окуя агымын анализдейт жана пайдалуу иш-аракеттерди жасайт.

Тизменин тизмесин көрсөтүү үчүн сиз төмөнкү буйрукту иштете аласыз:

sysdig -cl
Категория: Колдонмо --------------------- HTTP сурамдары журналы HTTP сурамжылоолору Top HTTP сурамдары memcachelog камтылган сурамдар журналы Категория: CPU Колдонуу ---------- --------- спектрограмма ОС убакыттын узактыгын визуализациялоо. subsecoffset Иштөө убактысын субсидиялоо офсеттик убакытты визуалдаштыруу. topcontainers_cpu CPU колдонуу боюнча жогорку контейнерлер topprocs_cpu CPU колдонуу боюнча жогорку процесстер Категория: Ката каталар ---------------- topcontainers_error Каталар саны боюнча жогорку контейнерлер каталар

Жогорудагы чыгарылыш кыскартуу үчүн кесилгендигин эске алыңыз.

Идиш жөнүндө кеңири маалымат алуу үчүн, sysdig буйругун, андан кийин -i желекчесин жана аттын атын төмөнкү мисалдагыдай аткарыңыз:

sysdig -iaxtaптоп
Категория: Колдонмо --------------------- HTTP Top HTTP сурамдары: эң мыкты HTTP сурамдарын көрсөтүү: ncalls, time же bytes Args: [string] by - HTTP транзакцияларын көрсөтүү ncalls, убакыт же tes боюнча, демейки ncalls

Биздин үлгүбүздү улантып, HTTP сурамдарын көрсөтүү үчүн, ушул ыкманы колдонсоңуз болот.

sysdig -r мониторинг-wordpress.scap -c hippptop
ncalls методунун url ----------------------------------------------- --------------------------------- 2001 Жергиликтүү хостингди алыңыз: 8000 /? P = 7 14 ОПЦИЯЛАР * 2 Жергиликтүү Хостту алыңыз: 8000 / favicon.ico 1 GET /wp-content/themes/twentytwenty/assets/fonts/inter/Inter-upright-var.woff2 1 Жергиликтүү хостинг / v1.24 / контейнерлер / 6bd8418eb03f / json 1 GET localhost / v1.24 / контейнерлер / 06def7875617 / json 1 GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 GET /v1.24/images/db39680b63ac47a1d989daa8682996b8996999796999db8999db8999db8bb6db8db8bb6db8db9db8db8db8db8db8db8db8db8db8db8db8db8db8db8db8df6db8df6fd8f6f6f6fe6fe8f6fd8f6f6209b6be6e79707ae786df86607b9474b246acd31600 1

Ушул эле маалыматты контейнер желеги менен контейнерге ылайыктуу форматта көрө аласыз:

sysdig -r monitoring-wordpress.scap -cftaptop -pcontainer
ncalls контейнер ыкмасы url ---------------------------------------------- ---------------------------------- 1000 wordpress-sysdig_wo localhost алыңыз: 8000 /? P = 7 1000 хост GET көрүү .xrf: 8000 / б = 7 43 WordPress-sysdig_wo топтомдору * 1 sysdig GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 sysdig GET көрүү .xrf / v1.24 / контейнерлер / 06def7875617 / JSON 1 sysdig GET көрүү .xrf / v1.24 / контейнерлер / cd06093b141b / json 1 sysdig GET /v1.24/images/00e230fe24da9067f9b6e65cfbe9935a5affac1ae8e44edb6a5b0ccc26374d 1 sysdig GET /v1.24/images/db39680b3a8a6bbbbbbbbba8bb6bbbbbbbb6a6bb6bbbbbb6bbbb6dbb6dbbb6dbbbbbbb6dbbb (63bb6fbbbbbbb6bb6bbbbbbb6bb6bbbb6bbb6bb6bbb6bbb6ebb6bbbb6dbb6dbbb6dbb6dbb6e6bbbb6a5fac1ae8e44edb6a5b0ccc26374d 1

Deeper

Сисдиг контейнерлериңиздин ички иштөөсү жөнүндө кеңири маалымат алууга мүмкүнчүлүк берген мазмунга бай маалыматты алат. Сиз бир нече контейнер иштетип жатасыз дейли жана кайсы процессор эң көп сарпталаарын билгиңиз келет.

  1. Окуялар камтылган мезгилде жигердүү болгон контейнерлерди санаңыз:
sysdig -r мониторинг-wordpress.scap -c lscontainers

2. Сиз эң көп CPU керектеген контейнерди аныктай аласыз:

sysdig -r мониторинг-wordpress.scap -c topcontainers_cpu
CPU% контейнер.name --------------------------------------------- ----------------------------------- 5.37% wordpress-sysdig_wordpress_1 1.35% wordpress-sysdig_db_1 0.84% ​​хост 0.51% sysdig

3. Сиз ого бетер тереңирээк казып, topprocs_cpu кескичи менен эң CPU интенсивдүү процессти аныктай аласыз:

sysdig -r monitoring-wordpress.scap -c topprocs_cpu контейнер.name wordpress_1 камтыйт
CPU% Process 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

Эгерде сиз дагы кененирээк маалыматты көргүңүз келсе, ps chisel көбүрөөк вербоздук альтернатива менен камсыз кылат:

sysdig -r мониторинг-wordpress.scap -c ps контейнер.name = wordpress-sysdig_wordpress_1
TID PID USER VIRT RES FDLIMIT CMD 5896 5896 тамыр 232.82M 22.32M 429496729 apache2 8383 8383 www. 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-94999999679 22.89M 429496729 apache2 9372 9372 www-data 235.44M 22.89M 429496729 apache2 9413 9413 www-data 233.44M 20.77M 429496729 apache2

Пайдалуу кеңештер

Жогорудагы мисалдагыдай эле (sysdig -w monitoring-wordpress.scap) окуяларды жазуу үчүн Sysdig'ди иштетсеңиз, окуя файлы бардык бош мейкиндикти колдонмокчу. Буга жол бербөөгө жардам берген бир нече ыкма бар:

  • Sysdig -n желегин өткөрүп кармоо керек болгон окуялардын санын белгилеңиз. Сисдиг көрсөтүлгөн иш-чаралардын санын жазып алгандан кийин, ал автоматтык түрдө чыгат:
sysdig -n 5000 -w мониторинг-wordpress.scap
  • Сисдигди конфигурациялоо үчүн -C желегин колдонуп, басып өткөн жериңизди кичинекей файлдарга бөлүп коюңуз. Төмөнкү мисал окуяларды файлдарга үзгүлтүксүз сактайт <10MB:
sysdig -C 10 -w мониторинг-wordpress.scap

Бул 10 МБ чоң эмес файлдардын тутумун түзөт:

ls -lh мониторинг-wordpress *
-rwxr-- r--. 1 тамыр тамыры 9.6M Jan 7 17:13 monitoring-wordpress.scap0 -rw-r - r--. 1 тамыр тамыры 9.6M Jan 7 17:14 monitoring-wordpress.scap1 -rw-r - r--. 1 тамыр тамыры 9.6M Jan 7 17:14 monitoring-wordpress.scap2 -rw-r - r--. 1 тамыр тамыры 9.6M Jan 7 17:14 monitoring-wordpress.scap3 -rw-r - r--. 1 тамыр тамыры 9.6M Jan 7 17:14 monitoring-wordpress.scap4 -rw-r - r--. 1 тамыр тамыры 9.6M Jan 7 17:14 monitoring-wordpress.scap5 -rw-r - r--. 1 тамыр тамыры 9.6M Jan 7 17:14 monitoring-wordpress.scap6 -rw-r - r--. 1 тамыр тамыры 9.6M Jan 7 17:14 monitoring-wordpress.scap7 -rw-r - r--. 1 тамыр тамыры 6.4M Jan 7 17:14 monitoring-wordpress.scap8
  • Sysdig -W желеги менен сакталуучу файлдардын максималдуу санын белгилеңиз. Мисалы, сиз -C жана -W желектерин төмөнкүдөй бириктире аласыз:
sysdig -C 10 -W 4 -w мониторинг-wordpress.scap

Жогорудагы буйрук акыркы төрт файлды гана сактайт:

ls -lh мониторинг-wordpress *
-rwxr-- r--. 1 тамыр тамыры 7.2M Jan 7 17:21 monitoring-wordpress.scap0 -rw-r - r--. 1 тамыр тамыры 9.6M Jan 7 17:21 monitoring-wordpress.scap1 -rw-r - r--. 1 тамыр тамыры 9.6M Jan 7 17:21 monitoring-wordpress.scap2 -rw-r - r--. 1 тамыр тамыры 9.6M Jan 7 17:21 monitoring-wordpress.scap3 тамыры @ cd06093b141b: / # sysdig -C 10 -W 4 -w мониторинг-wordpress.scap

Реалдуу убакыт режиминде мониторинг жүргүзүү

Sysdig менен, сиз да реалдуу убакытта маалыматтарды талдай аласыз. Бир караганда, бул өтө оор иш болуп сезилиши мүмкүн, анткени, демейкидей, бардык окуялар консолго үзгүлтүксүз чыгарылып турат. Бактыга жараша, жардам берүү үчүн кескичтер бар.

Мисал алалы.

Процесстериңизди бир контейнердин негизинде талдаңыз

  1. Сиздин контейнерлериңиздин тизмесин түзүү үчүн төмөнкү буйрукту аткарыңыз:
докер ps
9 мүнөт мурун 9 мүнөт мурун 06def7875617 wordpress: акыркы "докер-enterpoint.s ..." 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 -> 80 / tcp wordpress-sysdig_wordpress_1 6bd8418eb03f mysql: 5.7 "docker-enterpoint.s ..." 3 саат мурун 3 саат 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1

2. Сиз WordPress контейнеринде иштеп жаткан процесстерди талдоого аласыз:

sysdig -pc -c topprocs_cpu контейнер.name = wordpress-sysdig_wordpress_1

3. Ошол сыяктуу эле, сиз MySQL контейнеринде жүрүп жаткан процесстерди талдай аласыз:

sysdig -pc -c topprocs_cpu контейнер.name = wordpress-sysdig_db_1

Бул мисалдан анчалык деле айырмаланбаса дагы, Sysdig тармак трафигин, дисктин колдонулушун ж.б. көзөмөлдөй алат.

Бул окуу куралында, сиз контейнерлериңиздин ишмердүүлүгү жөнүндө так түшүнүк алуу үчүн Сысдигди колдонуунун негиздерин окуп чыктыңыз. Бул блог постундагы мисалдар сизди баштоого жардам берди жана кийинки окуу куралдарында Csysdig жана Sysdig Inspect колдонууну көрсөтөбүз.