如何使用 X-Amzn-Trace-Id 追蹤 Application Load Balancer 請求?

2 分的閱讀內容
0

如何記錄 X-Amzn-Trace-Id 以透過 Application Load Balancer 和 Web 伺服器追蹤請求?

簡短描述

在 Elastic Load Balancing (ELB) 中,當 Application Load Balancer 處理要求時,追蹤資訊會新增至 X-Amzn-Trace-Id 標頭。例如:

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

記錄識別碼,然後使用它對負載平衡器的問題進行疑難排解。例如,使用 X-Amzn-Trace-Id 標頭來識別在短時間內從同一個用戶端接收到許多類似要求的時間。如果堆疊中有許多圖層,您也可以使用 X-Amzn-Trace-Id 標頭來追蹤所有圖層的要求。

解決方法

對常見的網頁伺服器設定 (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 &quot;%r&quot; %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 Manager。

2.    選取伺服器名稱。

3.    選擇日誌記錄

4.    選擇選取欄位

5.    選擇新增欄位。

6.    在對話方塊中,為欄位名稱輸入 X-Amzn-Trace-Id。為來源類型輸入請求標頭。為來源輸入 X-Amzn-Trace-Id

7.    選擇套用以套用變更。


相關資訊

Application Load Balancer 的要求追蹤

Application Load Balancer 的存取日誌

AWS 官方
AWS 官方已更新 2 年前