Mục đích tài liệu
“Tài liệu hướng dẫn hướng dẫn xử lý sự cố liên quan đến Performance của FortiGate” được sử dụng trong việc troubleshoot nhằm:
- Hướng dẫn người quản trị cách thức thu tập thông tin liên quan đến Performance của FortiGate.
- Hướng dẫn người quản trị cách thức xử lí sự cố liên quan đến Performance của FortiGate
Nội dung tài liệu
Tài liệu gồm 2 phần chính:
- Hướng dẫn thu thập thông tin liên quan đến performance của FortiGate.
- Hướng dẫn cấu hình, xử lí sự cố về performance của FortiGate.
Đối tượng tài liệu
Đối tượng sử dụng tài liệu là người quản trị thiết bị tường lửa FortiGate.
1. Thu tập thông tin
Thiết lập để sử dụng Putty nhằm lưu lại tất cả output của lệnh vào file
Step 1: Sử dụng phần mềm Putty để SSH vào thiết bị FortiGate |
|
Step 2: Chọn Session | Logging |
|
Step 3: Kết quả
|
Ta thấy rằng có 1 file log được tạo ra trên desktop hay các vị trí mà ta đã chỉ định. File log chứa toàn thông tin về các lệnh ta đã nhập vào cũng như output của các lệnh đó. |
Sử dụng CLI ( dòng lệnh ) để thu thập thông tin
Khi ta vào mục Log and Report, mục Event, ta nhận được thông tin log như sau
date=2017-08-15 time=20:00:09 logid="0100040705" type="event" subtype="system" level="notice" vd="root" eventtime=1565835609989942202 tz="-0400" logdesc="CPU usage statistics" action="cpu-usage" cpu=93 msg="CPU usage reaches: 93"
Tuy nhiên, các log hiển thị trên GUI chỉ cho biết CPU đang cao bao nhiêu, không chỉ ra process nào đang chạy và sử dụng bao nhiêu. Để có thông số chính xác hiệu năng sử dụng tổng thể và của từng process, ta cần sử dụng CLI.
Việc thu thập log này rất quan trọng để kiểm tra và mở ticket với TAC.
Các câu lệnh ta cần thực hiện trên CLI để thu thập log liên quan đến Performance
Phần này dành cho các quản trị viên có quyền super_admin. Các quản trị viên với các loại quyền khác có thể không thể thực hiện tất cả các tác vụ trong phần này.
#config global (nếu có vdom)
#get system status
#get sys perf status
#diag hard sysinfo shm
#diag sys top 5 40 (nhấn "shift+m" và chờ 10 giây, nhấn "shift+p" và chờ 10 giây, sau đó nhấn "q" để dừng câu lệnh sys top)
#diag sys top-summary '-s mem -i 5 -n 20' (kết quả theo memory, chờ 60 giây, sau đó nhấn "q" để dừng lệnh sys top-summary)
#diag sys flash list
#diag hard sysinfo memory
#diag sys session full-stat
#diag hardware sysinfo slab
#diag hardware deviceinfo disk
#get system auto-update versions
#fnsysctl ps
#diag debug crashlog read
Note: Các lệnh bôi đen đã bao gồm trong câu lệnh execute tac report (chi tiết bên dưới)
TAC (Technical Assistance Center) report
Câu lệnh ‘execute tac report’ có thể được dùng để thu thập các thông tin phục vụ cho việc chuẩn đoán vấn đề trên FortiGate
TAC report sẽ thu thập các thông tin hữu ích như sau:
- Serial number
- Firmware version
- FortiGuard updates state
- Memory and CPU usage
- Global configuration
- Hardware features
- Interface errors
- Traffic statistics
- HA diagnostics
- Process crash log
Các bước thực hiện
Quá trình sử dụng các câu lệnh bên dưới để thu thập log vào đúng thời điểm vấn đề đang diễn ra.
Step 1: Sử dụng phần mềm Putty để mở 2 SSH session vào thiết bị FortiGate
( tham khảo: Thiết lập để sử dụng Putty nhằm lưu lại tất cả output của lệnh vào file )
| SSH1: SSH2: |
Step 2:
SSH1 | Thực hiện lệnh: #config global (nếu có vdom) execute tac report |
Step 3: SSH2
| Thực hiện các lệnh:
#config global (nếu có vdom)
diag sys top 5 40 (nhấn "shift+m" và chờ 10 giây, nhấn "shift+p" và chờ 10 giây, sau đó nhấn "q" để dừng câu lệnh sys top)
diag sys top-summary '-s mem -i 5 -n 20' (kết quả theo memory, chờ 60 giây, sau đó nhấn "q" để dừng lệnh sys top-summary)
diag sys session full-stat
diag hardware sysinfo slab
diag hardware deviceinfo disk
fnsysctl ps
|
2. Xử lí sự cố
Nếu ta triển khai quá nhiều tính năng trên FortiOS cùng một lúc, tài nguyên CPU của FortiGate bị quá mức sẽ dẫn đến các sự cố liên quan đến kết nối như rớt gói tin…
Các tính năng sử dụng nhiều CPU như:
- VPN high-level encryption
- Scan toàn bộ traffic
- Lưu log toàn bộ traffic và gói tin
- Dashboard widgets
Dưới đây là một số best practices, có thể áp dụng để làm giảm mức sử dụng CPU của bạn, ngay cả khi FortiGate không gặp phải tình trạng sử dụng CPU cao. Lưu ý rằng nếu thông tin sau hướng dẫn bạn tắt một tính năng mà ta cần, hãy bỏ qua phần hướng dẫn đó.
Tránh sử dụng các GUI widget cần sử dụng nhiều tài nguyên
Ví dụ điển hình là Top Sessions widget. Các widget này thường xuyên kiểm tra hệ thống để lấy thông tin hiển thị trên GUI, do đó tiêu tốn CPU và các tài nguyên khác.
Lập lịch update antivirus, IPS và firmware tránh giờ cao điểm.
Các loại update này thường không sử dụng nhiều CPU, nhưng có thể làm gián đoạn traffic trong thời gian ngắn.
Kiểm tra log levels và các event nào được lưu lại.
Có các mức độ (severity) để lưu log.
Ta có thể xem xét việc nâng lên 1 level để giảm số lượng log lại.
Levels | Description |
0 - Emergency | The system has become unstable. |
1 - Alert | Immediate action is required. |
2 - Critical | Functionality is affected. |
3 - Error | An error condition exists and functionality could be affected. |
4 - Warning | Functionality could be affected. |
5 - Notification | Information about normal events. |
6 - Information | General information about system operations. |
Mặc định log severity level là INFORMATION
Thay đổi severity bằng câu lệnh sau:
config log memory filter
set severity information <= == thay đổi severity ở đây
end
Sau khi đã thay đổi, ta có thể kiểm tra thông qua CLI:
#get log memory filter
severity : information
forward-traffic : enable
local-traffic : disable
multicast-traffic : enable
sniffer-traffic : enable
anomaly : enable
netscan-discovery : enable
netscan-vulnerability : enable
voip : enable
Ngoài ra, nếu các event nào mà ta không cần monitor, hãy remove khỏi danh sách.
Fortinet khuyến khích lưu log trên FortiCloud để tránh việc sử dụng quá mức CPU.
Việc lưu log vào memory sẽ sử dụng hết tài nguyên nhanh chóng.
Nếu disk gần đầy, ta hãy chuyển log ra khỏi disk, ví dụ Syslog Server. Khi disk gần đầy, thiết bị sẽ tiêu tốn rất nhiều tài nguyên để tìm không gian trống và sắp xếp lại các file.
Tắt tất cả sniffer và traces
diagnose debug reset
diagnose debug disable
Giảm session timers để đóng các unused sessions nhanh hơn
config system global
set tcp-halfclose-timer 30 [ default 120s ]
set tcp-halfopen-timer 30 [ default 60s ]
set tcp-timewait-timer 0 [ default 120s ]
set udp-idle-timer 60 [ default 120s ]
end
Nếu Fortiguard licence đã hết hạn, ta nên disable AV và IPS push updates
Conserve Mode
Conserve mode là cơ chế bảo vệ, được kích hoạt khi FortiGate không còn đủ memory để xử lí traffic. Content ispection ( đặc biệt là proxy-based ) đường dùng nhiều memory hơn. Nói cách khác, khi tính năng antivirus được bật lên, FortiGate sẽ sử dụng nhiều RAM hơn, điều này có thể khiến FortiGate vào conserve mode.
Ta có thể xác định antivirus hay các process khác đang dùng nhiều RAM bằng cách dùng câu lệnh “diagnose sys top”
Các log ta có thể gặp:
- System has entered kernel conserve mode
- System has activated session fail mode
- System has reached connection limit
- System has deactivated session fail mode
Disable các tính năng không dùng đến
- Logging vào Memory ( tham khảo mục 4 của Troubleshooting High CPU )
- DHCP Server, DNS Server
- Các IPS signature
Giảm maximum file size khi thực hiện kiểm tra (mặc định là 10MB)
config firewall profile-protocol-options
edit <profile names>
config http | ftp | pop3 | smtp | imap
set oversize-limit 3
end
Thông thường virus size < 1MB
Reduce memory dùng cho cache như FortiGuard và DNS
config system fortiguard
set webfilter-cache-ttl 500
set antispam-cache-ttl 500
end
config system dns
set dns-cache-ttl 300
end
Giảm session-ttl
config system global
set tcp-halfclose-timer 30 [ default 120s ]
set tcp-halfopen-timer 30 [ default 60s ]
set tcp-timewait-timer 0 [ default 120s ]
set udp-idle-timer 60 [ default 120s ]
end
Tài liệu tham khảo
- Technical Note: How to create a log file of a session using PuTTY
https://kb.fortinet.com/kb/documentLink.do?externalID=FD36043
- Download Debug Logs and 'execute tac report'
https://kb.fortinet.com/kb/documentLink.do?externalID=FD40892
- Technical Tip: No memory logs seen in FortiGate
https://kb.fortinet.com/kb/documentLink.do?externalID=FD36487
- FortiOS 6.4.0 Administration Guide
https://docs.fortinet.com/document/fortigate/6.4.0/administration-guide/954635/getting-started