Danh mục sản phẩm
CLI Diagnostic Nâng Cao FortiGate — diagnose sys, get system performance
1. Liên hệ thực tế
Một buổi chiều, anh Nam nhận báo cáo từ khách hàng rằng FortiGate "đơ", GUI load rất chậm, thỉnh thoảng không truy cập được. Anh không vội khởi động lại thiết bị — thói quen đó chỉ che giấu vấn đề chứ không giải quyết nó. Thay vào đó, anh SSH vào CLI và chạy một loạt lệnh chẩn đoán nhanh để xác định thiết bị đang "bệnh" ở đâu: CPU, RAM, hay số lượng session.
FGT # get system performance status CPU states: 0% user 2% system 0% nice 98% idle Memory states: 79% used ...
Kết quả cho thấy CPU vẫn bình thường nhưng memory đã ở mức cao. Anh tiếp tục đào sâu bằng diagnose sys top để xem tiến trình nào đang ngốn RAM, phát hiện tiến trình ipsengine (IPS) đang dùng bất thường nhiều tài nguyên do một rule signature update lỗi. Toàn bộ quá trình chẩn đoán chỉ mất vài phút nhờ nắm vững bộ lệnh diagnose sys — nhanh hơn rất nhiều so với việc đoán mò hay khởi động lại thiết bị.
Chị Lan nhắc anh Nam: "Nhóm lệnh diagnose là con dao mổ của kỹ sư FortiGate. GUI cho em bức tranh tổng quan, nhưng khi cần biết chính xác cái gì đang xảy ra bên trong hệ thống ở mức tiến trình, CLI luôn là nơi câu trả lời nằm ở đó."
2. Kiến thức cốt lõi
2.1 Bốn nhóm lệnh chẩn đoán trên FortiOS
Như đã giới thiệu ở Giao diện quản trị FortiGate tại Nhóm 1, FortiOS chia lệnh CLI thành 4 nhóm chính: config, get, show, diagnose/execute. Bài này tập trung sâu vào nhóm diagnose sys — nhóm lệnh chẩn đoán hệ thống mức thấp, không dùng để cấu hình mà chỉ để quan sát trạng thái runtime của thiết bị.
2.2 Kiểm tra hiệu năng tổng quan
get system performance status
Lệnh này cho biết nhanh: % CPU theo user/system/nice/idle, % memory đang dùng, uptime, số lượng session hiện tại, và tải trung bình (average network usage). Đây thường là lệnh đầu tiên chạy khi nghi ngờ thiết bị quá tải.
get system performance top
Hiển thị top các tiến trình (daemon) đang tiêu tốn CPU nhiều nhất, làm mới liên tục như lệnh top trên Linux — hữu ích để xác định ngay tiến trình nào là "thủ phạm" (ví dụ ipsengine, httpsd, miglogd...).
2.3 diagnose sys top — chi tiết tiến trình và RAM
diagnose sys top
Khác với get system performance top (chủ yếu về CPU), diagnose sys top hiển thị bảng chi tiết theo từng tiến trình gồm: PID, tên tiến trình, trạng thái (Run/Sleep), CPU%, và Memory (số trang bộ nhớ tiến trình đang giữ). Có thể nhấn phím q để thoát, hoặc dùng tùy chọn:
diagnose sys top 5
Trong đó 5 là số giây làm mới — hữu ích khi cần theo dõi biến động theo thời gian thay vì chỉ xem một lần.
2.4 diagnose hardware sysinfo — thông tin phần cứng và conserve mode
diagnose hardware sysinfo memory diagnose hardware sysinfo conserve
Lệnh conserve cho biết chi tiết các ngưỡng bộ nhớ (threshold red/green/extreme) và trạng thái conserve mode hiện tại — sẽ được phân tích sâu ở bài Performance tuning cơ bản cuối Nhóm 7.
2.5 diagnose sys session — tổng quan bảng session
diagnose sys session stat diagnose sys session list
session stat cho số liệu tổng hợp nhanh (tổng session, session đã dùng theo giao thức...), còn session list liệt kê chi tiết từng session — sẽ được khai thác sâu ở bài Session table & Session TTL riêng trong Nhóm 7 này.
2.6 diagnose sys mode / status — xác nhận trạng thái hệ thống cơ bản
get system status diagnose sys ha status
get system status cho biết version FortiOS, serial number, chế độ vận hành (NAT hay Transparent), và trạng thái VDOM — lệnh nền tảng nên chạy đầu tiên khi tiếp cận một thiết bị lạ để nắm bối cảnh trước khi đào sâu. diagnose sys ha status kiểm tra nhanh trạng thái cluster HA nếu thiết bị đang chạy chế độ FGCP (đã học ở Nhóm 5).
2.7 Bảng tổng hợp lệnh diagnose sys thường dùng
| Lệnh | Mục đích |
|---|---|
get system performance status |
Tổng quan CPU/Memory/Session nhanh |
diagnose sys top |
Chi tiết tiến trình theo CPU/Memory, real-time |
diagnose hardware sysinfo conserve |
Ngưỡng và trạng thái conserve mode |
diagnose sys session stat |
Số liệu tổng hợp bảng session |
diagnose debug crashlog read |
Đọc log crash nếu daemon từng bị restart bất thường |
diagnose sys flash list |
Kiểm tra dung lượng flash/disk còn trống |
⚠️ Lưu ý: Nhóm lệnh
diagnose debug(bao gồmdiagnose debug flow) là một nhóm con riêng biệt, chuyên sâu về debug luồng xử lý gói tin — sẽ học chi tiết ở bài Debug Flow & Flow Trace, không nằm trong phạm vi chẩn đoán hiệu năng hệ thống của bài này.
2.8 Nguyên tắc an toàn khi chạy lệnh diagnose trên production
- Các lệnh liệt kê ở trên đều chỉ đọc trạng thái, không thay đổi cấu hình, nên an toàn chạy trên thiết bị đang production.
- Tuy nhiên,
diagnose sys topvà các lệnh làm mới liên tục nên thoát đúng cách bằngqhoặc Ctrl+C, tránh để treo phiên CLI kéo dài không cần thiết. - Khi copy log/kết quả để gửi hỗ trợ Fortinet TAC hoặc lưu hồ sơ sự cố, nên chạy đồng thời
get system statusđể đính kèm bối cảnh (version, serial) — kết quảdiagnoseđơn lẻ không có ý nghĩa nếu thiếu thông tin phiên bản/model đi kèm.
3. Hỏi & Đáp
get system performance status và diagnose sys top khác nhau ở điểm nào, khi nào dùng lệnh nào?
get system performance status cho bức tranh tổng quan toàn hệ thống (một lần, không real-time liên tục), phù hợp kiểm tra nhanh ban đầu. diagnose sys top đi sâu vào từng tiến trình và có thể theo dõi liên tục theo thời gian thực, phù hợp khi đã xác định có vấn đề và cần tìm chính xác tiến trình nào là nguyên nhân.
Chạy các lệnh diagnose sys có ảnh hưởng tới traffic đang chạy qua FortiGate không?
Không, các lệnh chẩn đoán liệt kê trong bài này chỉ đọc trạng thái hệ thống, không can thiệp vào luồng xử lý gói tin hay cấu hình, nên an toàn tuyệt đối để chạy trên thiết bị production đang phục vụ traffic thật.
Nếu memory luôn ở mức cao dù không có sự cố gì rõ ràng, có đáng lo không?
Cần xem tỷ lệ % cụ thể và đối chiếu với ngưỡng conserve mode (diagnose hardware sysinfo conserve) thay vì chỉ nhìn con số tổng. Nhiều model FortiGate hoạt động bình thường ở mức 60-70% memory used do cơ chế cache — chỉ thực sự đáng lo khi vượt ngưỡng red/extreme hoặc tăng liên tục không giảm.
4. Quiz
Câu 1: Lệnh nào cho bức tranh tổng quan nhanh nhất về CPU/Memory/Session của FortiGate?
- A.
diagnose sys top - B.
get system performance status - C.
diagnose debug flow - D.
diagnose sys session list
Câu 2: Muốn xác định chính xác tiến trình (process) nào đang chiếm nhiều RAM nhất, nên dùng lệnh nào?
- A.
get system status - B.
diagnose sys top - C.
diagnose sys flash list - D.
get system interface physical
Câu 3: Lệnh nào cho biết ngưỡng và trạng thái conserve mode hiện tại?
- A.
diagnose hardware sysinfo conserve - B.
diagnose sys session stat - C.
get system performance top - D.
diagnose debug crashlog read
Câu 4: Các lệnh diagnose sys liệt kê trong bài này có đặc điểm chung nào?
- A. Đều thay đổi cấu hình runtime của FortiGate
- B. Chỉ đọc trạng thái, an toàn chạy trên production
- C. Bắt buộc phải reboot thiết bị sau khi chạy
- D. Chỉ hoạt động khi FortiGate ở chế độ Transparent
👉 Đáp án
Câu 1: B get system performance status là lệnh tổng quan nhanh nhất, phù hợp làm bước kiểm tra đầu tiên.
Câu 2: B diagnose sys top liệt kê chi tiết CPU/Memory theo từng tiến trình cụ thể.
Câu 3: A Đây là lệnh chuyên dụng hiển thị các ngưỡng red/green/extreme và trạng thái conserve mode.
Câu 4: B Toàn bộ các lệnh diagnose sys trong bài chỉ đọc trạng thái hệ thống, không can thiệp cấu hình hay traffic.
📚 Bài viết thuộc khóa học FortiGate của VNExperts
🧭 Điều hướng
| ⬅️ Bài trước | 🏠 Mục lục khóa học | Bài kế tiếp ➡️ |
|---|---|---|
| Log & Report — cấu hình gửi log | Mục lục khóa học FortiGate | Packet Capture trên FortiGate |
