การใช้ journalctl ตรวจสอบ Log ของระบบ (System Logs)

การใช้ journalctl ตรวจสอบ Log ของระบบ (System Logs)

ในระบบ Linux รุ่นใหม่ที่ใช้ systemd เช่น Ubuntu Server, Rocky Linux หรือ Debian ระบบจะเก็บ Log ต่าง ๆ ไว้ใน systemd journal ซึ่งสามารถตรวจสอบได้ผ่านคำสั่ง journalctl โดยไม่จำเป็นต้องเปิดไฟล์ log ใน /var/log ทีละไฟล์เหมือนในอดีต

สำหรับผู้ดูแลระบบ (SysAdmin) คำสั่งนี้ถือเป็นเครื่องมือสำคัญมาก เพราะช่วยให้สามารถตรวจสอบเหตุการณ์ของระบบ บริการ (service) และข้อผิดพลาดต่าง ๆ ได้อย่างรวดเร็ว

บทความนี้จะอธิบายการใช้ journalctl แบบ Hands-on ที่สามารถนำไปใช้ตรวจสอบระบบจริงได้ทันที


1. ตรวจสอบ Log ทั้งหมดของระบบ

คำสั่งพื้นฐานที่สุดคือ

journalctl
 

คำสั่งนี้จะแสดง Log ทั้งหมดที่ถูกบันทึกใน systemd journal โดยเรียงตามเวลา

ตัวอย่างข้อมูลที่จะแสดง เช่น

  • การเริ่มต้นระบบ (Boot process)
  • การทำงานของ Service
  • Error ของ Kernel
  • Log ของ daemon ต่าง ๆ

หาก Log มีจำนวนมาก สามารถเลื่อนดูได้ด้วยปุ่ม

Space = เลื่อนลง
b = เลื่อนขึ้น
q = ออกจากหน้าจอ
 

2. แสดง Log ล่าสุดแบบ Real-time

หากต้องการดู Log แบบ Real-time เหมือนคำสั่ง tail -f

journalctl -f
 

ตัวเลือก -f (follow) จะทำให้ระบบแสดง Log ใหม่ทันทีที่เกิดขึ้น เหมาะสำหรับ

  • ตรวจสอบ Service ที่กำลัง Debug
  • ดู Log ขณะ Restart Service
  • Monitor ระบบแบบ Live


3. ตรวจสอบ Log ของ Service เฉพาะตัว

ผู้ดูแลระบบมักต้องตรวจสอบ Log ของ Service เช่น nginx, ssh, หรือ docker

ตัวอย่าง

journalctl -u nginx
 

หรือ

journalctl -u ssh
 

ความหมาย

-u = unit (service ของ systemd)
 

หากต้องการดูเฉพาะ Log ล่าสุด

journalctl -u nginx -n 50
 

คำอธิบาย

-n 50 = แสดง 50 บรรทัดล่าสุด
 

4. ตรวจสอบ Log ของ Boot ปัจจุบัน

บางครั้งต้องการดูเฉพาะ Log หลังจากเครื่องบูตครั้งล่าสุด

journalctl -b
 

ถ้าต้องการดู Log ของ Boot ก่อนหน้า

journalctl -b -1
 

ตัวอย่างเพิ่มเติม

journalctl -b -2
 

ความหมาย

-b = boot
-1 = boot ก่อนหน้า
 

เหมาะสำหรับการวิเคราะห์ปัญหา เช่น

  • Server reboot เอง
  • Service ล้มตอน boot

5. ตรวจสอบเฉพาะ Error ของระบบ

หากต้องการดูเฉพาะ Error หรือ Warning

journalctl -p err
 

ระดับของ Log มีหลายระดับ เช่น

Level ความหมาย
emerg ระบบล่ม
alert ต้องแก้ไขทันที
crit critical error
err error
warning warning
info ข้อมูลทั่วไป

ตัวอย่าง

journalctl -p warning
 
 

6. ตรวจสอบ Log ตามช่วงเวลา

สามารถค้นหา Log ตามช่วงเวลาได้ เช่น

journalctl –since “2026-04-10”
 

หรือ

journalctl –since “1 hour ago”
 

ตัวอย่างเพิ่มเติม

journalctl –since “today”
 

หรือกำหนดช่วงเวลา

journalctl –since “2026-04-10 10:00:00” –until “2026-04-10 12:00:00”
 

7. ตรวจสอบ Kernel Log

สำหรับดู Log ของ Kernel โดยเฉพาะ

journalctl -k
 

– เหมาะสำหรับตรวจสอบ

  • Hardware error
  • Driver problem
  • Kernel panic


8. แสดง Log แบบไม่ตัดบรรทัด

บางครั้ง Log ยาวเกินไป ทำให้ถูกตัด

  • สามารถใช้
journalctl -xe
 

หรือ

journalctl -o cat
 

เพื่อแสดงข้อมูลเต็ม


ตัวอย่างการใช้งานจริงของ SysAdmin

  • ตัวอย่างการตรวจสอบ Service ที่มีปัญหา
systemctl status nginx
 
  • หากพบ Error สามารถตรวจสอบ Log เพิ่มเติม
journalctl -u nginx -f
 

จะเห็นรายละเอียด Error แบบทันที


สรุป

journalctl เป็นเครื่องมือสำคัญสำหรับผู้ดูแลระบบ Linux เพราะช่วยให้สามารถตรวจสอบ Log ของระบบและ Service ต่าง ๆ ได้อย่างรวดเร็วผ่าน systemd journal โดยไม่ต้องเปิดไฟล์ log ทีละไฟล์เหมือนระบบแบบเดิม

ผู้ดูแลระบบสามารถใช้คำสั่งนี้เพื่อตรวจสอบ Error วิเคราะห์ปัญหาระบบ และติดตามการทำงานของ Service ได้แบบ Real-time ซึ่งเป็นทักษะพื้นฐานที่ SysAdmin ทุกคนควรใช้งานได้คล่อง