Manual Chapter : Configuring Request Logging

Applies To:

Show Versions Show Versions

BIG-IP APM

  • 14.1.5, 14.1.4, 14.1.3, 14.1.2, 14.1.0, 14.0.1, 14.0.0

BIG-IP Analytics

  • 14.1.5, 14.1.4, 14.1.3, 14.1.2, 14.1.0, 14.0.1, 14.0.0

BIG-IP LTM

  • 14.1.5, 14.1.4, 14.1.3, 14.1.2, 14.1.0, 14.0.1, 14.0.0

BIG-IP PEM

  • 14.1.5, 14.1.4, 14.1.3, 14.1.2, 14.1.0, 14.0.1, 14.0.0

BIG-IP AFM

  • 14.1.5, 14.1.4, 14.1.3, 14.1.2, 14.1.0, 14.0.1, 14.0.0

BIG-IP DNS

  • 14.1.5, 14.1.4, 14.1.3, 14.1.2, 14.1.0, 14.0.1, 14.0.0

BIG-IP ASM

  • 14.1.5, 14.1.4, 14.1.3, 14.1.2, 14.1.0, 14.0.1, 14.0.0
Manual Chapter

Configuring Request Logging

Overview: Configuring a Request Logging profile

The Request Logging profile gives you the ability to configure data within a log file for HTTP requests and responses, in accordance with specified parameters.

Task summary

Perform these tasks to log HTTP request and response data.

Creating a pool with request logging to manage HTTP traffic

For a basic configuration, you need to create a pool to manage HTTP connections.
  1. On the Main tab, click
    Local Traffic
    Pools
    .
    The Pool List screen opens.
  2. Click
    Create
    .
    The New Pool screen opens.
  3. In the
    Name
    field, type a unique name for the pool.
  4. For the
    Health Monitors
    setting, from the
    Available
    list, select the
    http
    monitor and move the monitor to the
    Active
    list.
  5. From the
    Load Balancing Method
    list, select how the system distributes traffic to members of this pool.
    The default is
    Round Robin
    .
  6. For the
    Priority Group Activation
    setting, specify how to handle priority groups:
    • Select
      Disabled
      to disable priority groups. This is the default option.
    • Select
      Less than
      , and in the
      Available Members
      field type the minimum number of members that must remain available in each priority group in order for traffic to remain confined to that group.
  7. Add the IP address for each logging server that you want to include in the pool, using the
    New Members
    setting:
    1. Type an IP address in the
      Address
      field, or select a node address from the
      Node List
      .
    2. Type the port number for the logging server in the
      Service Port
      field.
    3. (Optional) Type a priority number in the
      Priority
      field.
    4. Click
      Add
      .
  8. Click
    Finished
    .
The new pool appears in the Pools list.

Creating a request logging profile

You must have already created a pool that includes logging servers as pool members before you can create a request logging profile.
With a request logging profile, you can log specified data for HTTP requests and responses, and then use that information for analysis and troubleshooting.
  1. On the Main tab, click
    Local Traffic
    Profiles
    Other
    Request Logging
    .
    The Request Logging profile list screen opens.
  2. Click
    Create
    .
    The New Request Logging Profile screen opens.
  3. From the
    Parent Profile
    list, select a profile from which the new profile inherits properties.
  4. Select the
    Custom
    check box for the Request Settings area.
  5. Configure the request settings, as necessary.
  6. Select the
    Custom
    check box for the Response Settings area.
  7. Configure the response settings, as necessary.
  8. Click
    Finished
    .
This makes a request logging profile available to log specified data for HTTP requests and responses.
You must configure a virtual server for request logging.

Configuring a request logging profile for requests

Ensure that the configuration includes a pool that includes logging servers as pool members.
You can use a request logging profile to log specified data for HTTP requests, and then use that information for analysis and troubleshooting.
  1. On the Main tab, click
    Local Traffic
    Profiles
    Other
    Request Logging
    .
    The Request Logging profile list screen opens.
  2. Click
    Create
    .
    The New Request Logging Profile screen opens.
  3. From the
    Parent Profile
    list, select a profile from which the new profile inherits properties.
  4. Select the
    Custom
    check box for the Request Settings area.
  5. From the
    Request Logging
    list, select
    Enabled
    .
  6. In the
    Template
    field, type the request logging parameters for the entries that you want to include in the log file.
  7. From the
    HSL Protocol
    list, select a high-speed logging protocol.
  8. From the
    Pool Name
    list, select the pool that includes the log server as a pool member.
  9. You can also configure the error response settings.
    1. From the
      Respond On Error
      list, select
      Enabled
      .
    2. In the
      Error Response
      field, type the error response strings that you want to include in the log file.
      These strings must be well-formed for the protocol serving the strings.
    3. Select the
      Close On Error
      check box to drop the request and close the connection if logging fails.
  10. You can also configure the logging request errors settings.
    1. From the
      Log Logging Errors
      list, select
      Enabled
      .
    2. In the
      Error Template
      field, type the request logging parameters for the entries that you want to include in the log file.
    3. From the
      HSL Error Protocol
      list, select a high-speed logging error protocol.
    4. From the
      Error Pool Name
      list, select a pool that includes the node for the error logging server as a pool member.
  11. Click
    Update
    .
This configures a request logging profile to log specified data for HTTP requests.

Configuring a request logging profile for responses

You must have already created a pool that includes logging servers as pool members before you can configure a request logging profile for responses.
With a request logging profile, you can log specified data for HTTP requests and responses, and then use that information for analysis and troubleshooting.
  1. On the Main tab, click
    Local Traffic
    Profiles
    Other
    Request Logging
    .
    The Request Logging profile list screen opens.
  2. Click
    Create
    .
    The New Request Logging Profile screen opens.
  3. From the
    Parent Profile
    list, select a profile from which the new profile inherits properties.
  4. Select the
    Custom
    check box for the Response Settings area.
  5. In the Response Settings area, from the
    Response Logging
    list, select
    Enabled
    .
  6. Select the
    Log By Default
    check box.
    The
    Log By Default
    check box is selected by default.
  7. In the
    Template
    field, type the response logging parameters for the entries that you want to include in the log file.
  8. From the
    HSL Protocol
    list, select a high-speed logging protocol.
  9. From the
    Pool Name
    list, select the pool that includes the node log server as a pool member.
  10. Configure the logging request error settings.
    1. From the
      Log Logging Errors
      list, select
      Enabled
      .
    2. In the
      Error Template
      field, type the response logging parameters for the entries that you want to include in the log file.
    3. From the
      HSL Error Protocol
      list, select a high-speed logging error protocol.
    4. From the
      Error Pool Name
      list, select a pool that includes the node for the error log server as a pool member.
  11. Click
    Update
    to save the changes.
This configures a request logging profile to log specified data for HTTP responses.

Configuring a virtual server for request logging

You can configure a virtual server to pass traffic to logging servers.
  1. On the Main tab, click
    Local Traffic
    Virtual Servers
    .
    The Virtual Server List screen opens.
  2. Click the name of the virtual server you want to modify.
  3. On the menu bar, click
    Resources
    .
  4. From the
    Default Pool
    list, select a pool name that is configured with pool members for request logging.
  5. Click the
    Properties
    tab.
  6. From the
    Configuration
    list, select
    Advanced
    .
  7. From the
    Request Logging Profile
    list, select the profile you want to assign to the virtual server.
  8. Click
    Update
    .
This virtual server can now pass traffic to the configured logging servers.

Deleting a request logging profile

You can delete a user-defined request logging profile that is obsolete or no longer needed.
  1. On the Main tab, click
    Local Traffic
    Profiles
    Other
    Request Logging
    .
    The Request Logging profile list screen opens.
  2. Select the check box for the applicable profile.
  3. Click
    Delete
    .
  4. Click
    Delete
    .
The profile is deleted.

Request Logging profile settings

With the Request Logging profile, you can specify the data and the format for HTTP requests and responses that you want to include in a log file.

General Properties

Setting
Value
Description
Name
No default
Specifies the name of the profile.
Parent Profile
Selected predefined or user-defined profile
Specifies the selected predefined or user-defined profile.

Request Settings

Setting
Value
Description
Request Logging
Disabled
Enables logging for requests.
Template
Specifies the directives and entries to be logged.
HSL Protocol
UDP
Specifies the protocol to be used for high-speed logging of requests.
Pool Name
None
Defines the pool associated with the virtual server that is logged.
Respond On Error
Disabled
Enables the ability to respond when an error occurs.
Error Response
None
Specifies the response text to be used when an error occurs.
For example, the following response text provides content for a 503 error.
<html> <head> <title>ERROR</title> </head> <body> <p>503 ERROR-Service Unavailable</p> </body> </html>
Close On Error
Disabled
When enabled, and logging fails, drops the request and closes the connection.
Log Logging Errors
Disabled
Enables the ability to log any errors when logging requests.
Error Template
None
Defines the format for requests in an error log.
HSL Error Protocol
UDP
Defines the protocol to be used for high-speed logging of request errors.
Error Pool Name
None
Specifies the name of the error logging pool for requests.

Response Settings

Setting
Value
Description
Response Logging
Disabled
Enables logging for responses.
Log By Default
Enabled
Defines whether to log the specified settings for responses by default.
Template
None
Specifies the directives and entries to be logged.
HSL Protocol
UDP
Specifies the protocol to be used for high-speed logging of responses.
Pool Name
None
Defines the pool name associated with the virtual server that is logged.
Log Logging Errors
Disabled
Enables the ability to log any errors when logging responses.
Error Template
None
Defines the format for responses in an error log.
HSL Error Protocol
UDP
Defines the protocol to be used for high-speed logging of response errors.
Error Pool Name
None
Specifies the name of the error logging pool for responses.

Request Logging parameters

This table lists all available parameters from which you can create a custom HTTP Request Logging profile. These are used to specify entries for the
Template
and
Error Template
settings For each parameter, the system writes to the log the information described in the right column.
Request logging parameters
Parameter
Communication method
Log file entry description
BIGIP_BLADE_ID
Request and Response
An entry for the slot number of the blade that handled the request.
BIGIP_CACHED
Response
An entry of
Cached status: true
, if the response came from BIG-IP cache, or
Cached status: false
, if the response came from the server.
BIGIP_HOSTNAME
Request and Response
An entry for the configured host name of the unit or chassis.
CLIENT_IP
Request and Response
An entry for the IP address of a client, for example,
192.168.74.164
.
CLIENT_PORT
Request and Response
An entry for the port of a client, for example,
80
.
DATE_D
Request and Response
A two-character entry for the day of the month, ranging from
1
(note the leading space) through
31
.
DATE_DAY
Request and Response
An entry that spells out the name of the day.
DATE_DD
Request and Response
A two-digit entry for the day of the month, ranging from
01
through
31
.
DATE_DY
Request and Response
A three-letter entry for the day, for example,
Mon
.
DATE_HTTP
Request and Response
A date and time entry in an HTTP format, for example,
Tue, 5 Apr 2011 02:15:31 GMT
.
DATE_MM
Request and Response
A two-digit month entry, ranging from
01
through
12
.
DATE_MON
Request and Response
A three-letter abbreviation for a month entry, for example,
APR
.
DATE_MONTH
Request and Response
An entry that spells out the name of the month.
DATE_NCSA
Request and Response
A date and time entry in an NCSA format, for example,
dd/mm/yy:hh:mm:ss ZNE
.
DATE_YY
Request and Response
A two-digit year entry, ranging from
00
through
99
.
DATE_YYYY
Request and Response
A four-digit year entry.
HTTP_CLASS
Neither Request nor Response: Deprecated
The name of the
httpclass
profile that matched the request, or an empty entry if a profile name is not associated with the request.
HTTP_KEEPALIVE
Request and Response
A flag summarizing the HTTP1.1
keep-alive
status for the request:: a
Y
if the HTTP1.1
keep-alive
header was sent, or an empty entry if not.
HTTP_METHOD
Request and Response
An entry that defines the HTTP method, for example,
GET
,
PUT
,
HEAD
,
POST
,
DELETE
,
TRACE
, or
CONNECT
.
HTTP_PATH
Request and Response
An entry that defines the HTTP path.
HTTP_QUERY
Request and Response
The text following the first
?
in the URI.
HTTP_REQUEST
Request and Response
The complete text of the request, for example,
$METHOD $URI $VERSION
.
HTTP_STATCODE
Response
The numerical response status code, that is, the status response code excluding subsequent text.
HTTP_STATUS
Response
The complete status response, that is, the number appended with any subsequent text.
HTTP_URI
Request and Response
An entry for the URI of the request.
HTTP_VERSION
Request and Response
An entry that defines the HTTP version.
NCSA_COMBINED
Response
An NCSA Combined formatted log string, for example,
$NCSA_COMMON $Referer ${User-agent} $Cookie
.
NCSA_COMMON
Response
An NCSA Common formatted log string, for example,
$CLIENT_IP - - $DATE_NCSA $HTTP_REQUEST $HTTP_STATCODE $RESPONSE_SIZE
.
RESPONSE_MSECS
Response
The elapsed time in milliseconds (ms) between receiving the last packet of the request and sending the response.
RESPONSE_SIZE
Response
An entry for the size of response in bytes.
RESPONSE_USECS
Response
The elapsed time in microseconds (µs) between receiving the last packet of the request and sending the response.
SERVER_IP
Response
The IP address of the pool member to which the HTTP request was sent, for example,
10.10.0.1
.
SERVER_PORT
Response
The port of the pool member to which the HTTP request was sent, for example,
80
.
SNAT_IP
Response
An entry for the self IP address of the BIG-IP-originated connection to the server when SNAT is enabled, or an entry for the client IP address when SNAT is not enabled.
SNAT_PORT
Response
An entry for the port of the BIG-IP-originated connection to the server when SNAT is enabled, or an entry for the client port when SNAT is not enabled.
TIME_AMPM
Request and Response
A twelve-hour request-time qualifier, for example,
AM
or
PM
.
TIME_H12
Request and Response
A compact twelve-hour time entry for request-time hours, ranging from
1
through
12
.
TIME_HRS
Request and Response
A twelve-hour time entry for hours, for example,
12 AM
.
TIME_HH12
Request and Response
A twelve hour entry for request-time hours, ranging from
01
through
12
.
TIME_HMS
Request and Response
An entry for a compact request time of
H:M:S
, for example,
12:10:49
.
TIME_HH24
Request and Response
A twenty-four hour entry for request-time hours, ranging from
00
through
23
.
TIME_MM
Request and Response
A two-digit entry for minutes, ranging from
00
through
59
.
TIME_MSECS
Request and Response
An entry for the request-time fraction in milliseconds (ms).
TIME_OFFSET
Request and Response
An entry for the time zone, offset in hours from GMT, for example,
-11
.
TIME_SS
Request and Response
A two-digit entry for seconds, ranging from
00
through
59
.
TIME_UNIX
Request and Response
A UNIX time entry for the number of seconds since the UNIX epoch, for example,
00:00:00 UTC, January 1st, 1970
.
TIME_USECS
Request and Response
An entry for the request-time fraction in microseconds (µs).
TIME_ZONE
Request and Response
An entry for the current Olson database or tz database three-character time zone, for example,
PDT
.
VIRTUAL_IP
Request and Response
An entry for the IP address of a virtual server, for example,
192.168.10.1
.
VIRTUAL_NAME
Request and Response
An entry for the name of a virtual server.
VIRTUAL_POOL_NAME
Request and Response
An entry for the name of the pool containing the responding server.
VIRTUAL_PORT
Request and Response
An entry for the port of a virtual server, for example,
80
.
VIRTUAL_SNATPOOL_NAME
Request and Response
The name of the Secure Network Address Translation pool associated with the virtual server.
NULL
Undelineated strings return the value of the respective header.