Bài 08: Log hệ thống và cách đọc lỗi

Bài 08: Log hệ thống và cách đọc lỗi

Bài này giúp anh đọc log Linux có phương pháp: biết log nằm ở đâu, lọc theo thời gian, theo service và tìm nguyên nhân lỗi.

Sau bài này anh sẽ biết:

  • Log hệ thống thường nằm ở đâu.
  • Dùng journalctl, tail, grep.
  • Đọc log theo thời gian và theo service.
  • Xử lý sự cố theo log thay vì đoán mò.

1. Log là gì?

Log là nhật ký sự kiện của hệ thống hoặc ứng dụng. Khi service lỗi, log thường là nơi cho biết chuyện gì đã xảy ra.

2. Nơi thường đọc log

Nơi Ý nghĩa
journalctl Log từ systemd journal
/var/log/syslog Log hệ thống Ubuntu/Debian
/var/log/messages Log hệ thống RHEL/Rocky
/var/log/auth.log Login/SSH trên Ubuntu
/var/log/nginx/error.log Lỗi Nginx

3. Lab: đọc log bằng journalctl

journalctl -p err --since "1 hour ago"
journalctl -u ssh --since "today" || journalctl -u sshd --since "today"
journalctl -u nginx -f

--since giúp giới hạn thời gian. -u lọc theo service. -f theo dõi realtime.

4. Lab: đọc file log bằng tail/grep

sudo tail -n 100 /var/log/syslog
sudo grep -i "error" /var/log/syslog | tail
sudo tail -f /var/log/nginx/error.log

tail -n 100 xem 100 dòng cuối. grep -i tìm không phân biệt hoa thường.

5. Tình huống thực tế: web trả 502

  1. Kiểm tra Nginx: systemctl status nginx.
  2. Đọc Nginx error log: tail -n 100 /var/log/nginx/error.log.
  3. Kiểm tra backend app còn chạy không.
  4. Kiểm tra port backend: ss -tulpn.
  5. Đọc log backend.

6. Cách đọc log không bị rối

  • Luôn xác định thời điểm lỗi xảy ra.
  • Lọc log quanh thời điểm đó.
  • Tìm dòng error đầu tiên, không chỉ dòng cuối.
  • So sánh trước/sau deploy hoặc restart.
  • Ghi lại keyword lỗi để tra cứu.

7. Lỗi thường gặp

  • Chỉ đọc 5 dòng cuối nên bỏ qua nguyên nhân thật.
  • Thấy warning là tưởng lỗi chính.
  • Không biết timezone log.
  • Restart service làm mất dấu vết tạm thời.
Lưu ý production: Khi incident xảy ra, hãy copy hoặc ghi lại log quan trọng trước khi restart/xóa file.

8. Checklist đọc log

  1. Xác định service liên quan.
  2. Xác định thời điểm lỗi.
  3. Lọc log theo service và thời gian.
  4. Tìm error đầu tiên.
  5. Đối chiếu với thay đổi gần nhất.
  6. Ghi lại nguyên nhân và cách xử lý.

9. Bài tập

  1. Chạy journalctl -p err --since today.
  2. Đọc log SSH trong ngày hôm nay.
  3. Tìm một file log trong /var/log và xem 50 dòng cuối.
  4. Viết quy trình xử lý lỗi 502 bằng log.

Tác giả: Mạnh Hoàng

Tôi là Hoàng Mạnh, người sáng lập blog SysadminSkills.com. Tôi viết về quản trị hệ thống, bảo mật máy chủ, DevOps và cách ứng dụng AI để tự động hóa công việc IT. Blog này là nơi tôi chia sẻ những gì đã học được từ thực tế – đơn giản, ngắn gọn và áp dụng được ngay.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *