Việc máy chủ Ubuntu bị treo cứng (freeze), không thể SSH và phải hard reset (ngắt nguồn) thường do 3 nguyên nhân chính: tràn RAM (Out of Memory), lỗi Kernel (Kernel Panic), hoặc lỗi phần cứng.
Vì bạn đã hard reset, dữ liệu trong RAM đã mất. Bạn cần tìm các log được ghi lại trên ổ cứng ngay trước thời điểm máy bị treo. Dưới đây là quy trình kiểm tra chi tiết:
1. Sử dụng journalctl (Quan trọng nhất)
Trên Ubuntu hiện đại (sử dụng systemd), journalctl là nơi lưu trữ log tập trung. Lệnh quan trọng nhất để xem log của lần khởi động trước (trước khi bạn reset máy) là:
-b -1: Xem log của boot session trước đó (lần chạy máy bị treo).
-e: Jump to end (nhảy xuống cuối log, nơi các lỗi cuối cùng thường xuất hiện trước khi sập).
Bạn cần tìm gì ở đây?
Hãy dùng phím mũi tên lên để lội ngược dòng thời gian. Tìm các từ khóa màu đỏ hoặc các dòng có nội dung:
Out of memory / OOM Killer: Máy hết RAM và Linux kernel bắt đầu giết tiến trình (thường giết luôn sshd).
Kernel panic hoặc Call Trace: Lỗi nghiêm trọng của hệ điều hành hoặc driver.
Hardware Error: Lỗi phần cứng.
2. Kiểm tra các file log truyền thống
Nếu journalctl không lưu log cũ (do cấu hình), hãy kiểm tra các file text trong thư mục /var/log.
a. Kiểm tra log hệ thống (Syslog):
Đây là nơi ghi lại hoạt động chung. Bạn cần tìm thời điểm thời gian khớp với lúc máy bị treo.
(Lưu ý: Ubuntu có thể đổi tên file thành syslog.1 hoặc nén lại).
b. Kiểm tra log Kernel (Kern.log):
Nơi chứa các thông báo từ nhân Linux (rất quan trọng cho lỗi treo máy).
Hãy tìm dòng Out of memory: Kill process.... Đây là thủ phạm phổ biến nhất khiến SSH bị disconnect và console không phản hồi.
c. Kiểm tra log xác thực (Auth.log):
Để chắc chắn không phải do bị tấn công (Brute-force SSH) khiến máy quá tải:
3. Các kịch bản phổ biến và dấu hiệu nhận biết
| Dấu hiệu trong Log | Nguyên nhân dự đoán | Cách khắc phục |
| Out of memory: Kill process (sshd/mysql/java...) | Máy hết RAM. OOM Killer giết tiến trình SSH để cứu hệ thống nhưng thất bại. | Tạo thêm Swap file hoặc nâng cấp RAM. Dùng htop để theo dõi. |
| Dòng log đột ngột dừng lại (không có báo lỗi) | Máy bị treo cứng phần cứng (CPU/Power) hoặc Kernel Panic quá nhanh không kịp ghi log. | Kiểm tra nguồn điện, nhiệt độ CPU, hoặc RAM. |
| EXT4-fs error (device sda1): ... | Ổ cứng bị lỗi (Read-only filesystem). | Backup dữ liệu ngay lập tức và kiểm tra ổ cứng. |
| Call Trace: [ ... ] | Lỗi Driver hoặc Module Kernel. | Cập nhật Kernel hoặc kiểm tra driver thiết bị ngoại vi mới cài. |
4. Nếu Log hoàn toàn trống trơn (Log dừng đột ngột)
Nếu thời gian trong log dừng lại trước khi bạn reset khoảng vài tiếng mà không có lỗi gì, khả năng cao là lỗi phần cứng khiến máy "đóng băng" tức thì khiến ổ cứng không kịp ghi dữ liệu.
Lúc này hãy cài đặt các công cụ theo dõi cho lần sau:
a. Cài đặt SAR (System Activity Report):
Công cụ này ghi lại lịch sử sử dụng CPU/RAM mỗi 10 phút. Nếu máy treo, bạn có thể xem lại lúc đó RAM/CPU có bị spike (tăng vọt) không.
b. Kiểm tra ổ cứng (S.M.A.R.T):
Tìm dòng Reallocated_Sector_Ct hoặc Current_Pending_Sector. Nếu khác 0, ổ cứng sắp hỏng.
c. Kiểm tra nhiệt độ (Overheating):
Bước tiếp theo đề xuất
Bạn hãy thử chạy lệnh sau và dán kết quả 20 dòng cuối cùng vào đây, tôi sẽ giúp bạn phân tích cụ thể: