Giám sát CPU và Bộ nhớ trong Linux
Việc giám sát tài nguyên hệ thống không chỉ quan trọng trong quản trị vận hành, mà còn là một kỹ thuật phát hiện sớm các sự cố bảo mật.
Một máy chủ bị tiêu thụ tài nguyên bất thường có thể là dấu hiệu của:
1. Giám sát theo thời gian thực với top
Lệnh top hiển thị liên tục tình trạng CPU, RAM, tiến trình và các chỉ số tải hệ thống.
Ví dụ, để theo dõi một tiến trình cụ thể qua PID:
top -p 892
Đầu ra được rút gọn chỉ còn thông tin của PID 892, giúp dễ dàng tập trung phân tích.
Nếu chưa biết PID, bạn có thể tìm bằng pidof:
pidof sshd
Kết quả trả về nhiều PID nếu dịch vụ có nhiều phiên bản đang chạy.
2. Kiểm tra lỗi truy cập bộ nhớ với ps
Trong Linux, khi bộ nhớ vật lý thiếu, hệ thống sẽ truy cập swap (trên đĩa) – điều này làm giảm hiệu năng.
Ta có thể dùng ps để xem major page faults – lỗi khi tiến trình cần dữ liệu nhưng phải lấy từ swap:
ps -o maj_flt 892
3. Phân tích sâu với vmstat
Lệnh vmstat cho phép xem trạng thái bộ nhớ, swap, I/O, tiến trình, và CPU theo chu kỳ:
vmstat 2
Cột dữ liệu chính:
Ví dụ trong đầu ra ở trên, hệ thống không dùng swap và CPU gần như rảnh → tải hệ thống thấp.
4. Ứng dụng trong bảo mật & vận hành
💡 Kinh nghiệm thực chiến:
Luôn so sánh dữ liệu giám sát hiện tại với baseline (dữ liệu hiệu năng bình thường) của máy chủ. Sự khác biệt đột ngột là tín hiệu vàng để khoanh vùng sự cố trước khi nó leo thang.
Việc giám sát tài nguyên hệ thống không chỉ quan trọng trong quản trị vận hành, mà còn là một kỹ thuật phát hiện sớm các sự cố bảo mật.
Một máy chủ bị tiêu thụ tài nguyên bất thường có thể là dấu hiệu của:
- Tấn công từ chối dịch vụ (DoS/DDoS)
- Máy chủ bị chiếm quyền điều khiển (ví dụ: dùng để gửi spam, khai thác tiền ảo, hoặc làm botnet)
1. Giám sát theo thời gian thực với top
Lệnh top hiển thị liên tục tình trạng CPU, RAM, tiến trình và các chỉ số tải hệ thống.
Ví dụ, để theo dõi một tiến trình cụ thể qua PID:
top -p 892
Đầu ra được rút gọn chỉ còn thông tin của PID 892, giúp dễ dàng tập trung phân tích.
Nếu chưa biết PID, bạn có thể tìm bằng pidof:
pidof sshd
Kết quả trả về nhiều PID nếu dịch vụ có nhiều phiên bản đang chạy.
2. Kiểm tra lỗi truy cập bộ nhớ với ps
Trong Linux, khi bộ nhớ vật lý thiếu, hệ thống sẽ truy cập swap (trên đĩa) – điều này làm giảm hiệu năng.
Ta có thể dùng ps để xem major page faults – lỗi khi tiến trình cần dữ liệu nhưng phải lấy từ swap:
ps -o maj_flt 892
- Số lượng maj_flt cao → có thể hệ thống đang thiếu RAM hoặc tiến trình hoạt động bất thường.
- Lỗi page fault là bình thường ở mức thấp, nhưng nếu tăng đột biến → cần điều tra.
3. Phân tích sâu với vmstat
Lệnh vmstat cho phép xem trạng thái bộ nhớ, swap, I/O, tiến trình, và CPU theo chu kỳ:
vmstat 2
Cột dữ liệu chính:
- procs – số tiến trình đang chạy (r) hoặc ngủ không ngắt được (b)
- memory – RAM khả dụng (free), RAM đệm (buff), RAM cache (cache), RAM dùng làm swap (swpd)
- swap – dữ liệu swap vào (si) và swap ra (so)
- io – tốc độ đọc (bi) và ghi (bo) từ thiết bị khối
- system – số ngắt (in), số lần chuyển ngữ cảnh (cs)
- cpu – thời gian CPU cho user (us), kernel (sy), idle (id), chờ I/O (wa), steal (st)
Ví dụ trong đầu ra ở trên, hệ thống không dùng swap và CPU gần như rảnh → tải hệ thống thấp.
4. Ứng dụng trong bảo mật & vận hành
- SOC có thể dùng các chỉ số này để phát hiện tiến trình bất thường tiêu thụ CPU/memory đột biến.
- Kỹ sư hệ thống có thể chủ động cấu hình cảnh báo (alert) dựa trên giá trị CPU load, swap usage.
- Khi điều tra sự cố (incident response), kết hợp top, ps, vmstat với các công cụ như lsof hoặc netstat để tìm nguồn gốc tiến trình đáng ngờ.
💡 Kinh nghiệm thực chiến:
Luôn so sánh dữ liệu giám sát hiện tại với baseline (dữ liệu hiệu năng bình thường) của máy chủ. Sự khác biệt đột ngột là tín hiệu vàng để khoanh vùng sự cố trước khi nó leo thang.