Sysdig - Linux-നുള്ള ഒരു ശക്തമായ സിസ്റ്റം മോണിറ്ററിംഗ് ആൻഡ് ട്രബിൾഷൂട്ടിംഗ് ടൂൾ


Linux-നുള്ള ഒരു ഓപ്പൺ സോഴ്uസ്, ക്രോസ്-പ്ലാറ്റ്uഫോം, ശക്തവും വഴക്കമുള്ളതുമായ സിസ്റ്റം മോണിറ്ററിംഗ്, ട്രബിൾഷൂട്ടിംഗ് ടൂൾ ആണ് Sysdig; ഇത് Windows, Mac OSX എന്നിവയിലും പ്രവർത്തിക്കുന്നു, എന്നാൽ പരിമിതമായ പ്രവർത്തനക്ഷമതയോടെ ഇത് സിസ്റ്റം വിശകലനം, പരിശോധന, ഡീബഗ്ഗിംഗ് എന്നിവയ്ക്കായി ഉപയോഗിക്കാം.

സാധാരണയായി, Linux മോണിറ്ററിംഗ്, ഡീബഗ്ഗിംഗ് ടാസ്uക്കുകൾ നിർവ്വഹിക്കുന്നതിന് ചുവടെ ലിസ്റ്റുചെയ്uതിരിക്കുന്നവ ഉൾപ്പെടെ വിവിധ ലിനക്uസ് പ്രകടന നിരീക്ഷണത്തിന്റെയും ട്രബിൾഷൂട്ടിംഗ് ടൂളുകളുടെയും ഒരു മിശ്രിതം നിങ്ങൾ ഉപയോഗിക്കും:

  1. സ്ട്രേസ് - ഒരു പ്രോസസ്സിലേക്കുള്ള സിസ്റ്റം കോളുകളും സിഗ്നലുകളും കണ്ടെത്തുക.
  2. tcpdump – റോ നെറ്റ്uവർക്ക് ട്രാഫിക് നിരീക്ഷണം.
  3. netstat – നെറ്റ്uവർക്ക് കണക്ഷനുകളുടെ നിരീക്ഷണം.
  4. htop – തത്സമയ പ്രക്രിയ നിരീക്ഷണം.
  5. iftop – തത്സമയ നെറ്റ്uവർക്ക് ബാൻഡ്uവിഡ്ത്ത് നിരീക്ഷണം.
  6. lsof - ഏത് പ്രോസസ്സ് വഴി ഏത് ഫയലുകളാണ് തുറക്കുന്നതെന്ന് കാണുക.

എന്നിരുന്നാലും, സിസ്uഡിഗ് മുകളിൽ പറഞ്ഞിരിക്കുന്ന എല്ലാ ടൂളുകളും മറ്റ് പലതും, ഒറ്റതും ലളിതവുമായ പ്രോഗ്രാമിൽ വാഗ്ദാനം ചെയ്യുന്നവയെ സമന്വയിപ്പിക്കുന്നു, അതിലേറെയും അതിശയകരമായ കണ്ടെയ്uനർ പിന്തുണയോടെ. ലിനക്സ് സിസ്റ്റങ്ങളുടെയും കണ്ടെയ്uനറുകളുടെയും യഥാർത്ഥ സ്വഭാവം (ഇവന്റുകളുടെ സ്ട്രീം) പിടിച്ചെടുക്കാനും സംരക്ഷിക്കാനും ഫിൽട്ടർ ചെയ്യാനും പരിശോധിക്കാനും ഇത് നിങ്ങളെ പ്രാപ്uതമാക്കുന്നു.

ഇത് ഒരു കമാൻഡ് ലൈൻ ഇന്റർഫേസും ശക്തമായ ഒരു ഇന്ററാക്ടീവ് UI (csysdig) സഹിതം വരുന്നു, ഇത് സിസ്റ്റം പ്രവർത്തനം തത്സമയം കാണാനും അല്ലെങ്കിൽ ഒരു ട്രെയ്സ് ഡംപ് നടത്താനും പിന്നീടുള്ള വിശകലനത്തിനായി സംരക്ഷിക്കാനും നിങ്ങളെ അനുവദിക്കുന്നു. ചുവടെയുള്ള വീഡിയോയിൽ നിന്ന് csysdig എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് നിങ്ങൾക്ക് കാണാൻ കഴിയും.

  • ഇത് വേഗമേറിയതും സുസ്ഥിരവും സമഗ്രമായി നന്നായി രേഖപ്പെടുത്തപ്പെട്ടതും ഉപയോഗിക്കാൻ എളുപ്പവുമാണ്.
  • ഡോക്കർ, LXC ഉൾപ്പെടെയുള്ള കണ്ടെയ്നർ സാങ്കേതികവിദ്യകൾക്കുള്ള നേറ്റീവ് പിന്തുണയോടെ വരുന്നു.
  • ഇത് ലുവായിൽ സ്ക്രിപ്റ്റ് ചെയ്യാവുന്നതാണ്; ക്യാപ്uചർ ചെയ്uത സിസ്റ്റം ഇവന്റുകൾ പ്രോസസ്സ് ചെയ്യുന്നതിന് ഉളികൾ (കനംകുറഞ്ഞ Lua സ്uക്രിപ്റ്റുകൾ) വാഗ്ദാനം ചെയ്യുന്നു.
  • ഔട്ട്പുട്ടിന്റെ ഉപയോഗപ്രദമായ ഫിൽട്ടറിംഗ് പിന്തുണയ്ക്കുന്നു.
  • സിസ്റ്റം, ആപ്ലിക്കേഷൻ ട്രെയ്uസിംഗ് എന്നിവയെ പിന്തുണയ്ക്കുന്നു.
  • ഇത് അൻസിബിൾ, പപ്പറ്റ്, ലോഗ്സ്റ്റാഷ് എന്നിവയുമായി സംയോജിപ്പിക്കാം.
  • സാമ്പിൾ വിപുലമായ ലോഗ് വിശകലനം പ്രവർത്തനക്ഷമമാക്കുക.
  • ഇത് നൈതിക ഹാക്കർമാർക്കും അതിലേറെ കാര്യങ്ങൾക്കുമായി ലിനക്സ് സെർവർ ആക്രമണ (ഫോറൻസിക്) വിശകലന സവിശേഷതകളും വാഗ്ദാനം ചെയ്യുന്നു.

ഈ ലേഖനത്തിൽ, ഒരു ലിനക്സ് സിസ്റ്റത്തിൽ sysdig എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും സിസ്റ്റം വിശകലനം, നിരീക്ഷണം, ട്രബിൾഷൂട്ടിംഗ് എന്നിവയുടെ അടിസ്ഥാന ഉദാഹരണങ്ങൾക്കൊപ്പം ഇത് എങ്ങനെ ഉപയോഗിക്കാമെന്നും ഞങ്ങൾ കാണിക്കും.

ലിനക്സിൽ സിസ്ഡിഗ് എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം

sysdig പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുന്നത് താഴെയുള്ള കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നത് പോലെ എളുപ്പമാണ്, അത് എല്ലാ ആവശ്യങ്ങളും പരിശോധിക്കും; എല്ലാം ശരിയാണെങ്കിൽ, അത് ഡ്രായോസ് 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* ഉപകരണങ്ങൾ പോലുള്ള നിർണായക മേഖലകളിലേക്ക് ആക്uസസ് ആവശ്യമാണ് കൂടാതെ sysdig-probe കേർണൽ മൊഡ്യൂൾ സ്വയമേവ ലോഡുചെയ്യേണ്ടതുണ്ട് (അതല്ലെങ്കിൽ) ; അല്ലെങ്കിൽ sudo കമാൻഡ് ഉപയോഗിക്കുക.

വാദങ്ങളൊന്നുമില്ലാതെ ഇത് പ്രവർത്തിപ്പിക്കുക എന്നതാണ് ഏറ്റവും അടിസ്ഥാന ഉദാഹരണം, ഇത് തത്സമയം അപ്uഡേറ്റ് ചെയ്uത ഇവന്റുകളുടെ നിങ്ങളുടെ Linux സിസ്റ്റം സ്ട്രീം കാണാൻ നിങ്ങളെ പ്രാപ്uതമാക്കും:

$ sudo sysdig

മുകളിലെ ഔട്ട്uപുട്ട് (റോ ഡാറ്റ) ഒരുപക്ഷേ നിങ്ങൾക്ക് വളരെയധികം അർത്ഥമാക്കുന്നില്ല, കൂടുതൽ ഉപയോഗപ്രദമായ ഔട്ട്uപുട്ട് പ്രവർത്തിപ്പിക്കാൻ csysdig:

$ sudo csysdig 

കുറിപ്പ്: ഈ ടൂളിന്റെ യഥാർത്ഥ അനുഭവം ലഭിക്കുന്നതിന്, പ്രവർത്തിക്കുന്ന ഒരു ലിനക്സ് സിസ്റ്റത്തിൽ നിന്ന് ഞങ്ങൾ മുമ്പ് കണ്ടതുപോലെ റോ ഡാറ്റ നിർമ്മിക്കുന്ന sysdig നിങ്ങൾ ഉപയോഗിക്കേണ്ടതുണ്ട്: ഫിൽട്ടറുകളും ഉളികളും എങ്ങനെ ഉപയോഗിക്കണമെന്ന് ഇത് നിങ്ങൾക്ക് മനസിലാക്കാൻ ആവശ്യപ്പെടുന്നു.

എന്നാൽ നിങ്ങൾക്ക് sysdig ഉപയോഗിക്കുന്നതിന് വേദനയില്ലാത്ത മാർഗം ആവശ്യമുണ്ടെങ്കിൽ - csysdig-ൽ തുടരുക.

Sysdig Chisels ആൻഡ് ഫിൽട്ടറുകൾ മനസ്സിലാക്കുന്നു

ഉപയോഗപ്രദമായ സിസ്റ്റം ട്രബിൾഷൂട്ടിംഗ് പ്രവർത്തനങ്ങളും മറ്റും നടപ്പിലാക്കുന്നതിനായി sysdig ഇവന്റ് സ്ട്രീം പരിശോധിക്കുന്നതിനുള്ള ഏറ്റവും കുറഞ്ഞ Lua സ്ക്രിപ്റ്റുകളാണ് Sysdig chisels. ലഭ്യമായ എല്ലാ ഉളികളും കാണുന്നതിന് ചുവടെയുള്ള കമാൻഡ് നിങ്ങളെ സഹായിക്കും:

$ sudo sysdig -cl

സ്ക്രീൻ ഷോട്ട് വ്യത്യസ്ത വിഭാഗങ്ങൾക്ക് കീഴിലുള്ള ഉളികളുടെ ഒരു സാമ്പിൾ ലിസ്റ്റ് കാണിക്കുന്നു.

ഒരു പ്രത്യേക ഉളിയെക്കുറിച്ച് കൂടുതൽ വിവരങ്ങൾ കണ്ടെത്തണമെങ്കിൽ, -i ഫ്ലാഗ് ഉപയോഗിക്കുക:

$ sudo sysdig -i topprocs_cpu

ഇവന്റ് സ്ട്രീമുകളിൽ നിന്ന് നിങ്ങൾക്ക് ലഭിക്കുന്ന തരത്തിലുള്ള ഔട്ട്uപുട്ടിലേക്ക് Sysdig ഫിൽട്ടറുകൾ കൂടുതൽ ശക്തി ചേർക്കുന്നു, ഔട്ട്uപുട്ട് ഇഷ്uടാനുസൃതമാക്കാൻ അവ നിങ്ങളെ അനുവദിക്കുന്നു. ഒരു കമാൻഡ് ലൈനിന്റെ അവസാനം നിങ്ങൾ അവ വ്യക്തമാക്കണം.

ലളിതവും സാധാരണവുമായ ഒരു ഫിൽട്ടർ ഒരു അടിസ്ഥാന \class.field=value പരിശോധനയാണ്, കൂടുതൽ ശക്തമായ ഇഷ്uടാനുസൃതമാക്കലുകൾക്കായി നിങ്ങൾക്ക് ഫിൽട്ടറുകളുമായി ഉളികൾ സംയോജിപ്പിക്കാനും കഴിയും.

ലഭ്യമായ ഫീൽഡ് ക്ലാസുകളുടെയും ഫീൽഡുകളുടെയും അവയുടെ വിവരണങ്ങളുടെയും ഒരു ലിസ്റ്റ് കാണുന്നതിന്, ടൈപ്പ് ചെയ്യുക:

$ sudo sysdig -l

പിന്നീടുള്ള വിശകലനത്തിനായി ഒരു ഫയലിൽ sysdig ഔട്ട്പുട്ട് ഡംപ് ചെയ്യാൻ, ഇതുപോലെ -w ഫ്ലാഗ് ഉപയോഗിക്കുക.

-r ഫ്ലാഗ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ട്രേസ് ഡംപ് ഫയൽ വായിക്കാം:

$ sudo sysdig -r trace.scap

ഓരോ സിസ്റ്റം ഇവന്റിനും ക്യാപ്uചർ ചെയ്യേണ്ട ഡാറ്റയുടെ ബൈറ്റുകളുടെ അളവ് വ്യക്തമാക്കാൻ -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

സിസ്റ്റം നെറ്റ്uവർക്ക് കണക്ഷനുകൾ കാണുന്നതിന്, പ്രവർത്തിപ്പിക്കുക:

$ sudo sysdig -c netstat

ടോപ്പ് നെറ്റ്uവർക്ക് കണക്ഷനുകൾ മൊത്തം ബൈറ്റുകൾ പ്രകാരം ലിസ്റ്റ് ചെയ്യാൻ ഇനിപ്പറയുന്ന കമാൻഡ് നിങ്ങളെ സഹായിക്കും:

$ sudo sysdig -c topconns

അടുത്തതായി, നെറ്റ്uവർക്ക് 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 

ഒരു പ്രത്യേക പ്രക്രിയയുടെ വിശദാംശങ്ങൾ (ഈ ഉദാഹരണത്തിലെ പോസ്റ്റ്uഗ്രെസ്) ഇനിപ്പറയുന്ന രീതിയിൽ പൂജ്യമാക്കാൻ ഒരു ഫിൽട്ടർ ഉപയോഗിക്കുക:

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

സ്ലോ നെറ്റ്uവർക്ക് I/0 കണ്ടെത്താൻ ഈ ലളിതമായ കമാൻഡ് നിങ്ങളെ സഹായിക്കും:

$ sudo sysdig -c netlower     

സിസ്uലോഗിൽ എഴുതിയിരിക്കുന്ന എല്ലാ സന്ദേശങ്ങളും പ്രദർശിപ്പിക്കാൻ ചുവടെയുള്ള കമാൻഡ് നിങ്ങളെ സഹായിക്കുന്നു, ഒരു നിർദ്ദിഷ്ട പ്രക്രിയയ്uക്കായി ലോഗ് എൻട്രികളിൽ നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടെങ്കിൽ, ഒരു ട്രെയ്സ് ഡംപ് സൃഷ്uടിച്ച് മുമ്പ് കാണിച്ചിരിക്കുന്നതുപോലെ അത് ഫിൽട്ടർ ചെയ്യുക:

$ sudo sysdig -c spy_syslog      

ഒരു ലോഗ് ഫയലിലേക്ക് ഏതെങ്കിലും പ്രോസസ്സ് എഴുതിയ ഏത് ഡാറ്റയും നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന രീതിയിൽ പ്രിന്റ് ചെയ്യാൻ കഴിയും:

$ sudo sysdig -c spy_logs   

ഞങ്ങളുടെ സിസ്റ്റത്തിൽ പ്രവർത്തിക്കുന്ന Apache അല്ലെങ്കിൽ Nginx പോലുള്ള ഒരു HTTP സെർവർ നിങ്ങൾക്കുണ്ടെങ്കിൽ, ഈ കമാൻഡ് ഉപയോഗിച്ച് സെർവറിന്റെ അഭ്യർത്ഥന ലോഗ് നോക്കുക:

$ 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/

ഈ ഉപയോഗപ്രദമായ Linux പ്രകടന നിരീക്ഷണ ടൂളുകളും പരിശോധിക്കുക:

  1. BCC – Linux പെർഫോമൻസ് മോണിറ്ററിംഗ്, നെറ്റ്uവർക്കിംഗ് എന്നിവയ്uക്കായുള്ള ഡൈനാമിക് ട്രെയ്uസിംഗ് ടൂളുകൾ
  2. pyDash – ഒരു വെബ് അധിഷ്uഠിത ലിനക്uസ് പെർഫോമൻസ് മോണിറ്ററിംഗ് ടൂൾ
  3. പെർഫ്- ലിനക്സിനുള്ള ഒരു പെർഫോമൻസ് മോണിറ്ററിംഗ് ആൻഡ് അനാലിസിസ് ടൂൾ
  4. Collectl: Linux-നുള്ള ഒരു വിപുലമായ ഓൾ-ഇൻ-വൺ പെർഫോമൻസ് മോണിറ്ററിംഗ് ടൂൾ
  5. Netdata – Linux സിസ്റ്റങ്ങൾക്കായുള്ള ഒരു തത്സമയ പെർഫോമൻസ് മോണിറ്ററിംഗ് ടൂൾ

സിസ്uഡിഗ് നിരവധി കമാൻഡ് ലൈൻ ടൂളുകളിൽ നിന്നുള്ള പ്രവർത്തനങ്ങളെ ഒരു ശ്രദ്ധേയമായ ഇന്റർഫേസിലേക്ക് കൊണ്ടുവരുന്നു, അങ്ങനെ നിങ്ങളുടെ ലിനക്സ് സിസ്റ്റം ഇവന്റുകൾ ഡാറ്റ ശേഖരിക്കുന്നതിനും പിന്നീട് വിശകലനം ചെയ്യുന്നതിനും സംരക്ഷിക്കുന്നതിനും അവിശ്വസനീയമായ കണ്ടെയ്uനർ പിന്തുണ നൽകുന്നതിനും നിങ്ങളെ അനുവദിക്കുന്നു.

ഈ ടൂളിനെക്കുറിച്ച് എന്തെങ്കിലും ചോദ്യങ്ങൾ ചോദിക്കുന്നതിനോ എന്തെങ്കിലും ചിന്തകൾ പങ്കിടുന്നതിനോ, ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം ഉപയോഗിക്കുക.