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

วิธีตรวจสอบกระบวนการ Linux โดยใช้ 'autrace' บน CentOS/RHEL


บทความนี้เป็นบทความต่อเนื่องของเราเกี่ยวกับการตรวจสอบ Linux ในบทความสามบทความล่าสุดของเรา เราได้อธิบายวิธีตรวจสอบระบบ Linux (CentOS และ RHEL) ค้นหาบันทึกการตรวจสอบโดยใช้ ausearch และสร้าง รายงานโดยใช้ยูทิลิตี้ aureport

ในบทความนี้ เราจะอธิบายวิธีการตรวจสอบกระบวนการที่กำหนดโดยใช้ยูทิลิตี autrace ซึ่งเราจะวิเคราะห์กระบวนการโดยการติดตามการเรียกของระบบที่กระบวนการสร้างขึ้น

อ่านเพิ่มเติม: วิธีติดตามการดำเนินการคำสั่งในเชลล์สคริปต์ด้วยการติดตามเชลล์

ออเทรซคืออะไร?

autrace เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่รันโปรแกรมจนกว่าจะออก เช่นเดียวกับ strace; โดยจะเพิ่มกฎการตรวจสอบเพื่อติดตามกระบวนการและบันทึกข้อมูลการตรวจสอบในไฟล์ /var/www/audit/audit.log เพื่อให้ทำงานได้ (เช่น ก่อนที่จะรันโปรแกรมที่เลือก) คุณต้องลบกฎการตรวจสอบที่มีอยู่ทั้งหมดก่อน

ไวยากรณ์สำหรับการใช้ autrace แสดงอยู่ด้านล่าง และยอมรับเพียงตัวเลือกเดียวเท่านั้น -r ซึ่งจำกัด syscalls ที่รวบรวมไว้เฉพาะรายการที่จำเป็นสำหรับการประเมินการใช้ทรัพยากรของกระบวนการ:

autrace -r program program-args

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

autrace program -r program-args

หากคุณมีกฎการตรวจสอบอยู่ aurace จะแสดงข้อผิดพลาดต่อไปนี้

autrace /usr/bin/df

ขั้นแรกให้ลบกฎ auditd ทั้งหมดด้วยคำสั่งต่อไปนี้

auditctl -D

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

autrace /usr/bin/df -h

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

ausearch -i -p 2678

ตัวเลือกอยู่ที่ไหน:

  • -i – ช่วยให้สามารถแปลค่าตัวเลขเป็นข้อความได้
  • -p – ส่ง ID กระบวนการที่จะค้นหา

หากต้องการสร้างรายงานเกี่ยวกับรายละเอียดการติดตาม คุณสามารถสร้างบรรทัดคำสั่งของ ausearch และ aureport เช่นนี้

ausearch -p 2678 --raw | aureport -i -f

ที่ไหน :

  • --raw – บอกให้ ausearch ส่งข้อมูลดิบไปยัง aureport
  • -f – เปิดใช้งานการรายงานเกี่ยวกับไฟล์และซ็อกเก็ต af_unix
  • -i – อนุญาตให้แปลค่าตัวเลขเป็นข้อความ

และการใช้คำสั่งด้านล่าง เรากำลังจำกัดการโทร syscalls ที่รวบรวมไว้เฉพาะที่จำเป็นสำหรับการวิเคราะห์การใช้ทรัพยากรของกระบวนการ df

autrace -r /usr/bin/df -h

สมมติว่าคุณได้ตรวจสอบโปรแกรมในช่วงหนึ่งสัปดาห์ที่ผ่านมา หมายความว่ามีข้อมูลจำนวนมากถูกทิ้งลงในบันทึกการตรวจสอบ หากต้องการจัดทำรายงานสำหรับบันทึกของวันนี้เท่านั้น ให้ใช้แฟล็ก ausearch -ts เพื่อระบุวันที่/เวลาเริ่มต้นสำหรับการค้นหา:

ausearch -ts today -p 2678 --raw | aureport -i -f

แค่นั้นแหละ! วิธีนี้ทำให้คุณสามารถติดตามและตรวจสอบกระบวนการ Linux เฉพาะโดยใช้เครื่องมือ autrace สำหรับข้อมูลเพิ่มเติม โปรดตรวจสอบ man page

คุณยังสามารถอ่านคำแนะนำที่เกี่ยวข้องและเป็นประโยชน์เหล่านี้ได้:

  1. Sysdig – เครื่องมือตรวจสอบและแก้ไขปัญหาระบบอันทรงพลังสำหรับ Linux
  2. BCC – เครื่องมือติดตามแบบไดนามิกสำหรับการตรวจสอบประสิทธิภาพของ Linux ระบบเครือข่ายและอื่นๆ
  3. 30 ตัวอย่าง 'ps Command' ที่มีประโยชน์สำหรับการตรวจสอบกระบวนการ Linux
  4. CPUTool – จำกัดและควบคุมการใช้งาน CPU ของกระบวนการใดๆ ใน Linux
  5. ค้นหากระบวนการที่ทำงานสูงสุดตามหน่วยความจำและการใช้งาน CPU สูงสุดใน Linux

นั่นคือทั้งหมดที่สำหรับตอนนี้! คุณสามารถถามคำถามหรือแบ่งปันความคิดเกี่ยวกับบทความนี้ผ่านทางความคิดเห็นด้านล่าง ในบทความถัดไป เราจะอธิบายวิธีกำหนดค่า PAM (Pluggable Authentication Module) สำหรับการตรวจสอบอินพุต TTY สำหรับผู้ใช้ที่ระบุ CentOS/RHEL