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
- Kiểm tra Nginx:
systemctl status nginx. - Đọc Nginx error log:
tail -n 100 /var/log/nginx/error.log. - Kiểm tra backend app còn chạy không.
- Kiểm tra port backend:
ss -tulpn. - Đọ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
- Xác định service liên quan.
- Xác định thời điểm lỗi.
- Lọc log theo service và thời gian.
- Tìm error đầu tiên.
- Đối chiếu với thay đổi gần nhất.
- Ghi lại nguyên nhân và cách xử lý.
9. Bài tập
- Chạy
journalctl -p err --since today. - Đọc log SSH trong ngày hôm nay.
- Tìm một file log trong
/var/logvà xem 50 dòng cuối. - Viết quy trình xử lý lỗi 502 bằng log.
Hoàn thành Giai đoạn 1: Anh đã có nền tảng Linux để chuyển sang SSH, firewall, network và dịch vụ hệ thống.
