journalctl และ systemd journal
journalctl คือคำสั่งสำหรับอ่าน systemd journal ซึ่งเป็นที่เก็บข้อมูลบันทึกแบบไบนารีที่ใช้ใน Linux ส่วนใหญ่ในปัจจุบัน สามารถกรองข้อความตามบริการ การบูต เวลา และระดับความสำคัญ อีกทั้งยังสามารถรายงานและจำกัดการใช้งานดิสก์ของ journal ซึ่งมักจะขยายขนาดจนถึงหลายกิกะไบต์ใน /var/log/journal
1การอ่านบันทึก
journalctl -u nginx.service ใช้แสดงข้อความของหน่วยบริการหนึ่งๆ -b จำกัดผลลัพธ์เฉพาะการบูตปัจจุบัน -b -1 สำหรับการบูตครั้งก่อนหน้า -p err แสดงเฉพาะข้อผิดพลาดและระดับที่แย่กว่า '--since "1 hour ago"' จำกัดตามเวลา และ -f ใช้ติดตามข้อความใหม่แบบเรียลไทม์
2การใช้งานดิสก์
journalctl --disk-usage แสดงขนาดรวมของไฟล์ journal ทั้งแบบใช้งานอยู่และที่เก็บถาวร
--vacuum-size=, --vacuum-time= และ --vacuum-files= จะลบไฟล์ journal ที่เก็บถาวรออกจนกว่าจะถึงขีดจำกัดที่กำหนด โดยจะไม่ยุ่งกับไฟล์ที่กำลังใช้งานอยู่
3การจำกัดถาวร
การจำกัดสามารถตั้งค่าได้ใน /etc/systemd/journald.conf เช่น SystemMaxUse=500M จากนั้นนำไปใช้ด้วย systemctl restart systemd-journald หากไม่มีการตั้งค่า journald จะเก็บ journal ไว้ภายใน 10% ของขนาดระบบไฟล์โดยค่าเริ่มต้น และจำกัดไว้สูงสุดที่ 4 GB
วิธีลดขนาด journal
- ตรวจสอบขนาด:
journalctl --disk-usage - หมุนไฟล์ที่ใช้งานอยู่เพื่อให้สามารถล้างข้อมูลได้:
sudo journalctl --rotate - เก็บไว้เพียงสองสัปดาห์:
sudo journalctl --vacuum-time=2weeks - หรือเก็บไว้สูงสุด 500 MB:
sudo journalctl --vacuum-size=500M - หากต้องการให้เป็นค่าถาวร ให้ตั้งค่า SystemMaxUse=500M ใน
/etc/systemd/journald.confแล้วรัน:sudo systemctl restart systemd-journald
ข้อควรระวัง
- บันทึกที่ถูกล้างจะหายไป ควรเก็บประวัติไว้ให้เพียงพอสำหรับการตรวจสอบปัญหา
- ห้ามลบไฟล์ใน
/var/log/journalด้วยตนเองในขณะที่ journald กำลังทำงาน
บทความที่เกี่ยวข้อง
- logrotateการทำงานของ logrotate วิธีการตั้งค่าใน /etc/logrotate.conf และ /etc/logrotate.d รวมถึงวิธีทดสอบกฎอย่างปลอดภัย
- การใช้งานดิสก์ด้วย du และ ncduวิธีค้นหาว่าสิ่งใดทำให้ดิสก์ Linux เต็มด้วย du และ ncdu แบบโต้ตอบ พร้อมตัวเลือกที่จำกัดการทำงานอยู่ภายในระบบไฟล์เดียว
- df (disk free)วิธีอ่านผลลัพธ์จากคำสั่ง df, เหตุผลที่ Use% อาจถึง 100% ก่อนที่ Avail จะเป็นศูนย์สำหรับผู้ใช้ทั่วไป และวิธีตรวจสอบ inode ด้วย df -i
แหล่งอ้างอิง
- journalctl(1) man7.org
- journald.conf(5) man7.org
หมายเหตุ: RainServer นำเสนอการตรวจสอบและการล้างข้อมูลอย่างปลอดภัยสำหรับ Linux เซิร์ฟเวอร์ โดยจะแสดงสิ่งที่กำลังจะเปลี่ยนแปลงและขออนุญาตก่อนเสมอ
ตรวจสอบล่าสุด: