CPU und Memory Auslastung
get system performance status gibt einen groben Überblick über die Auslastung der Maschine.
get system performance status
Einzelne Prozesse
diag sys top zeigt detailliert jeden einzelnen Prozess. Für CPU bezogene Probleme ist diag sys top besser geeignet.
diag sys top 1 30 Run Time: 44 days, 10 hours and 20 minutes 0U, 0N, 0S, 99I, 0WA, 0HI, 1SI, 0ST; 1867T, 1236F cw_acd 150 S 0.9 1.4 hasync 133 S < 0.9 0.5 src-vis 23593 S 0.9 0.4 newcli 12969 R 0.9 0.2 miglogd 114 S 0.0 1.6 cmdbsvr 93 S 0.0 1.5 miglogd 177 S 0.0 1.5 miglogd 176 S 0.0 1.5 pyfcgid 2504 S 0.0 1.1 forticron 123 S 0.0 0.9 httpsd 116 S 0.0 0.8 httpsd 19863 S 0.0 0.8 httpsd 2683 S 0.0 0.8 pyfcgid 2508 S 0.0 0.7 pyfcgid 2506 S 0.0 0.7 pyfcgid 2507 S 0.0 0.7 updated 222 S 0.0 0.5
Refresh nach 1 Sekunde, 30 Prozesse anzeigen.
Nach CPU sortieren: Shift-P
Nach Memory sortieren: Shift-M
Die Kolonnen sind Prozess, ProzessID, Status, % CPU, % Memory
Prozess Status: S = Sleeping, R = Running, D = Do not Disturb, Z = Zombie. D und Z lassen sich nicht killen. D darf nur selten und kurz auftreten. Z darf gar nie auftreten.
Gesamte Subsysteme
diag sys top-summary
diag sys top-summary zeigt eine Zusammenfassung der Subsysteme, inklusive Shared Memory
diag sys top-summary hat mit 5.6.3 ein Problem. Hoffentlich wird das bald behoben.
Update: diag sys top-summary wurde in 6.4 ersatzlos gestrichen.
Prozesse killen
Prozesse mit dem Status „S“ oder „R“ können brutal abgewürgt werden. Auf der Fortigate läuft ein Watchdog, der den abgewürgten Prozess wieder neu startet. ACHTUNG! Prozesse abwürgen kann zu Fehlfunktionen und Störungen der Produktion führen. Führen Sie diag sys kill nur aus, wenn Sie genau wissen was Sie machen.
diag sys kill 9 <process-id>
Um die IPS Engine neu zu starten gibt es die Möglichkeit
diag test appl ipsmonitor 99
Dieser Befehl führt einen geordneten Neustart des IPS Subsystems durch. Die IPS Engine neigt dazu, alles Memory aufzubrauchen. Anstelle eines Reboots führt der Restart auch zum Ziel.
Die FortiGate führt ein Log, auf dem man sieht, ob die Prozesse sauber beendet wurden oder ob es einen Crash gab.
diag debug crashlog read
Prozesse die sich selbst sauber beendet haben sehen so aus:
61: 2018-01-15 08:47:29 the killed daemon is /bin/pyfcgid: status=0x0 62: 2018-01-16 22:50:05 the killed daemon is /bin/hatalk: status=0x0
Prozesse die abgewürgt wurden oder die einen Crash hatten hingegen so:
68: 2018-01-25 10:59:06 <00136> firmware FortiGate-80E v5.6.3,build1547b1547,171204 (GA) (Release) 69: 2018-01-25 10:59:06 <00136> application src-vis 70: 2018-01-25 10:59:06 <00136> *** signal 11 (Segmentation fault) received *** 71: 2018-01-25 10:59:06 <00136> Register dump: 72: 2018-01-25 10:59:06 <00136> R0: 04b2d300 R1: 5ec6a240 R2: 00000014 R3: 00000000 73: 2018-01-25 10:59:06 <00136> R4: 01932260 R5: 00000000 R6: 5ec6a368 R7: 5ec6a254 74: 2018-01-25 10:59:06 <00136> R8: 5ec6a354 R9: 01994184 R10: 04b8d660 FP: 01994188 75: 2018-01-25 10:59:06 <00136> IP: 00000000 SP: 5ec6a220 LR: 00153aa3 PC: 001538ea 76: 2018-01-25 10:59:06 <00136> CPSR: 000e0030 Addr: 00000000 77: 2018-01-25 10:59:06 <00136> Trap: 0000000e Error: 00000017 OldMask: 00000000 78: 2018-01-25 10:59:06 <00136> Backtrace: 79: 2018-01-25 10:59:06 <00136> [0x001538ea] => /bin/src-vis 80: 2018-01-25 10:59:06 <00136> [0x00153aa2] => /bin/src-vis 81: 2018-01-25 10:59:06 <00136> [0x00155a12] => /bin/src-vis 82: 2018-01-25 10:59:06 <00136> [0x0014e400] => /bin/src-vis 83: 2018-01-25 10:59:06 <00136> [0x00150a92] => /bin/src-vis 84: 2018-01-25 10:59:06 <00136> [0x0014f696] => /bin/src-vis 85: 2018-01-25 10:59:06 <00136> [0x0016cf56] => /bin/src-vis 86: 2018-01-25 10:59:06 <00136> [0x00c65d40] => /bin/src-vis
Conserve Mode
Wird die Memory Auslastung zu hoch, geht die FortiGate in den Conserve Mode. In diesem Fall wird das Security Profile einer Policy ignoriert.
diag hardware sysinfo conserve
Dort sehe ich die Schwellwerte meiner jeweiligen FortiGate Firewall und ob der Conserve Mode aktiv ist oder nicht.