Application Load Balancer 的存取日誌 - Elastic Load Balancing

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Application Load Balancer 的存取日誌

Elastic Load Balancing 提供存取日誌,可針對傳送到負載平衡器的請求,擷取其詳細資訊。每個日誌包含收到請求的時間、用戶端的 IP 地址、延遲、請求路徑和伺服器回應等資訊。您可以使用這些存取日誌來分析流量模式和排除問題。

存取日誌是 Elastic Load Balancing 的選用功能,預設為停用。為負載平衡器啟用存取日誌之後,Elastic Load Balancing 會擷取日誌,並將其以壓縮檔案存放在您指定的 Amazon S3 儲存貯體中。您可以隨時停用存取日誌。

您將需支付 Amazon S3 的儲存費用,但 Elastic Load Balancing 將日誌檔傳送到 Amazon S3 所使用的頻寬不需要付費。如需有關儲存費用的詳細資訊,請參閱 Amazon S3 定價

存取日誌檔

Elastic Load Balancing 每 5 分鐘發佈每個負載平衡器節點的日誌檔。日誌傳遞最終會達到一致。負載平衡器可能在相同期間傳遞多個日誌。這通常是在網站的流量很高時才會發生。

存取日誌的檔案名稱使用以下格式:

bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_app.load-balancer-id_end-time_ip-address_random-string.log.gz
bucket

S3 儲存貯體的名稱。

prefix

(選用) 儲存貯體的字首 (邏輯階層)。您指定的字首不得包含字串 AWSLogs。如需詳細資訊,請參閱使用字首組織物件

AWSLogs

我們在您指定的儲存貯體名稱和可選字首之後,增加了以 AWSLogs 開頭的檔案名稱部分。

aws-account-id

擁有者的 AWS 帳號 ID。

region

負載平衡器和 S3 儲存貯體的區域。

yyyy/mm/dd

傳遞日誌的日期。

load-balancer-id

負載平衡器的資源 ID。如果資源 ID 包含任何斜線 (/),斜線會換成句點 (.)。

end-time

記錄間隔結束的日期和時間。例如,結束時間 20140215T2340Z 的日子檔案包含在 23:35 和 23:40 (UTC 或 Zulu 時間) 之間發出的請求項目。

ip-address

處理請求之負載平衡器節點的 IP 地址。對於內部負載平衡器,這是私有 IP 地址。

random-string

系統產生的隨機字串。

以下是含字首的日誌檔案名稱範例:

s3://my-bucket/my-prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz

以下是不含字首的日誌檔案名稱範例:

s3://my-bucket/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz

日誌檔案可存放於儲存貯體任意長時間,但您也可以定義 Amazon S3 生命週期規則,自動封存或刪除日誌檔案。如需詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的物件生命週期管理

存取日誌項目

Elastic Load Balancing 會記錄向負載平衡器傳送的請求,包括從未送達目標的請求。例如,如果用戶端傳送格式不正確的請求,或沒有運作狀態良好的目標可回應請求,則仍然會記錄此請求。Elastic Load Balancing 不會記錄運作狀態檢查請求。

每個記錄項目都包含對負載平衡器建立的單一要求 (或連線 WebSockets) 的詳細資訊。對於 WebSockets,只有在關閉連線之後才會寫入項目。如果無法建立升級連線,則項目與 HTTP 或 HTTPS 請求的項目相同。

重要

Elastic Load Balancing 會盡可能記錄請求。建議您使用存取日誌來了解請求的性質,而不是為了全面解釋所有請求。

語法

下表依序說明存取日誌項目的欄位。所有欄位以空格分隔。引進的新欄位會新增到日誌項目尾端。您應該忽略日誌項目尾端任何非預期的欄位。

欄位 Description (描述)

type

請求或連線的類型。可能的值如下所示 (忽略任何其他值):

  • http – HTTP

  • https – 透過 TLS 傳輸的 HTTP

  • h2 – 透過 TLS 傳輸的 HTTP/2

  • grpcs – 透過 TLS 傳輸的 gRPC

  • ws — WebSockets

  • wss— 透 WebSockets 過 TLS

time

負載平衡器產生回應給用戶端的時間 ( ISO 8601 格式)。對於 WebSockets,這是關閉連接的時間。

elb

負載平衡器的資源 ID。如果您剖析存取日誌項目,請注意,資源 ID 可能包含斜線 (/)。

client:port

提出請求之用戶端的 IP 地址和連接埠。如果負載平衡器前面有代理,則此欄位會包含代理的 IP 地址。

target:port

處理此請求之目標的 IP 地址和連接埠。

如果用戶端未傳送完整的請求,則負載平衡器無法將請求分派給目標,而這個值會設為 -。

如果目標是 Lambda 函數,這個值會設定為 -。

如果要求遭到封鎖 AWS WAF,則此值會設定為-,而 elb_status_code 的值會設定為 403。

request_processing_time

從負載平衡器收到請求到請求傳送到目標為止所經過的總時間 (以秒為單位,精確到毫秒)。

如果負載平衡器無法將請求分派給目標,這個值會設為 -1。如果目標在閒置逾時之前關閉連線,或用戶端傳送格式不正確的請求,就可能發生此情況。

如果已註冊的目標在閒置逾時之前沒有回應,這個值也可能設為 -1。

如果 AWS WAF 為 Application Load Balancer 啟用,或者目標類型為 Lambda 函數,則用戶端傳送 POST 要求所需資料所需資料所需的時間會計入計入request_processing_time

target_processing_time

從負載平衡器將請求傳送至目標開始,直到目標開始傳送回應標頭為止,所經過的總時間 (以秒為單位,精確到亳秒)。

如果負載平衡器無法將請求分派給目標,這個值會設為 -1。如果目標在閒置逾時之前關閉連線,或用戶端傳送格式不正確的請求,就可能發生此情況。

如果已註冊的目標在閒置逾時之前沒有回應,這個值也可能設為 -1。

如果您 AWS WAF 的應用程式負載平衡器未啟用,則用戶端傳送 POST 要求所需資料所需的時間會計入target_processing_time

response_processing_time

從負載平衡器收到目標的回應標頭開始,直到開始將回應傳送到用戶端為止,所經過的總時間 (以秒為單位,精確到亳秒)。這包括負載平衡器上的佇列時間,以及從負載平衡器到用戶端的連線取得時間。

如果負載平衡器未收到來自目標的回應,則此值會設為 -1。如果目標在閒置逾時之前關閉連線,或用戶端傳送格式不正確的請求,就可能發生此情況。

elb_status_code

來自負載平衡器的回應狀態碼。

target_status_code

來自目標的回應狀態碼。只有在對目標建立連線且目標傳送回應之後,才會記錄這個值。否則會設為 -。

received_bytes

從用戶端 (請求者) 收到的請求大小 (以位元組為單位)。對於 HTTP 請求,這包括標頭。對於 WebSockets,這是連線上從用戶端接收到的位元組總數。

sent_bytes

傳回到用戶端 (請求者) 的回應大小 (以位元組為單位)。對於 HTTP 請求,這包括標頭。對於 WebSockets,這是連線上傳送至用戶端的位元組總數。

"request"

來自用戶端的請求行,以雙引號括住,並採用以下格式來記錄:HTTP 方法 + protocol://host:port/uri+HTTP 版本。記錄請求 URI 時,負載平衡器會依原狀保留用戶端傳送的 URL。它不會為存取日誌檔案設定內容類型。處理此欄位時,請考量用戶端如何傳送 URL。

"user_agent"

User-Agent 字串,識別發出請求的用戶端 (以雙引號括住)。此字串包含一或多個產品識別符,product[/version]。如果字串超過 8 KB,則會截斷。

ssl_cipher

[HTTPS 接聽程式] SSL 加密。如果接聽程式不是 HTTPS 接聽程式,此值會設為 -。

ssl_protocol

[HTTPS 接聽程式] SSL 通訊協定。如果接聽程式不是 HTTPS 接聽程式,此值會設為 -。

target_group_arn

目標群組的 Amazon Resource Name (ARN)。

"trace_id"

X-Amzn-Trace-Id 標頭的內容,以雙引號括住。

"domain_name"

[HTTPS 接聽程式] 在 TLS 交握期間由用戶端提供的 SNI 網域,以雙引號括住。如果用戶端不支援 SNI,或網域不符合憑證而向用戶端出示預設憑證,這個值會設為 -。

"chosen_cert_arn"

[HTTPS 接聽程式] 向用戶端出示的憑證的 ARN,以雙引號括住。如果重複使用工作階段,這個值會設為 session-reused。如果接聽程式不是 HTTPS 接聽程式,此值會設為 -。

matched_rule_priority

符合請求之規則的優先順序值。如果規則符合,則此為 1 到 50,000 的值。如果沒有規則符合且採取預設動作,這個值會設為 0。如果在規則評估期間發生錯誤,則會設為 -1。對於任何其他錯誤,則會設為 -。

request_creation_time

負載平衡器從用戶端收到請求的時間 (ISO 8601 格式)。

"actions_executed"

處理請求時所採取的動作,以雙引號括住。這個值是逗號分隔清單,可以包含 採取的動作 中所述的值。如果未採取任何動作,例如對於格式不正確的請求,這個值會設為 -。

"redirect_url"

在 HTTP 回應的位置標頭中,指重新導向目標的 URL,以雙引號括住。如果未採取重新導向動作,這個值會設為 -。

"error_reason"

錯誤原因代碼,以雙引號括住。如果請求失敗,則此為錯誤原因代碼所述的其中一個錯誤代碼。如果採取的動作不含驗證動作,或目標不是 Lambda 函數,此值會設為 -。

「target:port_list」

處理此請求之目標之 IP 地址和連接埠以空格分隔的清單,用雙引號括注。目前,列表可以包含一個項目與其匹配的目標:port field。

如果用戶端未傳送完整的請求,則負載平衡器無法將請求分派給目標,而這個值會設為 -。

如果目標是 Lambda 函數,這個值會設定為 -。

如果要求遭到封鎖 AWS WAF,則此值會設定為-,而 elb_status_code 的值會設定為 403。

「target_status_code_list」

目標回應以空格分隔的狀態代碼清單,用雙引號括注。目前,此清單可以包含一個項目與其匹配的 target_status_code 欄位。

只有在對目標建立連線且目標傳送回應之後,才會記錄這個值。否則會設為 -。

"classification"

去同步緩解的分類 (以雙引號括住)。如果請求不符合 RFC 7230,可能的值是「可接受」、「不明確」和「嚴重」。

如果請求符合 RFC 7230,則此值會設為 -。

"classification_reason"

分類原因代碼 (以雙引號括住)。如果請求不符合 RFC 7230,這是 分類原因 中所述的其中一個分類代碼。如果請求符合 RFC 7230,則此值會設為 -。

採取的動作

負載平衡器會將它所採取的動作存放在存取日誌的 actions_executed 欄位中。

  • authenticate – 負載平衡器驗證工作階段、驗證使用者身分,並將使用者資訊新增至請求標頭 (如規則組態所指定)。

  • fixed-response – 負載平衡器發出固定回應 (如規則組態所指定)。

  • forward – 負載平衡器將請求轉送至目標 (如規則組態所指定)。

  • redirect – 負載平衡器將請求重新導向至另一個 URL (如規則組態所指定)。

  • waf – 負載平衡器將請求轉送至 AWS WAF ,以判斷是否要將請求轉送至目標。如果這是最終處理行動,請 AWS WAF 確定要求應拒絕。

  • waf-failed— 負載平衡器嘗試將要求轉寄給 AWS WAF,但此程序失敗。

分類原因

如果請求不符合 RFC 7230,負載平衡器會在存取日誌的 classification_reason 欄位中存放下列其中一個代碼。如需詳細資訊,請參閱 去同步緩解模式

代碼 描述 分類

AmbiguousUri

要求 URI 包含控制字元。

不明確

BadContentLength

Content-Length 標頭包含無法剖析或非有效數字的值。

嚴重

BadHeader

標頭包含空值字元或歸位字元。

嚴重

BadTransferEncoding

Transfer-Encoding 標頭包含錯誤的值。

嚴重

BadUri

要求 URI 包含空值字元或歸位字元。

嚴重

BadMethod

要求方法格式不正確。

嚴重

BadVersion

要求版本格式不正確。

嚴重

BothTeClPresent

要求同時包含 Transfer-Encoding 標頭和 Content-Length 標頭。

不明確

DuplicateContentLength

多個 Content-Length 標頭的值相同。

不明確

EmptyHeader

標頭空白或標頭列僅含空格。

不明確

GetHeadZeroContentLength

GET 或 HEAD 要求的 Content-Length 標頭值為 0。

可接受

MultipleContentLength

多個 Content-Length 標頭的值不同。

嚴重

MultipleTransferEncodingChunked

有多個 Transfer-Encoding:區塊標頭。

嚴重

NonCompliantHeader

標頭包含非 ASCII 或控制字元。

可接受

NonCompliantVersion

要求版本包含錯誤的值。

可接受

SpaceInUri

要求 URI 包含非 URL 編碼的空格。

可接受

SuspiciousHeader

可使用通用文字正規化技術將標頭正規化為 Transfer-Encoding 或 Content-Length。

不明確

UndefinedContentLengthSemantics

GET 或 HEAD 請求有定義的 Content-Length 標頭。

不明確

UndefinedTransferEncodingSemantics

GET 或 HEAD 請求有定義的 Transfer-Encoding 標頭。

不明確

錯誤原因代碼

如果負載平衡器無法完成驗證動作,負載平衡器會將以下其中一個原因代碼存放在存取日誌的 error_reason 欄位。負載平衡器也會遞增對應的 CloudWatch 指標。如需詳細資訊,請參閱 使用 Application Load Balancer 來驗證使用者身分

代碼 描述 指標

AuthInvalidCookie

身分驗證 Cookie 無效。

ELBAuthFailure

AuthInvalidGrantError

來自字符端點的授權碼無效。

ELBAuthFailure

AuthInvalidIdToken

ID 字符無效。

ELBAuthFailure

AuthInvalidStateParam

state 參數無效。

ELBAuthFailure

AuthInvalidTokenResponse

來自字符端點的回應無效。

ELBAuthFailure

AuthInvalidUserinfoResponse

來自使用者資訊端點的回應無效。

ELBAuthFailure

AuthMissingCodeParam

來自授權端點的身分驗證回應缺少名為 ‘code’ 的查詢參數。

ELBAuthFailure

AuthMissingHostHeader

來自授權端點的身分驗證回應缺少主機標頭欄位。

ELBAuthError

AuthMissingStateParam

來自授權端點的身分驗證回應缺少名為 ‘state’ 的查詢參數。

ELBAuthFailure

AuthTokenEpRequestFailed

字符端點傳回錯誤回應 (非 2XX)。

ELBAuthError

AuthTokenEpRequestTimeout

負載平衡器無法與字符端點通訊。

ELBAuthError

AuthUnhandledException

負載平衡器發生未處理的例外狀況。

ELBAuthError

AuthUserinfoEpRequestFailed

ldP 使用者資訊端點傳回錯誤回應 (非 2XX)。

ELBAuthError

AuthUserinfoEpRequestTimeout

負載平衡器無法與 ldP 使用者資訊端點通訊。

ELBAuthError

AuthUserinfoResponseSizeExceeded

IdP 傳回的宣告大小超過 11K 位元組。

ELBAuthUserClaimsSizeExceeded

如果對權重目標群組的請求失敗,負載平衡器會將以下其中一個錯誤代碼存放在存取日誌的 error_reason 欄位。

代碼 描述

AWSALBTGCookieInvalid

與加權目標群組搭配使用的 AWSALBTG Cookie 無效。例如,當 Cookie 值是 URL 編碼時,負載平衡器會傳回此錯誤。

WeightedTargetGroupsUnhandledException

負載平衡器發生未處理的例外狀況。

如果對 Lambda 函數的請求失敗,負載平衡器會將以下其中一個原因代碼存放在存取日誌的 error_reason 欄位。負載平衡器也會遞增對應的 CloudWatch 指標。如需詳細資訊,請參閱 Lambda Invoke 動作。

代碼 描述 指標

LambdaAccessDenied

負載平衡器沒有叫用 Lambda 函數的許可。

LambdaUserError

LambdaBadRequest

Lambda 呼叫失敗,因為用戶端要求標頭或內文不只包含 UTF-8 字元。

LambdaUserError

LambdaConnectionError

負載平衡器無法連線到 Lambda。

LambdaInternalError

LambdaConnectionTimeout

嘗試連接到 Lambda 逾時。

LambdaInternalError

LambdaEC2AccessDeniedException

Amazon EC2 在函數初始化期間拒絕存取 Lambda。

LambdaUserError

LambdaEC2ThrottledException

Amazon EC2 在函數初始化期間對 Lambda 進行節流。

LambdaUserError

LambdaEC2UnexpectedException

Amazon EC2 在函數初始化期間發生意外例外狀況。

LambdaUserError

LambdaENILimitReachedException

Lambda 無法在 Lambda 函數組態所指定的 VPC 中建立網路介面,因為已超出網路介面數量限制。

LambdaUserError

LambdaInvalidResponse

來自 Lambda 函數的回應格式不正確或缺少所需的欄位。

LambdaUserError

LambdaInvalidRuntimeException

不支援指定的 Lambda 執行期版本。

LambdaUserError

LambdaInvalidSecurityGroupIDException

Lambda 函數之組態中指定的安全群組 ID 無效。

LambdaUserError

LambdaInvalidSubnetIDException

Lambda 函數的組態中指定的子網路 ID 無效。

LambdaUserError

LambdaInvalidZipFileException

Lambda 無法解壓縮指定的函數 zip 檔案。

LambdaUserError

LambdaKMSAccessDeniedException

Lambda 無法解密環境變數,因為對 KMS 金鑰的存取遭拒。請檢查 Lambda 函數的 KMS 許可。

LambdaUserError

LambdaKMSDisabledException

Lambda 無法解密環境變數,因為指定的 KMS 金鑰已停用。請檢查 Lambda 函數的 KMS 金鑰設定。

LambdaUserError

LambdaKMSInvalidStateException

Lambda 無法解密環境變數,因為 KMS 金鑰的狀態無效。請檢查 Lambda 函數的 KMS 金鑰設定。

LambdaUserError

LambdaKMSNotFoundException

Lambda 無法解密環境變數,因為找不到 KMS 金鑰。請檢查 Lambda 函數的 KMS 金鑰設定。

LambdaUserError

LambdaRequestTooLarge

請求本文的大小超過 1 MB。

LambdaUserError

LambdaResourceNotFound

找不到 Lambda 函數。

LambdaUserError

LambdaResponseTooLarge

回應的大小超過 1 MB。

LambdaUserError

LambdaServiceException

Lambda 發生內部錯誤。

LambdaInternalError

LambdaSubnetIPAddressLimitReachedException

Lambda 無法設定 Lambda 函數的 VPC 存取,因為一個或多個子網路沒有可用的 IP 地址。

LambdaUserError

LambdaThrottling

因為有太多請求,Lambda 函數受到節制。

LambdaUserError

LambdaUnhandled

Lambda 函數發生未處理的例外狀況。

LambdaUserError

LambdaUnhandledException

負載平衡器發生未處理的例外狀況。

LambdaInternalError

LambdaWebsocketNotSupported

WebSockets 不支援使用 Lambda。

LambdaUserError

如果負載平衡器在將要求轉送至時遇到錯誤 AWS WAF,它會將下列其中一個錯誤碼儲存在存取記錄的 error_reason 欄位中。

代碼 描述

WAFConnectionError

負載平衡器無法連線到 AWS WAF。

WAFConnectionTimeout

要 AWS WAF 逾時的連線。

WAFResponseReadTimeout

AWS WAF 逾時的請求。

WAFServiceError

AWS WAF 傳回一個 5XX 錯誤訊息。

WAFUnhandledException

負載平衡器發生未處理的例外狀況。

範例日誌項目

以下為日誌項目範例。請注意,分成多行顯示文字只是為了更輕鬆閱讀。

範例 HTTP 項目

以下是 HTTP 接聽程式的範例日誌項目 (連接埠 80 到連接埠 80):

http 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 0.000 0.001 0.000 200 200 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337262-36d228ad5d99923122bbe354" "-" "-" 0 2018-07-02T22:22:48.364000Z "forward" "-" "-" "10.0.0.1:80" "200" "-" "-"
範例 HTTPS 項目

以下是 HTTPS 接聽程式的範例日誌項目 (連接埠 443 到連接埠 80):

https 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 0.086 0.048 0.037 200 200 0 57 "GET https://www.example.com:443/ HTTP/1.1" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337281-1d84f3d73c47ec4e58577259" "www.example.com" "arn:aws:acm:us-east-2:123456789012:certificate/12345678-1234-1234-1234-123456789012" 1 2018-07-02T22:22:48.364000Z "authenticate,forward" "-" "-" "10.0.0.1:80" "200" "-" "-"
HTTP/2 項目範例

以下是 HTTP/2 串流的範例日誌項目。

h2 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 10.0.1.252:48160 10.0.0.66:9000 0.000 0.002 0.000 200 200 5 257 "GET https://10.0.2.105:773/ HTTP/2.0" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337327-72bd00b0343d75b906739c42" "-" "-" 1 2018-07-02T22:22:48.364000Z "redirect" "https://example.com:80/" "-" "10.0.0.66:9000" "200" "-" "-"
範例 WebSockets 項目

以下是 WebSockets 連線的範例記錄項目。

ws 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 10.0.0.140:40914 10.0.1.192:8010 0.001 0.003 0.000 101 101 218 587 "GET http://10.0.0.30:80/ HTTP/1.1" "-" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 1 2018-07-02T22:22:48.364000Z "forward" "-" "-" "10.0.1.192:8010" "101" "-" "-"
安全 WebSockets 入口示例

以下是安全 WebSockets連線的範例記錄項目。

wss 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 10.0.0.140:44244 10.0.0.171:8010 0.000 0.001 0.000 101 101 218 786 "GET https://10.0.0.30:443/ HTTP/1.1" "-" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 1 2018-07-02T22:22:48.364000Z "forward" "-" "-" "10.0.0.171:8010" "101" "-" "-"
Lambda 函數的範例項目

以下是對 Lambda 函數之請求成功的範例日誌項目:

http 2018-11-30T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 - 0.000 0.001 0.000 200 200 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 0 2018-11-30T22:22:48.364000Z "forward" "-" "-" "-" "-" "-" "-"

以下是對 Lambda 函數之請求失敗的範例日誌項目:

http 2018-11-30T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 - 0.000 0.001 0.000 502 - 34 366 "GET http://www.example.com:80/ HTTP/1.1" "curl/7.46.0" - - arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 "Root=1-58337364-23a8c76965a2ef7629b185e3" "-" "-" 0 2018-11-30T22:22:48.364000Z "forward" "-" "LambdaInvalidResponse" "-" "-" "-" "-"

處理存取日誌檔

存取日誌檔已壓縮。如您利用 Amazon S3 主控台開啟檔案,則會解壓縮檔案並顯示資訊。如果您下載檔案,則必須先將其解壓縮才能看到資訊。

如果您的網站上有許多需求,負載平衡器產生的日誌檔可能有好幾 GB 的資料。您可能無法使用處理來處理如此大量的資 line-by-line 料。因此,您可能需要使用提供平行處理解決方案的分析工具。例如,您可以使用以下分析工具來分析和處理存取日誌: