如何通过我的应用程序负载均衡器和 Web 服务器记录 X-Amzn-Trace-Id 来跟踪请求?
简短描述
在弹性负载均衡器(ELB)中,当应用程序负载均衡器处理请求时,跟踪信息将添加到 X-Amzn-Trace-Id 标头。例如:
X-Amzn-Trace-Id: Root=1-67891233-abcdef012345678912345678
记录标识符,然后使用它来排查与您的负载均衡器相关的问题。例如,使用 X-Amzn-Trace-Id 标头确认在短时间内从同一客户端接收多个类似请求的时间。如果您在堆栈中有多个层,则还可以使用 X-Amzn-Trace-Id 标头跟踪所有层中的请求。
解决方法
针对常见 Web 服务器配置(Apache、Tomcat、NGINX 或 IIS)使用以下步骤以记录 X-Amzn-Trace-Id 标头:
Apache
1. 在您的首选文本编辑器中打开 Apache 配置文件(Amazon Linux 中的 /etc/httpd/conf/httpd.conf)。
2. 在 LogFormat 部分中,添加选项 %{X-Amzn-Trace-Id}i,如下所示:
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. 重新启动 Apache 服务以应用您的更改,如下所示:
sudo service apache restart
Tomcat
1. 在您的首选文本编辑器中打开 Tomcat 配置文件(Amazon Linux 中的 /etc/tomcat7/server.xml)。
2. 在 org.apache.catalina.valves.AccessLogValve 类中,添加选项 %{X-Amzn-Trace-Id}i ,如下所示:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b %{X-Amzn-Trace-Id}i" />
3. 重新启动 Tomcat 服务以应用您的更改,如下所示:
sudo service tomcat7 restart
NGINX
1. 在您的首选文本编辑器中打开 NGINX 配置文件(Amazon Linux 中的 /etc/nginx/nginx.conf)。
2. 在 log_format 部分中,添加选项 $http_x_amzn_trace_id,如下所示:
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. 重新启动 NGINX 服务以应用您的更改,如下所示:
sudo service nginx restart
互联网信息服务(IIS)
1. 打开 IIS 管理器。
2. 选择您的服务器的名称。
3. 选择 Logging。
4. 选择 Select Fields (选项字段)。
5. 选择 Add Field(添加字段)。
6. 在对话框中,对于 Field Name (字段名称),输入 X-Amzn-Trace-Id。对于 Source Type (源类型),输入 Request Header (请求标头)。对于 Source (源),输入 X-Amzn-Trace-Id。
7. 选择 Apply(应用) 以应用更改。
相关信息
请求 Application Load Balancer 的跟踪
Application Load Balancer 的访问日志