Sysdig: यह क्या है और इसका उपयोग कैसे करें

Sysdig कंटेनरों के लिए समर्थन के साथ एक सार्वभौमिक प्रणाली दृश्यता उपकरण है। जो Sysdig को विशेष बनाता है, वह यह है कि यह मशीन के कर्नेल में खुद को हुक करता है और प्रति-कंटेनर आधार पर सूचना को अलग करता है। इस ट्यूटोरियल के दायरे के लिए, हम Sysdig के ओपन-सोर्स संस्करण पर ध्यान केंद्रित करेंगे।

अगले भाग में, आप करेंगे:

  • Sysdig स्थापित करें
  • Docker- रचना का उपयोग कर एक Wordpress स्थापना स्पिन
  • घटनाओं को इकट्ठा करने और बाद में उनका विश्लेषण करने के लिए Sysdig का उपयोग करें
  • वास्तविक समय में डेटा का विश्लेषण करने के लिए Sysdig का उपयोग करें

आवश्यक शर्तें

  • आपके सिस्टम पर डॉकर इंस्टॉल हो गया है। डॉकर को स्थापित करने के बारे में जानकारी के लिए, डॉकर पेज इंस्टॉल करें का संदर्भ लें।
  • आपके सिस्टम पर Docker Compose स्थापित है। डॉकर कम्पोज़ को कैसे स्थापित करें, इस बारे में निर्देशों के लिए इंस्टॉल्ड डॉकर कंपोज़ पेज को देखें।
  • होस्ट सिस्टम पर कर्नेल हेडर स्थापित हैं।

Sysdig स्थापित करें

डॉकर कंटेनर के अंदर Sysdig को स्थापित करने के लिए इन चरणों का पालन करें:

  1. टर्मिनल विंडो में, Sysdig Docker छवि को खींचने के लिए निम्नलिखित कमांड निष्पादित करें:
docker पुल sysdig / sysdig
डिफ़ॉल्ट टैग का उपयोग करना: नवीनतम नवीनतम: sysdig / sysdig से खींचना 2967486b0658: पूर्ण खींचो 78101b780c72: पूर्ण खींचो 7e78b657334d: पूर्ण खींचो 650327159ca8: खींच पूर्ण 47ebf73abb754: पूर्ण पुल्लिंग पूर्ण करें Pull complete 6de86c8ed6e9: Pull complete 8d1825f8be4b: Pull complete Digest: sha256: bbfe6953fd2b3221a8974eb13024dd33e7aebe88e7a0d9ecdeed84ce0 स्थिति: पूर्णता: डाउनलोड करें

2. एक कंटेनर में Sysdig दर्ज करें:

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: / होस्ट / बूट: ro -v / lib / मॉड्यूल: / होस्ट / lib / मॉड्यूल: ro -v / usr: / host / usr: ro sysdig / sysdig
* होस्ट से * usr / src लिंक स्थापित करना * sysdig-जांच को अनलोड करना, यदि मौजूद है * sysdig त्रुटि के लिए रनिंग dkms इंस्टॉल करें! e कर्नेल के लिए आपका कर्नेल हेडर 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 निर्मित विफल रहा, /var/lib/dkms/sysdig/0.26.4/build/make.log * नहीं ढूंढ सका। यदि कोई सिस्टम sysdig-load लोड करने की कोशिश कर रहा है, यदि मौजूद है तो 3.10 के लिए scompdig-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 से precompiled मॉड्यूल डाउनलोड करने का प्रयास करना .draios.com / स्थिर / sysdig-check-binaries / sysdig-check-0.26.4-x86_64-3.10.0-957.12.2.el7.x86_64-82e2ae1bb159132636f7b50a762f20ef.ko डाउनलोड लोडिंग मॉड्यूल रूट @ 71414 पर सफल रहा है।

उपरोक्त कमांड के बारे में ध्यान देने योग्य कुछ बातें:

  • -I ध्वज STDIN को खुला रखता है।
  • - Theprivileged पैरामीटर होस्ट पर सभी उपकरणों तक पहुँच प्रदान करता है। साथ ही यह SELinux को सेट करता है ताकि कंटेनर के अंदर चल रही प्रक्रियाओं को होस्ट पर चलने वाली प्रक्रिया के समान होस्ट तक पहुंच मिल सके।
  • -V ध्वज उन फ़ाइलों की सूची (होस्ट पर) निर्दिष्ट करता है जिन्हें Sysdig एक्सेस कर सकता है।

एक Wordpress स्थापना स्पिन

इस अनुभाग में, आप docker-compose कमांड का उपयोग करके Wordpress स्थापित करेंगे।

  1. एक नई टर्मिनल विंडो में, अपनी प्रोजेक्ट डायरेक्टरी में जाएं और निम्न कमांड टाइप करें:
mkdir wordpress-sysdig && cd wordpress-sysdig

2. निम्नलिखित सामग्री के साथ डॉकटर-कंपोज नामक एक फाइल बनाएं:

संस्करण: '3.3' सेवाएं: db: छवि: mysql: 5.7 खंड: - db_data: / var / lib / mysql पुनरारंभ: हमेशा पर्यावरण: MYSQL_ROOT_PASSWORD: someordpress MYSQL_DATABASE: वर्डप्रेस MYSQL_USER: वर्डप्रेस MYSQL_PASSWORD: वर्डप्रेस पर विचार करें। वर्डप्रेस: ​​नवीनतम पोर्ट: - "8000: 80" पुनरारंभ: हमेशा पर्यावरण: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: वर्डप्रेस WORDPRESS_DB_PASSWORD: वर्डप्रेस WORDPRESS_DB_NAME: वर्डप्रेस वॉल्यूम: db_data: {}

3. डॉक-कंपोज़ अप कमांड को अलग मोड में चलाएं:

docker-compose अप -d
डिफ़ॉल्ट ड्राइवर के साथ "wordpress-sysdig_default" नेटवर्क बनाना डिफ़ॉल्ट रूप से चालक के साथ वॉल्यूम बनाना "WordPress-sysdig_db_data" Wordpress (wordpress: latest) ... नवीनतम: लाइब्रेरी / वर्डप्रेस पर खींचना 8ec398bc0356: Pull complete 85cf4fc86478: Pulling 8c04561117a4: पुल पूरा d6b7434b63a2: पुल पूरा 83d8859e9744: पुल पूरा 9c3d824d0ad5: पुल पूरा 9e316fd5b3b3: पुल पूरा 578b40496c37: पुल पूरा 814ae7711d3c: पुल पूरा 4896fed78b6b: पुल पूरा e74d71e9611d: पुल पूरा 46017765526c: पुल पूरा 280,386,098,458: पुल पूरा f32eb0d8c540: खींचो पूरा 5c47b9ea747a: वर्डप्रेस के लिए डाउनलोड की गई नई छवि: पूरा ecda5b7aad12 खींचो: पुल पूरा 84256a6b6b44: पुल पूरा 35d4f385efb7: पुल पूरा bf697c2ae701: पुल पूरा d054b015f084: पुल पूरा डाइजेस्ट: SHA256: 73e8d8adf491c7a358ff94c74c8ebe35cb5f8857e249eb8ce6062b8576a01465 स्थिति नवीनतम बनाना वर्डप्रेस-sysdig_db_1 ... वर्डप्रेस-sysdig_word बनाना किया press_1 ... किया

4. आप अपने कंटेनरों की स्थिति को सत्यापित कर सकते हैं:

docker ps

यदि सब ठीक चल रहा है, तो आपको निम्न आउटपुट के समान कुछ देखना चाहिए:

कंटेनर आईडी इमेजेज क्रिएट किए गए स्टेटस पोट्स NAMES f390eec29f52 वर्डप्रेस: ​​नवीनतम "docker-entrypoint.s ..." एक मिनट पहले के बारे में एक मिनट के बारे में 0.0.0.0:8000/> +80/tcp वर्डप्रेस-sysdig_wordpress_1 a844840626d8 mysqb8/sq/ s… "लगभग एक मिनट पहले एक मिनट के बारे में 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1 7b14a23f22eb sysdig / sysdig" /docker -entrypoint.… "13 मिनट पहले 13 मिनट sysdigig

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 <$ संशोधन: 1430300 $> कॉपीराइट 1996 एडम ट्विस, ज़ीउस टेक्नोलॉजी लिमिटेड, http://www.zeustech.net/ अपाचे सॉफ्टवेयर फाउंडेशन के लिए लाइसेंस, http://www.apache.org/ बेंचमार्किंग लोकलहोस्ट (धैर्य रखें) 100 अनुरोध पूरे हुए 200 अनुरोध पूरे हुए 300 अनुरोध पूरे हुए 400 अनुरोध पूरे हुए 500 अनुरोध पूरे हुए 600 अनुरोध पूरे हुए 700 अनुरोधों को पूरा करते हुए 800 अनुरोधों को पूरा किया गया 1000 अनुरोधों को पूरा किया गया 1000 अनुरोधों को पूरा किया गया 1000 अनुरोधों को पूरा किया गया

ध्यान दें कि उपरोक्त आउटपुट संक्षिप्तता के लिए छोटा था।

3. Sysdig कंटेनर के दौरे पर वापस जाएं और "CTRL + C" दर्ज करके डेटा कैप्चर करना बंद करें।

डेटा का विश्लेषण

अब, यदि आप निगरानी-wordpress.scap फ़ाइल के आकार को देखते हैं, तो आप देखेंगे कि Sysdig ने 80M से कम डेटा पर कब्जा नहीं किया है:

ls -lh निगरानी-wordpress.scap
-rw-r - r--। 1 रूट रूट 80M जनवरी 7 16:28 निगरानी-वर्डप्रेस.स्कैप

डेटा के इस पर्वत के माध्यम से अपना रास्ता खोजने के लिए, आप एक छेनी नामक कुछ का उपयोग करेंगे।

एक छेनी मूल रूप से एक लुआ लिपि है जो घटना की धारा का विश्लेषण करती है और उपयोगी क्रियाएं करती है।

आप छेनी की सूची प्रदर्शित करने के लिए निम्नलिखित कमांड चला सकते हैं:

Sysdig -cl
श्रेणी: अनुप्रयोग --------------------- httplog HTTP अनुरोध लॉग लॉगपॉप टॉप HTTP अनुरोध मेमकाचॉग मेमेकैच्ड अनुरोध लॉग श्रेणी: सीपीयू सीपीयू ---------- --------- स्पेक्ट्रोग्राम वास्तविक समय में OS विलंबता की कल्पना करें। subsecoffset विज़ुअलाइज़ सबसकंड ऑफ़सेट निष्पादन समय। Topcontainers_cpu CPU उपयोग में शीर्ष कंटेनर topprocs_cpu CPU उपयोग द्वारा शीर्ष प्रक्रियाएं श्रेणी: त्रुटियां ---------------- topcontainers_error त्रुटियों की संख्या से शीर्ष कंटेनरों topfiles_errors शीर्ष संख्या में त्रुटि topprocs_errors संख्याओं द्वारा शीर्ष फ़ाइलें। त्रुटियों की

ध्यान दें कि उपरोक्त आउटपुट संक्षिप्तता के लिए छोटा था।

एक छेनी के बारे में विस्तृत जानकारी प्राप्त करने के लिए, sysdig कमांड चलाएं -i झंडा और छेनी का नाम, निम्न उदाहरण में:

sysdig -i नेप्टॉप
श्रेणी: आवेदन --------------------- टॉपटॉप HTTP अनुरोध: शीर्ष HTTP अनुरोधों को दिखाएँ: ncalls, time या बाइट्स Args: [string] इसके द्वारा - शीर्ष HTTP लेनदेन दिखाएं द्वारा: ncalls, समय या tes द्वारा, डिफ़ॉल्ट ncalls है

हमारे उदाहरण को जारी रखते हुए, यहां बताया गया है कि आप शीर्ष HTTP अनुरोधों को प्रदर्शित करने के लिए नॉट्सटॉप छेनी का उपयोग कैसे कर सकते हैं:

sysdig -r मॉनीटर-वर्डप्रेस.स्कैप -c नेकटॉप
ncalls विधि url ----------------------------------------------- --------------------------------- 2001 GET लोकलहोस्ट: 8000 /? P = 7 14 विकल्प * 2 GET लोकलहोस्ट: 8000 / favicon.ico 1 GET /wp-content/themes/twentytwenty/assets/fonts/inter/upter-upright-var.woff2 1 GET लोकलहोस्ट / v1.24 / कंटेनर / 6bd8418eb03f / json 1 GET लोकलहोस्ट / v1.24 कंटेनर्स / 06def7875617 / json 1 GET /v1.24/images/1b1624b63467ec61fab209b6be6e79707ae786df86607b9b6bb6bd31600 1 GET /v1.24/images/dbbb806806176b6806176b6806173

आप एक जानकारी को कंटेनर-अनुकूल प्रारूप में -pcontainer ध्वज के साथ देख सकते हैं:

sysdig -r मॉनिटरिंग-वर्डप्रेस.स्कैप -c नेप्टॉप -पॉन्कटेनर
ncalls कंटेनर विधि url ---------------------------------------------- ---------------------------------- 1000 वर्डप्रेस-sysdig_wo GET लोकलहोस्ट: 8000 /? P = 7 1000 होस्ट जी। लोकलहोस्ट: 8000 /? p = 7 43 वर्डप्रेस-sysdig_wo ऑप्शन्स * 1 sysdig GET /v1.24/images/1b1624b63467ec61ff2020b6be6b797977ee786df86607b9474b246acd31600&hl=hi 1 sysdig GET / svdig_wo विकल्प। cd06093b141b / json 1 sysdig प्राप्त /v1.24/images/00e230fe24da9067f9b6e65cfbe9935a5affac1ae8e44edb6a5b0ccc26374d 1 sysdig प्राप्त /v1.24/images/db39680b63ac47a1d989da7b742f7b382af34d85a68214f8977bad59c05901

गहरा खोदना

Sysdig सामग्री-समृद्ध जानकारी को कैप्चर करता है जो आपको अपने कंटेनरों के आंतरिक कामकाज में विस्तृत जानकारी प्राप्त करने देता है। मान लीजिए कि आप कुछ कंटेनरों को चला रहे हैं और जानना चाहते हैं कि कौन सी प्रक्रिया सबसे अधिक सीपीयू की खपत करती है।

  1. उस कंटेनर को सूचीबद्ध करें जो उस अवधि के दौरान सक्रिय था जिसमें आपने घटनाओं को कैप्चर किया था:
sysdig -r निगरानी-wordpress.scap -c lscontainers

2. आप उस कंटेनर की पहचान कर सकते हैं जिसने सबसे अधिक सीपीयू का उपभोग किया है:

sysdig -r निगरानी-wordpress.scap -c topcontainers_cpu
सीपीयू% कंटेनर.नाम --------------------------------------------- ----------------------------------- 5.37% wordpress-sysdig_wordpress_1 1.35% wordpress-sysdig_db_1 0.84% ​​होस्ट 0.51% sysdig

3. आप भी गहरी खुदाई कर सकते हैं और सबसे सीपीयू गहन प्रक्रिया की पहचान कर सकते हैं topprocs_cpu छेनी के साथ:

sysdig -r निगरानी-wordpress.scap -c topprocs_cpu कंटेनर.name में wordpress_1 शामिल है
CPU% प्रक्रिया PID ---------------------------------------------- ---------------------------------- 0.12% अपाचे 2 8383 0.11% अपाचे 2 9413 0.11% अपाचे 2 9300 0.11% अपाचे 2 9242 0.11% अपाचे 2 8897 0.11% अपाचे 2 8422 0.10% अपाचे 2 9372 0.10% अपाचे 2 9241 0.10% अपाचे 2 8424 0.09% अपाचे 2 9429

यदि आप अधिक विवरण देखना चाहते हैं, तो ps छेनी एक अधिक क्रिया विकल्प प्रदान करती है:

sysdig -r निगरानी-wordpress.scap -c ps container.name = wordpress-sysdig_wordpress_1
TID PID USER VIRT RES FDLIMIT CMD 5896 5896 root 232.82M 22.32M 429496729 Apache2 8383 8383 www-data 307.44M 25.46.14292929 अपाचे 2 8422 8422 www-data 235.44M 22.90M 4296676296296676296673296296292176172172172172172172172174172 है। 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-247-data-247-data-246 -44M डेटा 22.89M 429496729 अपाचे 2 9372 9372 www-data 235.44M 22.89M 429496729 Apache2 9413 9413 www-data 233.44M 20.77M 429496729 Apache2

उपयोगी सलाह

यदि आप उपरोक्त उदाहरण के रूप में घटनाओं को कैप्चर करने के लिए Sysdig चलाते हैं (sysdig -w निगरानी-wordpress.scap), तो इवेंट फ़ाइल लगातार बढ़ेगी जब तक कि वह सभी उपलब्ध स्थान का उपभोग न कर ले। कुछ तरीके हैं जो इसे होने से रोकने में मदद कर सकते हैं:

  • घटनाओं की संख्या निर्दिष्ट करें Sysdig को एक ध्वज को पारित करके कब्जा करना चाहिए। एक बार जब Sysdig ईवेंट की निर्दिष्ट संख्या कैप्चर कर लेता है, तो यह स्वचालित रूप से बाहर निकल जाएगा:
sysdig -n 5000 -w निगरानी-wordpress.scap
  • Sysdig को कॉन्फ़िगर करने के लिए -C ध्वज का उपयोग करें ताकि यह एक निर्दिष्ट आकार की छोटी फ़ाइलों में कैप्चर को तोड़ दे। निम्न उदाहरण लगातार घटनाओं को फाइलों में सहेजता है <10MB:
sysdig -C 10w निगरानी-wordpress.scap

यह 10 एमबी से बड़ी फ़ाइलों का एक गुच्छा बनाएगा:

ls -Lh निगरानी-वर्डप्रेस *
-rw-r - r--। 1 रूट रूट 9.6M जनवरी 7 17:13 निगरानी-वर्डप्रेस। scap0 -rw-r - r--। 1 रूट रूट 9.6M जन 7 17:14 निगरानी-wordpress.scap1 -rw-r - r--। 1 रूट रूट 9.6M 7 जनवरी 17:14 निगरानी-wordpress.scap2 -rw-r - r--। 1 रूट रूट 9.6M 7 जनवरी 17:14 निगरानी-wordpress.scap3 -rw-r - r--। 1 रूट रूट 9.6M 7 जनवरी 17:14 निगरानी-wordpress.scap4 -rw-r - r--। 1 रूट रूट 9.6M जनवरी 7 17:14 निगरानी-वर्डप्रेस.स्कैप 5 -आरडब्ल्यू-आर - आर--। 1 रूट रूट 9.6M 7 जनवरी 17:14 निगरानी-wordpress.scap6 -rw-r - r--। 1 रूट रूट 9.6M 7 जनवरी 17:14 निगरानी-wordpress.scap7 -rw-r - r--। 1 रूट रूट 6.4M जनवरी 7 17:14 निगरानी-वर्डप्रेस। Scap8
  • निर्दिष्ट करें अधिकतम संख्या में फ़ाइलें Sysdig को -W ध्वज के साथ रखना चाहिए। उदाहरण के लिए, आप -C और -W झंडे को जोड़ सकते हैं:
sysdig -C 10 -W 4w निगरानी-wordpress.scap

उपरोक्त आदेश केवल अंतिम चार कैप्चर फ़ाइलों को रखेगा:

ls -Lh निगरानी-वर्डप्रेस *
-rw-r - r--। 1 रूट रूट 7.2M जनवरी 7 17:21 निगरानी-wordpress.scap0 -rw-r - r--। 1 रूट रूट 9.6M 7 जनवरी 17:21 निगरानी-wordpress.scap1 -rw-r - r--। 1 रूट रूट 9.6M 7 जनवरी 17:21 निगरानी-wordpress.scap2 -rw-r - r--। 1 रूट रूट 9.6M 7 जनवरी 17:21 निगरानी-wordpress.scap3 रूट @ cd06093b141b: / # sysdig -C 10 -W 4 -W निगरानी-वर्डप्रेस.scap

वास्तविक समय में निगरानी

Sysdig के साथ, आप वास्तविक समय में डेटा का विश्लेषण भी कर सकते हैं। पहली नज़र में, यह एक चुनौतीपूर्ण काम की तरह लग सकता है क्योंकि, डिफ़ॉल्ट रूप से, सभी घटनाओं को लगातार कंसोल से प्रिंट किया जाता है। सौभाग्य से, छेनी यहां मदद करने के लिए हैं।

एक उदाहरण लेते हैं।

प्रति कंटेनर बेसिस पर अपनी प्रक्रियाओं का विश्लेषण करें

  1. अपने कंटेनरों को सूचीबद्ध करने के लिए निम्नलिखित कमांड चलाएँ:
docker ps
CONTRINER ID IMAGE COMMANDATE STATUS PORTS NAMES 5b253e74e8e7 sysdig / sysdig "/docker-entrypoint.…" "9 मिनट पहले" 9 मिनट पहले तक 9 मिनट्स के लिए 06def7875617 वर्डप्रेस: ​​नवीनतम "docker-entrypoint.s…" 3 घंटे पहले अप करें। -> 80 / tcp wordpress-sysdig_wordpress_1 6bd8418eb03f mysql: 5.7 "docker-entrypoint.s ..." 3 घंटे पहले 3 घंटे 3306 / tcp, 33060 / tcp wordpress-sysdig_db_1

2. आप वर्डप्रेस कंटेनर में चलने वाली प्रक्रियाओं का विश्लेषण कर सकते हैं:

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

3. इसी तरह, आप MySQL कंटेनर में चल रही प्रक्रियाओं का विश्लेषण कर सकते हैं:

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

ध्यान दें कि, इस उदाहरण से बहुत अलग नहीं, Sysdig नेटवर्क ट्रैफ़िक, डिस्क उपयोग, और इसी तरह की निगरानी कर सकता है।

इस ट्यूटोरियल में, आप अपने कंटेनरों द्वारा बनाई गई गतिविधि की स्पष्ट समझ पाने के लिए Sysdig का उपयोग करने के मूल सिद्धांतों पर चले गए हैं। इस ब्लॉग पोस्ट में उदाहरणों ने आपको आरंभ करने में मदद की है और भविष्य के ट्यूटोरियल में, हम आपको दिखाएंगे कि कैसे Csysdig और Sysdig निरीक्षण का उपयोग करें।