วิธีตรวจสอบกระบวนการ 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
คุณยังสามารถอ่านคำแนะนำที่เกี่ยวข้องและเป็นประโยชน์เหล่านี้ได้:
- Sysdig – เครื่องมือตรวจสอบและแก้ไขปัญหาระบบอันทรงพลังสำหรับ Linux
- BCC – เครื่องมือติดตามแบบไดนามิกสำหรับการตรวจสอบประสิทธิภาพของ Linux ระบบเครือข่ายและอื่นๆ
- 30 ตัวอย่าง 'ps Command' ที่มีประโยชน์สำหรับการตรวจสอบกระบวนการ Linux
- CPUTool – จำกัดและควบคุมการใช้งาน CPU ของกระบวนการใดๆ ใน Linux
- ค้นหากระบวนการที่ทำงานสูงสุดตามหน่วยความจำและการใช้งาน CPU สูงสุดใน Linux
นั่นคือทั้งหมดที่สำหรับตอนนี้! คุณสามารถถามคำถามหรือแบ่งปันความคิดเกี่ยวกับบทความนี้ผ่านทางความคิดเห็นด้านล่าง ในบทความถัดไป เราจะอธิบายวิธีกำหนดค่า PAM (Pluggable Authentication Module) สำหรับการตรวจสอบอินพุต TTY สำหรับผู้ใช้ที่ระบุ CentOS/RHEL