ค้นหาเว็บไซต์

Sysdig - เครื่องมือตรวจสอบและแก้ไขปัญหาระบบอันทรงพลังสำหรับ Linux


Sysdig คือเครื่องมือตรวจสอบและแก้ไขปัญหาระบบแบบโอเพ่นซอร์ส ข้ามแพลตฟอร์ม ทรงพลังและยืดหยุ่นสำหรับ Linux นอกจากนี้ยังใช้งานได้บน Windows และ Mac OSX แต่มีฟังก์ชันการทำงานที่จำกัด และสามารถใช้สำหรับการวิเคราะห์ระบบ การตรวจสอบ และการแก้ไขจุดบกพร่อง

โดยปกติ คุณจะใช้เครื่องมือตรวจสอบและแก้ไขปัญหาประสิทธิภาพ Linux ต่างๆ ผสมกัน รวมถึงเครื่องมือเหล่านี้ตามรายการด้านล่างเพื่อดำเนินการตรวจสอบและแก้ไขข้อบกพร่องของ Linux:

  1. strace – ค้นหาการเรียกของระบบและส่งสัญญาณไปยังกระบวนการ
  2. tcpdump – การตรวจสอบการรับส่งข้อมูลเครือข่ายดิบ
  3. netstat – การตรวจสอบการเชื่อมต่อเครือข่าย
  4. htop – การตรวจสอบกระบวนการแบบเรียลไทม์
  5. iftop – การตรวจสอบแบนด์วิธเครือข่ายแบบเรียลไทม์
  6. lsof – ดูว่าไฟล์ใดถูกเปิดโดยกระบวนการใด

อย่างไรก็ตาม sysdig ผสานรวมสิ่งที่เครื่องมือข้างต้นทั้งหมดและอื่นๆ อีกมากมายที่นำเสนอไว้ในโปรแกรมเดียวที่เรียบง่าย และยิ่งกว่านั้นด้วยการสนับสนุนคอนเทนเนอร์ที่น่าทึ่ง ช่วยให้คุณสามารถจับภาพ บันทึก กรอง และตรวจสอบพฤติกรรมที่แท้จริง (สตรีมของเหตุการณ์) ของระบบ Linux รวมถึงคอนเทนเนอร์

มาพร้อมกับอินเทอร์เฟซบรรทัดคำสั่งและ UI แบบโต้ตอบที่มีประสิทธิภาพ (csysdig) ซึ่งช่วยให้คุณดูกิจกรรมของระบบแบบเรียลไทม์ หรือดำเนินการถ่ายโอนข้อมูลการติดตามและบันทึกสำหรับการวิเคราะห์ในภายหลัง คุณสามารถดูวิธีการทำงานของ csysdig ได้จากวิดีโอด้านล่าง

คุณสมบัติ Sysdig:

  • มีความรวดเร็ว เสถียร และใช้งานง่ายพร้อมเอกสารประกอบที่ครบถ้วน
  • มาพร้อมกับการรองรับเทคโนโลยีคอนเทนเนอร์แบบเนทิฟ รวมถึง Docker, LXC
  • สามารถเขียนสคริปต์ได้ใน Lua; เสนอสิ่ว (สคริปต์ Lua น้ำหนักเบา) สำหรับการประมวลผลเหตุการณ์ระบบที่บันทึกไว้
  • รองรับการกรองเอาต์พุตที่เป็นประโยชน์
  • รองรับการติดตามระบบและแอปพลิเคชัน
  • สามารถรวมเข้ากับ Ansible, Puppet และ Logstash ได้
  • เปิดใช้งานการวิเคราะห์บันทึกขั้นสูงตัวอย่าง
  • นอกจากนี้ยังมีฟีเจอร์การวิเคราะห์การโจมตีเซิร์ฟเวอร์ Linux (นิติเวช) สำหรับแฮกเกอร์ที่มีจริยธรรมและอีกมากมาย

ในบทความนี้ เราจะแสดงวิธีการติดตั้ง sysdig บนระบบ Linux และใช้กับตัวอย่างพื้นฐานของการวิเคราะห์ระบบ การตรวจสอบ และการแก้ไขปัญหา

วิธีการติดตั้ง Sysdig ใน Linux

การติดตั้งแพ็คเกจ 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* อุปกรณ์และจำเป็นต้องโหลดโมดูลเคอร์เนล sysdig-probe โดยอัตโนมัติ (ในกรณีที่ไม่ใช่) มิฉะนั้นให้ใช้คำสั่ง sudo

ตัวอย่างพื้นฐานที่สุดคือการรันโดยไม่มีข้อโต้แย้งใดๆ ซึ่งจะช่วยให้คุณสามารถดูสตรีมกิจกรรมของระบบ Linux ที่อัปเดตแบบเรียลไทม์:

sudo sysdig

เอาต์พุตด้านบน (ข้อมูลดิบ) อาจไม่สมเหตุสมผลสำหรับคุณมากนัก เพื่อให้เอาต์พุตมีประโยชน์มากกว่าให้รัน csysdig:

sudo csysdig 

หมายเหตุ: เพื่อให้เข้าใจถึงเครื่องมือนี้อย่างแท้จริง คุณต้องใช้ sysdig ซึ่งสร้างข้อมูลดิบตามที่เราเห็นก่อนหน้านี้จากการทำงาน ระบบ Linux: คุณต้องเข้าใจวิธีใช้ตัวกรองและสิ่ว

แต่หากคุณต้องการวิธีใช้ sysdig ที่ไม่ยุ่งยาก ให้ดำเนินการต่อด้วย csysdig

ทำความเข้าใจเกี่ยวกับสิ่วและตัวกรอง Sysdig

สิ่ว Sysdig เป็นสคริปต์ Lua ขั้นต่ำสำหรับตรวจสอบสตรีมเหตุการณ์ sysdig เพื่อดำเนินการแก้ไขปัญหาระบบที่มีประโยชน์ และอื่นๆ คำสั่งด้านล่างจะช่วยให้คุณดูสิ่วที่มีอยู่ทั้งหมด:

sudo sysdig -cl

ภาพหน้าจอแสดงรายการตัวอย่างสิ่วตามหมวดหมู่ต่างๆ

หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับสิ่ว ให้ใช้แฟล็ก -i:

sudo sysdig -i topprocs_cpu

ตัวกรอง Sysdig จะเพิ่มพลังให้กับประเภทของเอาต์พุตที่คุณจะได้รับจากสตรีมเหตุการณ์ ซึ่งช่วยให้คุณปรับแต่งเอาต์พุตได้ คุณควรระบุที่ส่วนท้ายของบรรทัดคำสั่ง

ตัวกรองที่ตรงไปตรงมาและธรรมดาที่สุดคือการตรวจสอบ “class.field=value ” ขั้นพื้นฐาน คุณยังสามารถรวมสิ่วเข้ากับตัวกรองเพื่อการปรับแต่งที่ทรงพลังยิ่งขึ้นได้

หากต้องการดูรายการคลาสฟิลด์ ฟิลด์ และคำอธิบายที่มีอยู่ ให้พิมพ์:


sudo sysdig -l

การสร้างไฟล์ติดตามระบบ Linux

หากต้องการดัมพ์เอาต์พุต sysdig ในไฟล์เพื่อการวิเคราะห์ในภายหลัง ให้ใช้แฟล็ก -w เช่นนี้

คุณสามารถอ่านไฟล์ดัมพ์การติดตามได้โดยใช้แฟล็ก -r:


sudo sysdig -r trace.scap

ตัวเลือก -s ใช้เพื่อระบุจำนวนไบต์ของข้อมูลที่จะบันทึกสำหรับแต่ละเหตุการณ์ของระบบ ในตัวอย่างนี้ เรากำลังกรองเหตุการณ์สำหรับกระบวนการ mongod

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

การตรวจสอบกระบวนการ Linux

หากต้องการแสดงรายการกระบวนการของระบบ ให้พิมพ์:

sudo sysdig -c ps

ตรวจสอบกระบวนการตามการใช้งาน CPU

หากต้องการดูกระบวนการยอดนิยมตามเปอร์เซ็นต์การใช้งาน CPU ให้รันคำสั่งนี้:

sudo sysdig -c topprocs_cpu

การตรวจสอบการเชื่อมต่อเครือข่ายและ I/O

หากต้องการดูการเชื่อมต่อเครือข่ายระบบ ให้รัน:

sudo sysdig -c netstat

คำสั่งต่อไปนี้จะช่วยคุณแสดงรายการการเชื่อมต่อเครือข่ายสูงสุดตามจำนวนไบต์ทั้งหมด:

sudo sysdig -c topconns

ถัดไป คุณยังสามารถแสดงรายการกระบวนการอันดับต้นๆ ตาม I/O เครือข่ายได้ดังต่อไปนี้:

sudo sysdig -c topprocs_net    

การตรวจสอบไฟล์ระบบ I/O

คุณสามารถส่งออกข้อมูลที่อ่านและเขียนโดยกระบวนการในระบบได้ดังนี้:

sudo sysdig -c echo_fds

หากต้องการแสดงรายการกระบวนการอันดับต้นๆ ตามไบต์ของดิสก์ (อ่าน + เขียน) ให้ใช้:

sudo sysdig -c topprocs_file   

การแก้ไขปัญหาประสิทธิภาพของระบบ Linux

หากต้องการจับตาดูปัญหาคอขวดของระบบ (การเรียกระบบที่ช้า) ให้ดำเนินการคำสั่งนี้:

sudo sysdig -c bottlenecks

ติดตามเวลาดำเนินการของกระบวนการ

หากต้องการติดตามเวลาดำเนินการของกระบวนการ คุณสามารถรันคำสั่งนี้และดัมพ์การติดตามในไฟล์:

sudo sysdig -w extime.scap -c proc_exec_time 

จากนั้นใช้ตัวกรองเพื่อลดรายละเอียดของกระบวนการเฉพาะ (postgres ในตัวอย่างนี้) ดังนี้:

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

ค้นพบเครือข่ายที่ช้า I/0

คำสั่งง่ายๆ นี้จะช่วยคุณตรวจจับ I/0 เครือข่ายที่ช้า:

sudo sysdig -c netlower     

การดูรายการไฟล์บันทึก

คำสั่งด้านล่างช่วยให้คุณแสดงทุกข้อความที่เขียนไปยัง syslog หากคุณสนใจรายการบันทึกสำหรับกระบวนการเฉพาะ ให้สร้างการถ่ายโอนข้อมูลการติดตามและกรองตามที่แสดงไว้ก่อนหน้านี้:

sudo sysdig -c spy_syslog      

คุณสามารถพิมพ์ข้อมูลใดๆ ที่เขียนโดยกระบวนการใดๆ ลงในไฟล์บันทึกได้ดังต่อไปนี้:

sudo sysdig -c spy_logs   

การตรวจสอบคำขอเซิร์ฟเวอร์ HTTP

หากคุณมีเซิร์ฟเวอร์ HTTP เช่น Apache หรือ Nginx ทำงานบนระบบของเรา ให้ดูบันทึกคำขอของเซิร์ฟเวอร์ด้วยคำสั่งนี้:

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

แสดงเชลล์การเข้าสู่ระบบและกิจกรรมผู้ใช้เชิงโต้ตอบ

คำสั่งด้านล่างจะช่วยให้คุณดู ID เชลล์การเข้าสู่ระบบทั้งหมด:

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 ระบบเครือข่ายและอื่นๆ
  2. pyDash – เครื่องมือตรวจสอบประสิทธิภาพ Linux บนเว็บ
  3. Perf- เครื่องมือตรวจสอบและวิเคราะห์ประสิทธิภาพสำหรับ Linux
  4. Collectl: เครื่องมือตรวจสอบประสิทธิภาพ All-in-One ขั้นสูงสำหรับ Linux
  5. Netdata – เครื่องมือตรวจสอบประสิทธิภาพแบบเรียลไทม์สำหรับระบบ Linux
บทสรุป

Sysdig รวบรวมฟังก์ชันการทำงานจากเครื่องมือบรรทัดคำสั่งมากมายมาไว้ในอินเทอร์เฟซที่โดดเด่นเพียงอินเทอร์เฟซเดียว ซึ่งช่วยให้คุณสามารถเจาะลึกเหตุการณ์ระบบ Linux ของคุณเพื่อรวบรวมข้อมูล บันทึกสำหรับการวิเคราะห์ในภายหลัง และให้การสนับสนุนคอนเทนเนอร์ที่น่าทึ่ง

หากต้องการถามคำถามหรือแบ่งปันความคิดเห็นเกี่ยวกับเครื่องมือนี้ ให้ใช้แบบฟอร์มคำติชมด้านล่าง