本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Network Load Balancer 的存取日誌
Elastic Load Balancing 提供存取日誌,可擷取使用 Network Load Balancer 建立之 TLS 連線的詳細資訊。您可以使用這些存取日誌來分析流量模式和排除問題。
重要
只有在負載平衡器具有 TLS 接聽程式,且日誌僅包含 TLS 請求的相關資訊時,才會建立存取日誌。盡最大努力存取日誌記錄請求。建議您使用存取日誌來了解請求的性質,而不是為了全面解釋所有請求。
存取記錄是 Elastic Load Balancing 的選用功能,預設為停用。在啟動負載平衡器的存取日誌之後,Elastic Load Balancing 會擷取日誌為壓縮檔案並存放在您指定的 Amazon S3 儲存貯體。您可以隨時停用存取記錄。
您可以使用 Amazon S3-managed加密金鑰 (SSE-S3) 啟用伺服器端加密,或使用金鑰管理服務搭配 S3 儲存貯體的客戶受管金鑰 (SSE-KMS CMK)。每個存取日誌檔在存放於 S3 儲存貯體之前會自動加密,並於您存取它時解密。存取加密或未加密日誌檔的方式沒有不同,所以您不需要採取任何動作。每個日誌檔案都會使用唯一金鑰加密,該金鑰本身會定期輪換的 KMS 金鑰加密。如需詳細資訊,請參閱 Amazon S3 使用者指南中的指定 Amazon S3 加密 (SSE-S3) 和使用 AWS KMS (SSE-KMS) 指定伺服器端加密。 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
_net.load-balancer-id
_end-time
_random-string
.log.gz
- bucket
-
S3 儲存貯體的名稱。
- prefix
-
儲存貯體中的字首 (邏輯階層)。如果不指定字首,日誌會放在儲存貯體的根層級。
- aws-account-id
-
擁有者的 AWS 帳戶 ID。
- region
-
負載平衡器和 S3 儲存貯體的區域。
- yyyy/mm/dd
-
傳遞日誌的日期。
- load-balancer-id
-
負載平衡器的資源 ID。如果資源 ID 包含任何斜線 (/),斜線會換成句點 (.)。
- end-time
-
記錄間隔結束的日期和時間。例如,結束時間 20181220T2340Z 包含在 23:35 和 23:40 之間所提出之請求的項目。
- random-string
-
系統產生的隨機字串。
以下是日誌檔名稱範例:
s3://my-bucket/prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2020/05/01/123456789012_elasticloadbalancing_us-east-2_net.my-loadbalancer.1234567890abcdef_20200501T0000Z_20sg8hgm.log.gz
日誌檔案可存放於儲存貯體任意長時間,但您也可以定義 Amazon S3 生命週期規則,自動封存或刪除日誌檔案。如需詳細資訊,請參閱《Amazon S3 使用者指南》的管儲存生命週期。
存取日誌項目
下表依序說明存取日誌項目的欄位。所有欄位以空格分隔。引進的新欄位會新增到日誌項目尾端。處理日誌檔案時,您應該忽略日誌項目尾端任何非預期的欄位。
欄位 | Description (描述) |
---|---|
type |
接聽程式的類型。支援的值為 |
version |
日誌項目的版本。目前版本是 2.0。 |
time |
在 TLS 連線結束時以 ISO 8601 格式記錄的時間。 |
elb |
負載平衡器的資源 ID。 |
接聽程式 |
連線的 TLS 接聽程式資源 ID。 |
client:port |
用戶端的 IP 地址和連接埠。 |
destination:port |
目的地的 IP 地址和連接埠。如果用戶端直接連線至負載平衡器,則目的地就是接聽程式。如果用戶端使用 VPC 端點服務連線,則目的地是 VPC 端點。 |
connection_time |
連線從開始到結束的完成時間,以毫秒計。 |
tls_handshake_time |
建立 TLS 連線後,TCP 交握完成的總時間,包括用戶端延遲,以毫秒為單位。此時間包含在 connection_time 欄位中。 |
received_bytes |
負載平衡器從用戶端接收的解密後位元數。 |
sent_bytes |
負載平衡器向用戶端傳送的加密前位元數。 |
incoming_tls_alert |
負載平衡器從用戶端收到的 TLS 警示整數值,如果有的話。否則,此值設定為 -。 |
chosen_cert_arn |
提供給用戶端的憑證的 ARN。若未傳送有效的用戶端 hello 訊息,則此值設定為 -。 |
chosen_cert_serial |
保留以供日後使用。此值設定為 -。 |
tls_cipher |
與用戶端交涉的密碼套件,採用 OpenSSL 格式。如果 TLS 交涉未完成,此值會設定為 -。 |
tls_protocol_version |
與用戶端交涉的字串格式 TLS 通訊協定。可能的值為 |
tls_named_group |
保留以供日後使用。此值設定為 -。 |
domain_name |
server_name 副檔名的值位於用戶端 hello 訊息中。此值為 URL 編碼。若未傳送有效的用戶端 hello 訊息或無副檔名,則此值設定為 -。 |
alpn_fe_protocol |
與用戶端交涉的應用程式通訊協定,採用字串格式。可能的值為 |
alpn_be_protocol |
與目標交涉的應用程式通訊協定,採用字串格式。可能的值為 |
alpn_client_preference_list |
用戶端您好訊息中的 application_layer_protocol_negotiation 延伸的值。此值為 URL 編碼。每個通訊協定用雙引號括起來,並以逗號分隔。如果 ALPN 接聽程式中未設定 TLS 政策、不會傳送有效的用戶端 Hello 訊息,或延伸模組不存在,則此值會設為 -。如果字串長度超過 256 個位元組,則會被截斷。 |
tls_connection_creation_time |
在 TLS 連線開始時記錄的時間,以 ISO 8601 格式顯示。 |
範例日誌項目
以下為日誌項目範例。請注意,分成多行顯示文字只是為了更輕鬆閱讀。
以下是沒有 TLS 政策的 ALPN 接聽程式範例。
tls 2.0 2018-12-20T02:59:40 net/my-network-loadbalancer/c6e77e28c25b2234 g3d4b5e8bb8464cd
72.21.218.154:51341 172.100.100.185:443 5 2 98 246 -
arn:aws:acm:us-east-2:671290407336:certificate/2a108f19-aded-46b0-8493-c63eb1ef4a99 -
ECDHE-RSA-AES128-SHA tlsv12 -
my-network-loadbalancer-c6e77e28c25b2234.elb.us-east-2.amazonaws.com
- - - 2018-12-20T02:59:30
以下是具有 TLS 政策的 ALPN 接聽程式範例。
tls 2.0 2020-04-01T08:51:42 net/my-network-loadbalancer/c6e77e28c25b2234 g3d4b5e8bb8464cd
72.21.218.154:51341 172.100.100.185:443 5 2 98 246 -
arn:aws:acm:us-east-2:671290407336:certificate/2a108f19-aded-46b0-8493-c63eb1ef4a99 -
ECDHE-RSA-AES128-SHA tlsv12 -
my-network-loadbalancer-c6e77e28c25b2234.elb.us-east-2.amazonaws.com
h2 h2 "h2","http/1.1" 2020-04-01T08:51:20
處理存取日誌檔
存取日誌檔已壓縮。如您利用 Amazon S3 主控台開啟檔案,則會解壓縮檔案並顯示資訊。如果您下載檔案,則必須先將其解壓縮才能看到資訊。
如果您的網站上有許多需求,負載平衡器產生的日誌檔可能有好幾 GB 的資料。您可能無法使用 line-by-line 處理來處理如此大量的資料。因此,您可能需要使用提供平行處理解決方案的分析工具。例如,您可以使用以下分析工具來分析和處理存取日誌:
-
Amazon Athena 是一種互動式查詢服務,可讓您使用標準 SQL 輕鬆分析 Amazon S3 中的資料。如需詳細資訊,請參閱《Amazon Athena 使用者指南》的查詢 Network Load Balancer 日誌。