How do I log X-Amzn-Trace-Id to trace requests through my Application Load Balancer and web servers?

In Elastic Load Balancing, when an Application Load Balancer handles a request, the trace information is added to the X-Amzn-Trace-Id header. For example:

X-Amzn-Trace-Id: Root=1-67891233-abcdef012345678912345678

You can log this unique identifier and then use it to troubleshoot issues with your load balancer. For example, you can use the X-Amzn-Trace-Id header to identify when many similar requests are received from the same client within a short time. If you have many layers in your stack, you can also use the X-Amzn-Trace-Id header to track a unique request across all the layers.

Use the following steps for common web server configurations (Apache, Tomcat, NGINX, or IIS) to log the X-Amzn-Trace-Id header:

Apache

1.    Open the Apache configuration file ( /etc/httpd/conf/httpd.conf in Amazon Linux) in your preferred text editor.

2.    In the LogFormat section, add the option %{X-Amzn-Trace-Id}i as follows:

LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\" \"%{X-Amzn-Trace-Id}i\"" combined

3.    Restart the Apache service to apply your changes as follows:  

sudo service apache restart

Tomcat

1.    Open the Tomcat configuration file ( /etc/tomcat7/server.xml in Amazon Linux) in your preferred text editor.

2.    In the org.apache.catalina.valves.AccessLogValve class, add the option %{X-Amzn-Trace-Id}i as follows:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

      prefix="localhost_access_log." suffix=".txt"

      pattern="%h %l %u %t &quot;%r&quot; %s %b %{X-Amzn-Trace-Id}i" />

3.    Restart the Tomcat service to apply your changes as follows:  

sudo service tomcat7 restart

NGINX

1.    Open the NGINX configuration file ( /etc/nginx/nginx.conf in Amazon Linux) in your preferred text editor.

2.    In the log_format section, add the option $http_x_amzn_trace_id as follows:

log_format  main  '"$http_x_forwarded_for" $remote_addr - $remote_user [$time_local] "$request" '

    '$status $body_bytes_sent "$http_referer" '

    '"$http_user_agent" "$http_x_amzn_trace_id"';

3.    Restart the Apache service to apply your changes as follows:  

sudo service nginx restart

Internet Information Services (IIS)

1.    Open the IIS Manager.

2.    Select your server’s name.

3.    Choose Logging.

4.    Choose Select Fields.

5.    Choose Add Field.

6.    In the dialog box, for Field Name, enter X-Amzn-Trace-Id. For Source Type, enter Request Header. For Source, enter X-Amzn-Trace-Id.

7.    Choose Apply to apply your changes.


Did this page help you? Yes | No

Back to the AWS Support Knowledge Center

Need help? Visit the AWS Support Center

Published: 2018-11-07