Checking backend server status & issues
- Check if the server health-check is ON;
-
Check event logs for history status if server-pool health check is ON:
Add Filter > Action > Check-Resource. You’ll see like this:
Physical Server 1 [3.89.138.120:80] in server pool RS_01 status change from up to down
-
If server-pool health check is OFF or you doubt the back-end server status is not stable, you may use curl to visit the back-end server (IP or FQDN) under FortiWeb root:
/# curl -I http://x.x.x.x/
/# curl -I https://x.x.x.x/
/# curl -I --recursive https://x.x.x.x/
Note: Using “execute telnettest x.x.x.x:80
” under FortiWeb shell or “telnet x.x.x.x:80
” may not work well because the HTTP headers cannot be fully sent and parsed.
If you can successfully receive responses from backend servers using Curl, but the health check status still shows OFF, this could be due to network latency. To address this, utilize monitoring or probing tools to track the latency values at various times throughout the day. Then, adjust the health check's timeout value to match the highest recorded network latency. Be aware that this approach will consider backend servers with long network latencies as healthy and include them in traffic processing, potentially degrading user experience. Therefore, it is recommended to set a reasonable timeout value for the health checks to exclude servers with excessively long network latencies from handling traffic.
For how to set health check, seeconfig server-policy health
in FortiWeb CLI Reference. - Check if the request might be limited by “Connection Limit”.
Check current server status with diagnose:
diagnose policy backend back-end server list <Server Pool>
FortiWeb # diagnose policy server-pool list root. SP_01
policy(SP_01)
server-pool(RS_01) sp_id(14718170086418654778):
total = 2
server[0]
server table id: 1
server random id: 14419242131006337869
ip: x.x.x.x
port: 80
alive:
1
session: 0
idle: 0
status: 1
backup: 0
server[1]
server table id: 2
server random id: 3111587693898389030
ip: y.y.y.y
port: 8080
alive:
0
session: 0
idle: 0
status: 1
backup: 0
alive server 1:
server[0]
alive backup server 0: