Sysdig - लिनक्स के लिए एक शक्तिशाली सिस्टम मॉनिटरिंग और समस्या निवारण उपकरण


Sysdig एक ओपन-सोर्स, क्रॉस-प्लेटफ़ॉर्म, शक्तिशाली और लचीली प्रणाली की निगरानी और लिनक्स के लिए समस्या निवारण उपकरण है; यह विंडोज और मैक ओएसएक्स पर भी काम करता है लेकिन सीमित कार्यक्षमता के साथ और सिस्टम विश्लेषण, निरीक्षण और डीबगिंग के लिए इस्तेमाल किया जा सकता है।

आम तौर पर, आप लिनक्स की निगरानी और डिबगिंग कार्यों को करने के लिए नीचे सूचीबद्ध इन सहित विभिन्न लिनक्स प्रदर्शन निगरानी और समस्या निवारण उपकरण का मिश्रण नियोजित करेंगे:

  1. strace – discover system calls and signals to a process.
  2. tcpdump – raw network traffic monitoring.
  3. netstat – network connections monitoring.
  4. htop – real time process monitoring.
  5. iftop – real time network bandwidth monitoring.
  6. lsof – view which files are opened by which process.

हालांकि, sysdig एकीकृत करता है कि उपरोक्त सभी उपकरण और कई और अधिक, एक एकल और सरल कार्यक्रम में प्रदान करते हैं, और इसलिए अद्भुत कंटेनर समर्थन के साथ। यह आपको लिनक्स सिस्टम के वास्तविक व्यवहार (घटनाओं की धारा) के साथ-साथ कंटेनरों को पकड़ने, सहेजने, फ़िल्टर करने और जांचने में सक्षम बनाता है।

यह एक कमांड लाइन इंटरफेस और एक शक्तिशाली इंटरैक्टिव यूआई ( csysdig ) के साथ आता है जो आपको वास्तविक समय में सिस्टम गतिविधि देखने या ट्रेस डंप प्रदर्शन करने और बाद के विश्लेषण के लिए बचाने की अनुमति देता है। आप देख सकते हैं कि नीचे दिए गए वीडियो से csysdig कैसे काम करता है।

  • It is fast, stable and easy-to-use with comprehensively well documented.
  • Comes with native support for container technologies, including Docker, LXC.
  • It is scriptable in Lua; offers chisels (lightweight Lua scripts) for processing captured system events.
  • Supports useful filtering of output.
  • Supports system and application tracing.
  • It can be integrated with Ansible, Puppet and Logstash.
  • Enable sample advanced log analysis.
  • It also offers Linux server attack (forensics) analysis features for ethical hackers and lot’s more.

इस लेख में, हम दिखाएंगे कि लिनक्स सिस्टम पर sddig कैसे स्थापित करें, और सिस्टम विश्लेषण, निगरानी और समस्या निवारण के बुनियादी उदाहरणों के साथ इसका उपयोग करें।

कैसे लिनक्स में Sysdig स्थापित करने के लिए

sysdig पैकेज स्थापित करना नीचे दिए गए कमांड को चलाने के रूप में आसान है, जो सभी आवश्यकताओं की जांच करेगा; यदि हर चीज की जगह है, तो यह Draios APT/YUM रिपॉजिटरी से पैकेज को डाउनलोड और इंस्टॉल करेगा।

# curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash 
OR
$ curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

इसे स्थापित करने के बाद, आपको sysdig को रूट के रूप में चलाने की आवश्यकता है क्योंकि इसके लिए महत्वपूर्ण क्षेत्रों जैसे कि /proc फ़ाइल सिस्टम, /dev/sysdig * sddig-जांच कर्नेल मॉड्यूल को स्वत: लोड करने के लिए डिवाइस और आवश्यकताएं (यदि ऐसा नहीं है); अन्यथा sudo कमांड का उपयोग करें।

सबसे बुनियादी उदाहरण इसे बिना किसी तर्क के चलाया जा रहा है, इससे आप वास्तविक समय में अपडेट की गई घटनाओं की अपनी लिनक्स प्रणाली को देख पाएंगे:

$ sudo sysdig

उपरोक्त आउटपुट (कच्चा डेटा) अधिक उपयोगी आउटपुट रन csysdig के लिए, आपके लिए बहुत मायने नहीं रखता है:

$ sudo csysdig 

लाल

लेकिन अगर आपको sysdig का उपयोग करने के दर्द रहित साधनों की आवश्यकता है - csysdig के साथ जारी रखें।

Sysdig Chisels और फिल्टर को समझना

Sysdig छेनी उपयोगी सिस्टम समस्या निवारण कार्यों और अधिक करने के लिए sysdig इवेंट स्ट्रीम की जांच करने के लिए न्यूनतम Lua स्क्रिप्ट हैं। नीचे दी गई कमांड आपको सभी उपलब्ध छेनी देखने में मदद करेगी:

$ sudo sysdig -cl

स्क्रीन शॉट विभिन्न श्रेणियों के तहत छेनी की एक नमूना सूची दिखाता है।

यदि आप किसी विशेष छेनी के बारे में अधिक जानकारी प्राप्त करना चाहते हैं, तो -i ध्वज का उपयोग करें:

$ sudo sysdig -i topprocs_cpu

Sysdig फ़िल्टर इवेंट स्ट्रीम से प्राप्त किए जा सकने वाले आउटपुट में अधिक शक्ति जोड़ते हैं, वे आपको आउटपुट को कस्टमाइज़ करने की अनुमति देते हैं। आपको उन्हें कमांड लाइन के अंत में निर्दिष्ट करना चाहिए।

एक सीधा और सामान्य फ़िल्टर एक मूल " class.field = value " चेक है, आप छेनी को फिल्टर के साथ और भी अधिक शक्तिशाली अनुकूलन के लिए जोड़ सकते हैं।

उपलब्ध फ़ील्ड वर्गों, फ़ील्ड्स और उनके विवरणों की सूची देखने के लिए, टाइप करें:

$ sudo sysdig -l

बाद के विश्लेषण के लिए किसी फाइल में sysdig आउटपुट डंप करने के लिए, इस तरह -w ध्वज का उपयोग करें।

आप -r ध्वज का उपयोग करके ट्रेस डंप फ़ाइल पढ़ सकते हैं:

$ sudo sysdig -r trace.scap

प्रत्येक सिस्टम ईवेंट के लिए कैप्चर किए जाने वाले डेटा के बाइट की मात्रा निर्दिष्ट करने के लिए <कोड> -s विकल्प का उपयोग किया जाता है। इस उदाहरण में, हम मोंगॉड प्रक्रिया के लिए घटनाओं को फ़िल्टर कर रहे हैं।

$ sudo sysdig -s 3000 -w trace.scap
$ sudo sysdig -r trace.scap proc.name=mongod

सिस्टम प्रक्रियाओं को सूचीबद्ध करने के लिए, टाइप करें:

$ sudo sysdig -c ps

CPU उपयोग प्रतिशत द्वारा शीर्ष प्रक्रियाएँ देखने के लिए, यह कमांड चलाएँ:

$ sudo sysdig -c topprocs_cpu

सिस्टम नेटवर्क कनेक्शन देखने के लिए, चलाएं:

$ sudo sysdig -c netstat

निम्नलिखित आदेश आपको कुल बाइट्स द्वारा शीर्ष नेटवर्क कनेक्शनों को सूचीबद्ध करने में मदद करेंगे:

$ sudo sysdig -c topconns

इसके बाद, आप नेटवर्क I/O द्वारा शीर्ष प्रक्रियाओं को भी इस प्रकार सूचीबद्ध कर सकते हैं:

$ sudo sysdig -c topprocs_net    

आप सिस्टम पर प्रक्रियाओं द्वारा पढ़े और लिखे गए डेटा को निम्नानुसार आउटपुट कर सकते हैं:

$ sudo sysdig -c echo_fds

डिस्क बाइट्स (पढ़ें + लिखें) द्वारा शीर्ष प्रक्रियाओं को सूचीबद्ध करने के लिए, उपयोग करें:

$ sudo sysdig -c topprocs_file   

सिस्टम की अड़चनों (धीमी सिस्टम कॉल) पर नज़र रखने के लिए, इस कमांड को निष्पादित करें:

$ sudo sysdig -c bottlenecks

किसी प्रक्रिया के निष्पादन समय को ट्रैक करने के लिए, आप इस कमांड को चला सकते हैं और एक फाइल में ट्रेस डंप कर सकते हैं:

$ sudo sysdig -w extime.scap -c proc_exec_time 

फिर एक विशेष प्रक्रिया के विवरण पर शून्य को नीचे करने के लिए एक फिल्टर का उपयोग करें ( इस उदाहरण में पोस्टग्रेज):

$ sudo sysdig -r extime.scap proc.name=postgres

यह सरल कमांड आपको धीमे नेटवर्क I/0 का पता लगाने में मदद करेगी:

$ sudo sysdig -c netlower     

नीचे दिया गया आदेश आपको syslog को लिखे गए प्रत्येक संदेश को प्रदर्शित करने में मदद करता है, यदि आप किसी विशिष्ट प्रक्रिया के लिए लॉग प्रविष्टियों में रुचि रखते हैं, तो एक ट्रेस डंप बनाएं और इसे पहले के अनुसार दिखाए अनुसार फ़िल्टर करें:

$ sudo sysdig -c spy_syslog      

आप किसी भी प्रक्रिया द्वारा लिखे गए किसी भी डेटा को लॉग फ़ाइल में प्रिंट कर सकते हैं:

$ sudo sysdig -c spy_logs   

यदि आपके पास एक HTTP सर्वर है जैसे कि Apache या Nginx हमारे सिस्टम पर चल रहा है, तो सर्वर के अनुरोधों को इस कमांड के साथ देखें:

$ sudo sysdig -c httplog    
$ sudo sysdig -c httptop   [Print Top HTTP Requests] 

नीचे दी गई कमांड आपको सभी लॉगिन शेल आईडी देखने में सक्षम करेगी:

$ sudo sysdig -c list_login_shells

अंतिम लेकिन कम से कम, आप सिस्टम उपयोगकर्ताओं की इंटरैक्टिव गतिविधि दिखा सकते हैं जैसे:

$ sudo sysdig -c spy_users

अधिक उपयोग जानकारी और उदाहरणों के लिए, sysdig और csysdig मैन पेज पढ़ें:

$ man sysdig 
$ man csysdig

संदर्भ: https://www.sysdig.org/

इन उपयोगी लिनक्स प्रदर्शन निगरानी उपकरणों की भी जाँच करें:

  1. BCC – Dynamic Tracing Tools for Linux Performance Monitoring, Networking and More
  2. pyDash – A Web Based Linux Performance Monitoring Tool
  3. Perf- A Performance Monitoring and Analysis Tool for Linux
  4. Collectl: An Advanced All-in-One Performance Monitoring Tool for Linux
  5. Netdata – A Real-Time Performance Monitoring Tool for Linux Systems

Sysdig एक साथ कई कमांड लाइन टूल से कार्यात्मकता को एक उल्लेखनीय इंटरफ़ेस में लाता है, इस प्रकार आप डेटा को इकट्ठा करने के लिए अपने लिनक्स सिस्टम की घटनाओं में गहरी खुदाई करने की अनुमति देते हैं, बाद के विश्लेषण के लिए बचत करते हैं और यह अविश्वसनीय कंटेनर समर्थन प्रदान करता है।

इस टूल के बारे में कोई भी सवाल पूछने या कोई विचार साझा करने के लिए, नीचे दिए गए फीडबैक फॉर्म का उपयोग करें।