Details for Load Balancer Logs
Logging details for load balancer logs.
Also see Logging for Load Balancers for more information.
Resources
- load balancer
Log Categories
API value (ID): | Console (Display Name) | Description |
---|---|---|
Access | Access Logs | Load balancer access logs. |
Error | Error Logs | Load balancer error logs. |
Availability
LBaaS access logs are available in all the regions of the commercial realms.
Load Balancer Access Log
- The time the request was received.
- Client and intermediate HTTP proxy IP addresses.
- Time taken at the load balancer and backend to process the request.
Some traffic might not be logged during a capture window because of capacity issues or system errors. In such cases, the following error log message is logged.
{"timestamp":"2020-08-05T00:12:39+00:00","errorLog":{"type":"General","errorDetails": "Missed 100 access logs" }}
For traffic destined to the public IP of a load balancer, access logs record the corresponding private IP.
Contents of an Access Log
Access logs appear as a value in the Log Data field. This value is a JSON-formatted data with the following fields.
Field | Example | Description |
---|---|---|
timestamp | 2020-04-20T00:56:18+00:00 |
Log entry generation time in ISO-8601 format. |
clientAdd | 192.168.0.33:7870 |
IP address and port number of the requesting client. |
forwardedForAddr | 192.168.0.33 |
IP address of the client and http proxies between client and load balancer. |
host | a.com |
Domain name which resolves to VIP address assigned to the load balancer. |
backendAddr | 192.168.0.34:8080 |
IP address and port number of the backend server, which processed the client request. |
requestProcessingTime | 0.003 |
Total time taken (in seconds, with millisecond precision), from when the load balancer starts receiving request from the client, until it completes sending responses to the client. |
backendConnectTime | 0.00 |
Time spent (in seconds, with millisecond precision), to establish backend server connection. |
backendProcessingTime | 0.002 |
Total time taken from the load balancer establishing a connection to a backend, until it completes receiving the response from the backend. |
lbStatusCode | 200 |
Status code of the response from the load balancer. |
backendStatusCode | 200 |
Status code of the response from the target. |
receivedBytes | 150 |
Total size of the request (in bytes), received from the client. |
sentBytes | 450 |
Total size of the response (in bytes), sent to the client from the load balancer. |
request | "GET / HTTP/1.1" |
Request line received from the client. |
sslCipher | ECDHE-RSA-AES256-GCM-SHA384 |
Negotiated SSL cipher between the client and the load balancer. |
listenerName | http_listener_1 |
Listener which received the incoming traffic request on the load balancer's IP address. |
sslProtocol | TLSv1.2 |
Negotiated SSL protocol between the client and the load balancer. |
userAgent | curl/7.29.0 |
User Agent, which sent the request to the load balancer. |
routingRulesMatchedRule | RoutingPolicy_test_rule1 | Routing policy rule name, which is matched for this specific client request. |
routingRulesRuleHits | 1 | Number of routing rules getting matched for the request. Either 1 (for a match) or 0 (for no match). |
routingRulesRuleMisses | 4 | Number of routing rules evaluated to false for the request. |
routingRulesEngineErrors | 0 | Routing rule engine error during policy evaluation for the request. Either 0 (no error) or 1 when any error occurs. If an error occurs, requests are forwarded to the default backend set attached to the listener. |
requestId | 0123456789abcdef0123456789abcdef | Unique request identifier in hexadecimal format (16 bytes). |
responseProvider | 192.168.0.34:8080 |
Information about where the response is coming from. May contain:
|
Load Balancer Error Log
Load balancer error logs capture detailed information about requests related to troubleshooting and monitoring. Each Error Log entry contains information such as the time the request was received, error type, and extra details related to the specific error.
Contents of an Error Log
This value is JSON-formatted data with the following fields.
Field | Example | Description |
---|---|---|
timestamp | 2020-08-04T21:25:27+00:00 | Log entry generation time in ISO-8601 format. |
type | frontDoor | Error log Category. |
errorDetails | Access for client 160.34.88.6 forbidden by ACL rule | Detailed description of the error message. |
Type | Scenario | Description | Example |
---|---|---|---|
healthChecker | Connection Timeout | Backend health check failure because of connection timeout. | {"timestamp":"2020-08-05T00:12:39+00:00","errorLog":{"type":"healthChecker","errorDetails":{"healthStatus":"Healthy
to
Unhealthy", "backendSetName":"newtest","backend":"10.10.100.7:80","details":{"date":1596586352368,"failures":3,"successes":6,"skips":0,"message": |
healthChecker | RespCode Mismatch | Backend health check failure because of RespCode mismatch. | {"timestamp":"2020-08-04T23:08:07+00:00","errorLog":{"type":"healthChecker","errorDetails":{"healthStatus":"Healthy
to
Unhealthy", "backendSetName":"newtest","backend":"10.10.100.7:80","details":{"date":1596582477049,"failures":3,"successes":0,"skips":0,"message": |
healthChecker | RegEx Mismatch | Backend health check failure because of RegEx mismatch. | {"timestamp":"2020-08-04T23:28:52+00:00","errorLog":{"type":"healthChecker","errorDetails":{"healthStatus":"Healthy
to
Unhealthy", "backendSetName":"newtest","backend":"10.10.100.7:80","details":{"date":1596583722793,"failures":3,"successes":0,"skips":0,"message":{"expectedRegex":"^notexist$","msg":"response match result: failed", |
healthChecker | Connection Refused | Backend health check failure because of connection RST. | {"timestamp":"2020-08-04T19:53:29+00:00","errorLog":{"type":"healthChecker","errorDetails":{"healthStatus":"Healthy
to
Unhealthy", "backendSetName":"newtest","backend":"10.10.100.7:80","details":{"date":1596570799950,"failures":3,"successes":0,"skips":0,"message": |
healthChecker |
Host Unreachable | Backend health check failure because of unreachable host. | {"timestamp":"2020-08-06T22:29:10+00:00","errorLog":{"type":"healthChecker","errorDetails":{"healthStatus":"Healthy to Unhealthy","backendSetName":"http-pool","backend":"10.10.100.8:80","details":{"date":1596752940288,"failures":3,"successes":0,"skips":0,"message":{"msg":"error","error":{"code":"EHOSTUNREACH","errno":"EHOSTUNREACH","syscall":"connect","address":"10.10.100.8","port":80}}}}}} |
healthChecker | Success (Unhealthy to healthy) | Unhealthy backend became healthy. | {"timestamp":"2020-08-04T20:00:20+00:00","errorLog":{"type":"healthChecker","errorDetails":{"healthStatus":"Unhealthy
to
Healthy","backendSetName":"newtest","backend":"10.10.100.7:80","details":{"date":1596571210421,"failures":41,"successes":3,"skips":0,"message":{"expectedRegex":"(?:)","msg":"response
match result:
ok","base641kData":"CjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3h odG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgogIDwhLS0KICAgIE1vZGlmaWVkIGZyb20gdGhlIERlYmlhbiBvcmlnaW5 |
healthChecker | SSL Backend, with some SSL error | Backend health check failure because of SSL error. | {"timestamp":"2020-08-06T06:45:23+00:00","errorLog":{"type":"healthChecker","errorDetails":{"healthStatus":"Healthy
to
Unhealthy", "backendSetName":"ssl-pool","backend":"10.10.100.7:443","details":{"date":1596696313688,"failures":3,"successes":0,"skips":0,"message": |
frontDoor | ACL Drop (TCP) | Client connection drop to ACL rules. | {"timestamp":"2020-08-04T21:25:27+00:00","errorLog":{"type":"frontDoor","errorDetails":"Access for client 160.34.88.6 forbidden by TCP ACL rule"}} |
sslClient | SSL error as client did not send cert | SSL handshake failure because of no certificate. | {"timestamp":"2020-08-06T06:19:36+00:00","errorLog":{"type":"sslClient","errorDetails":"Client 160.34.89.107 sent no required SSL certificate"}} |
backEnd | All backends down (HTTP) | Connection failure when all backends are unhealthy. | {"timestamp":"2020-08-06T06:48:54+00:00","errorLog":{"type":"backEnd","errorDetails":"No healthy backends available"}} |
backEnd | Connection failure when no backend configured (TCP) | Connection failure when all backends are unhealthy. | {"timestamp":"2020-08-04T19:59:03+00:00","errorLog":{"type":"backEnd","errorDetails":"No healthy backends available"}} |
backEnd | IOError.(http)Connection closed in middle | Connection failure when backend closes connection in middle of transaction. | {"timestamp":"2020-08-06T22:40:29+00:00","errorLog":{"type":"backEnd","errorDetails":"Backend 10.10.100.7 closed connection abruptly"}} |
backEnd | Backend max connection limit reached | Connection failure when backend already has max_connection connections. | {"timestamp":"2023-11-13T23:21:13+00:00", "errorLog":{"type":"backEnd","errorDetails" "Backend 10.0.4.176 closed connection abruptly"}} |
backend | Backend max connection limit reached | Connection failure when all backends already have max_connection connections. | {"timestamp":"2023-11-13T23:21:13+00:00", "errorLog":{"type":"backEnd","errorDetails":"No healthy backends available in associated backendSet bs_lb_2023-1107-1228"}} |
general | Listener IP max connections limit reached | Client connection drop due to IP_BASED_MAX_CONNECTIONS rule limit being reached. | {"timestamp":"2023-11-08T20:56:55+00:00","errorLog":{"type":"general","errorDetails":"Connection to 10.0.4.232:80 was abruptly closed by 139.87.112.128:49938"}} |