Сисдиг: бұл не және оны қалай қолдануға болады

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

Келесі бөлімдерде сіз:

  • Sysdig орнатыңыз
  • Докер-композитор көмегімен Wordpress қондырғысын айналдырыңыз
  • Оқиғаларды жинау және кейінірек талдау үшін Sysdig пайдаланыңыз
  • Нақты уақыттағы деректерді талдау үшін Sysdig пайдаланыңыз

Пререквизиттер

  • Docker жүйеңізде орнатылған. Docker орнату туралы толық ақпарат алу үшін Docker орнату бетін қараңыз.
  • Docker Compose бағдарламасы сіздің жүйеңізде орнатылған. Docker Compose бағдарламасын орнату әдісі туралы нұсқауларды Docker Compose орнату бетінен қараңыз.
  • Ядро тақырыптары хост жүйесіне орнатылған.

Sysdig орнатыңыз

Sysdig-ны Docker контейнеріне орнату үшін келесі әрекеттерді орындаңыз:

  1. Терминал терезесінде Sysdig Docker кескінін тарту үшін келесі пәрменді орындаңыз:
докер тарту sysdig / sysdig
Әдепкі тегті пайдалану: соңғы соңғы: sysdig / sysdig 2967486b0658 бастап тартса: Pull толық 78101b780c72: Pull толық 7e78b657334d: Pull толық 650327159ca8: Pull толық 47ebf73ab754: Pull толық bf51ac76a6d9: Pull толық 0cd11104dbf6: Pull толық e6dcf17d00d8: Pull толық 230d60083576: Pull толық fd5ea9faf384: Толық 6de86c8ed6e9 тартыңыз: 8d1825f8be4b толығымен тартыңыз: Дайджестті толығымен тартыңыз: sha256: bbfe6953fd2b3221a8974eb13024dd33c7e78aebef8fee3d7a0d9ecdeed84ce0 Күй: sysdig / sys үшін жаңа сурет жүктелді.

2. Сисдигті контейнерге кіргізу арқылы іске қосыңыз:

докер -i -t - атауы sysdig --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v / dev: / host / dev -v / proc: / хост / proc: ro -v / жүктеу: / хост / жүктеу: ro -v / lib / модульдер: / хост / lib / модульдер: ro -v / usr: / хост / usr: ro sysdig / sysdig
* Хосттан / usr / src сілтемелерін орнату * Егер бар болса, sysdig-зондты түсіру * ssdig үшін dkms орнатылымы қатесі! жаңғырық Сіздің ядроңыздың 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-зондты табуға тырысуда .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-зонд-екілік / sysdig-probe-0.26.4-x86_64-3.10.0-957.12.2.el7.x86_64-82e2ae1fb159132636f7b50a762f20ef.ko Жүктеу сәтті аяқталды, @ 7b14a23f22eb модулінің жүктемесі сәтті өтті,

Жоғарыда аталған пәрменге назар аударатын бірнеше нәрсе:

  • -I жалауы STDIN-ді ашық қалдырады.
  • - таратылатын параметр хосттағы барлық құрылғыларға қол жетімділікті қамтамасыз етеді. Сондай-ақ, ол SELinux-ті контейнер ішінде жүретін процестерге хостқа кіруге мүмкіндік беретін етіп орнатады.
  • -V жалауы Sysdig кіре алатын файлдардың тізімін (хостта) көрсетеді.

Wordpress қондырғысын айналдыру

Бұл бөлімде сіз docker-compose командасын қолданып Wordpress орнатасыз.

  1. Жаңа терминал терезесінде жобалар каталогына өтіп, келесі пәрмендерді теріңіз:
mkdir wordpress-sysdig && CD wordpress-sysdig

2. Келесі мазмұндағы Docker-compose деп аталатын файл жасаңыз:

нұсқа: '3.3' қызметтері: db: сурет: mysql: 5.7 томдар: - db_data: / var / lib / mysql қайта іске қосу: әрдайым қоршаған орта: MYSQL_ROOT_PASSWORD: біршама MYSQL_DATABASE: сөз тіркесі MYSQL_USER: wordpress MYSQL_PonSWb: сурет: wordpress: соңғы порттар: - «8000: 80» қайта іске қосыңыз: әрқашан қоршаған орта: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: WORDPRESS_DB_PASSWORD: сөзжұмбақ WORDPRESS_DB_NAME: сөзжазбаның көлемі: db_data: {}

3. Docker-compos командасын бөлек режимде іске қосыңыз:

Docker-compose up -d
Әдепкі драйвермен «wordpress-sysdig_default» желісін құру «wordpress-sysdig_db_data» әдепкі драйвермен көлем жасау Wordpresspress тарту (wordpress: ең соңғы) ... соңғы: кітапханадан / wordpress-тен тарту 8ec398bc0356: 85cf4fc86478 толық тарту: 970dadf4ccb 8c04561117a4: Pull толық d6b7434b63a2: Pull толық 83d8859e9744: Pull толық 9c3d824d0ad5: Pull толық 9e316fd5b3b3: Pull толық 578b40496c37: Pull толық 814ae7711d3c: Pull толық 4896fed78b6b: Pull толық e74d71e9611d: Pull толық 46017765526c: Pull толық 280386098458: Pull толық f32eb0d8c540: Pull толық 5c47b9ea747a: толық ecda5b7aad12 тартыңыз: Pull толық 84256a6b6b44: Pull толық 35d4f385efb7: Pull толық bf697c2ae701: Pull толық d054b015f084: Pull толық дайджесті: sha256: 73e8d8adf491c7a358ff94c74c8ebe35cb5f8857e249eb8ce6062b8576a01465 Статус: WordPress үшін Жүктелген жаңа сурет: соңғы WordPress-sysdig_db_1 жасау ... WordPress-sysdig_word жасау атқарылған press_1 ... жасалды

4. Сіз контейнерлердің күйін мыналар арқылы тексере аласыз:

докер пс

Егер бәрі жақсы болса, келесі нәтижеге ұқсас нәрсені көру керек:

CONTAINER ID IMAGE КОМПАНИЯСЫ ЖАСАЛҒАН СТАТУС ПОРТТАРЫНЫҢ аттары f390eec29f52 wordpress: соңғы «docker-girişpoint.s ...» шамамен бір минут бұрын 0.0.0.0:8000->80/tcp wordpress-sysdig_wordpress_1 a844840626d8 mysql: 5.7 «док. s… «Бір минуттай уақытқа дейін Бір минутқа шамамен 3306 / тк., 33060 / тк wordpress-sysdig_db_1 7b14a23f22eb sysdig / sysdig» /docker-entrypoint.… «13 минут бұрын 13 минутқа дейін

5. Қазір Wordpress жұмыс істейді. Орнату шеберін іске қосу үшін шолғышты http: // localhost: 8000 мекен-жайына бағыттаңыз:

6. Орнату шебері аяқталғаннан кейін алға қарай үлгіні құрайық:

Файлға деректер жинау

Бұл бөлімде біз Sysdig-ді оқиғаларды жинау және кейінірек талдау үшін қалай пайдалануға болатындығын көрсетеміз.

  1. Барлық түсірілген оқиғаларды файлға тастау үшін, Sysdig контейнеріне өтіп, келесі пәрменді енгізіңіз:
sysdig -w мониторинг-wordpress.scap

2. Терминалдың жаңа терезесінде 100 сұраныс бір уақытта орындалатын 10000 сұраныс жасау үшін ab қолданыңыз:

ab -n 1000 -c 100 http: // localhost: 8000 /? p = 7
Бұл ApacheBench, 2.3 нұсқасы <$ Revision: 1430300 $> Авторлық құқық 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Apache Software Foundation лицензияланған, http://www.apache.org/ Benchmarking localhost (шыдамды болыңыз) 100 сұрау орындалды 200 сұраныс аяқталды 300 сұраныс аяқталды 400 сұраныс Аяқталды 500 сұраныс Аяқталды 500 сұраныс Аяқталды 600 сұраныс Аяқталды 700 сұраныс Аяқталды 800 сұраныс аяқталды 900 сұраныс аяқталды 1000 сұраныс аяқталды 1000 сұраныс

Жоғарыда келтірілген нәтиже қысқарту үшін кесілгенін ескеріңіз.

3. Sysdig контейнеріне қайта оралыңыз және «CTRL + C» енгізіп, деректерді жинауды тоқтатыңыз.

Деректерді талдау

Енді, егер сіз мониторинг-wordpress.scap файлының көлемін қарасаңыз, Sysdig кемінде 80M деректер түсіргенін байқайсыз:

ls -lh мониторинг-wordpress.scap
-rw-r - r--. 1 түбір түбірі 80M 7 қаңтарда 16:28 monitoring-wordpress.scap

Осы деректер тауынан өз жолыңызды табу үшін сіз кесек деп аталатын нәрсені қолданасыз.

Шисель - бұл негізінен оқиға ағынын талдайтын және пайдалы әрекеттерді орындайтын Луа сценарийі.

Сіз қыстырғыштардың тізімін көрсету үшін келесі пәрменді іске қоса аласыз:

sysdig -cl
Санат: Өтініш --------------------- HTTP сұраулар журналы. --------- спектрограмма ОЖ-ді нақты уақыт режимінде визуализациялау. subecoffset Қосалқы офсеттік орындау уақытын визуализациялау. topcontainers_cpu CPU қолдану бойынша жоғарғы контейнерлер topprocs_cpu CPU қолдану бойынша жоғарғы процестер Санат: Қателер ---------------- topcontainers_error Қате саны бойынша жоғарғы контейнерлер topfiles_errors Қате саны бойынша топпрокс қателер туралы

Жоғарыда келтірілген нәтиже қысқарту үшін кесілгенін ескеріңіз.

Кескіш туралы егжей-тегжейлі ақпаратты алу үшін, келесі мысалдағыдай, -i жалаушасы мен кесектің аты жазылған sysdig командасын орындаңыз:

sysdig -iaxtaптоп
Санат: Бағдарлама --------------------- HTTP сұраныстарының ең жоғарғы сұранысы HTTP сұраныстарын көрсету: ncalls, time немесе byt Args: [string] by - HTTP транзакцияларын көрсету : ncalls, time немесе tes, әдепкіде ncalls

Біздің мысалды жалғастыра отырып, ең жақсы HTTP сұраныстарын көрсету үшін сығылған кеңістікті кескішті пайдалану әдісі мынада:

sysdig -r monitoring-wordpress.scap -c Веб-сайт
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/db39680b63ac47a1d989da7b742f7b382af34d85a68214f8977bad59c05901 1 GET жергілікті: 8000 /

Дәл осындай ақпаратты контейнер жалаушасымен контейнерге ыңғайлы форматта көре аласыз:

sysdig -r Monitoring-wordpress.scap -c httptop -кконтейнер
ncalls контейнер әдісі url ---------------------------------------------- ---------------------------------- 1000 wordpress-sysdig_wo жергілікті мекен-жайы: 8000 /? P = 7 1000 хост GET жергілікті:? 8000 / P = 7 43 WordPress-sysdig_wo OPTIONS * 1 sysdig GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9474b246acd31600 1 sysdig GET жергілікті / v1.24 / контейнерлер / 06def7875617 / JSON 1 sysdig GET жергілікті / v1.24 / контейнерлер / cd06093b141b / JSON 1 sysdig GET /v1.24/images/00e230fe24da9067f9b6e65cfbe9935a5affac1ae8e44edb6a5b0ccc26374d 1 sysdig GET /v1.24/images/db39680b63ac47a1d989da7b742f7b382af34d85a68214f8977bad59c05901

Терең қазу

Sysdig контейнерлердің ішкі құрылымы туралы егжей-тегжейлі ақпарат алуға мүмкіндік беретін мазмұнға бай ақпарат жинайды. Сіз бірнеше контейнерді іске қосып жатырсыз және процессордың қай процессор көп тұтынатынын білгіңіз келеді делік.

  1. Оқиғалар түсірілген кезең ішінде белсенді болған контейнерлерді тізімдеңіз:
sysdig -r monitoring-wordpress.scap -c лконтейнерлер

2. Сіз ең көп CPU тұтынатын контейнерді мынамен анықтай аласыз:

sysdig -r мониторинг-wordpress.scap -c topcontainers_cpu
CPU% контейнер.аты --------------------------------------------- ----------------------------------- 5.37% wordpress-sysdig_wordpress_1 1,35% wordpress-sysdig_db_1 0,84% хост 0,51% sysdig

3. Сіз одан да терең қазып, topprocs_cpu кескішімен процессордың ең қарқынды процесін анықтай аласыз:

sysdig -r Monitoring-wordpress.scap -c topprocs_cpu контейнер.намасында wordpress_1 бар
Процессор% процессоры ---------------------------------------------- ---------------------------------- 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 кесектері көп балама нұсқаны ұсынады:

sysdig -r мониторинг-wordpress.scap -c ps контейнер.name = wordpress-sysdig_wordpress_1
TID PID ПАЙДАЛАНУШЫНЫҢ VIRT RES FDLIMIT CMD 5896 5896 тамыр 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.44MM 497.49M49 299.49.49.49.49.49.49.49.49.49.49.49.49.49.49 299 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-9499996799 - 3994967999999999999 969 39679 396799 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 көрсетілген оқиғалардың санын түсіргеннен кейін ол автоматты түрде шығады:
sysdig -n 5000 -w мониторинг-wordpress.scap
  • Sysdig-ді белгіленген өлшемдегі кішігірім файлдарға түсіретін етіп конфигурациялау үшін -C жалаушасын қолданыңыз. Келесі мысал оқиғаларды файлдарға үнемі сақтайды: <10MB:
sysdig -C 10 -w бақылау-wordpress.scap

Бұл 10 мегабайттан аспайтын файлдардың шоғырын жасайды:

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

Жоғарыдағы пәрмен соңғы төрт файлды ғана сақтайды:

ls -lh мониторинг-wordpress *
-rw-r - r--. 1 түбірлік түбір 7.2M 7 қаңтар 17:21 monitoring-wordpress.scap0 -rw-r - r--. 1 түбір түбірі 9.6M 7 қаңтар 7:21 monitor-wordpress.scap1 -rw-r - r--. 1 түбір түбірі 9.6M 7 қаңтар 7:21 monitor-wordpress.scap2 -rw-r - r--. 1 түбір түбірі 9.6M 7 қаңтар 17:21 monitoring-wordpress.scap3 түбірі @ cd06093b141b: / # sysdig -C 10 -W 4 -w monitor-wordpress.scap

Нақты уақыттағы бақылау

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

Мысал келтірейік.

Әр контейнер негізінде процестеріңізді талдаңыз

  1. Сіздің контейнерлеріңізді тізімдеу үшін келесі пәрменді іске қосыңыз:
докер пс
9 минут бұрын 9 минут бұрын 06def7875617 сөзжұмбақ: соңғы «докер-енгізу нүктесі ...» 3 сағат бұрын: 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 -> 80 / tcp wordpress-sysdig_wordpress_1 6bd8418eb03f mysql: 5.7 «docker-enterpoint.s ...» 3 сағат бұрын 3 сағаттан 3306 / tcp, 33060 / тк 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 инспекциясын қалай пайдалану керектігін көрсетеміз.