本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
查詢 Classic Load Balancer 記錄
使用 Classic Load Balancer 日誌來分析和了解往返於 Elastic Load Balancing 執行個體與後端應用程式的流量模式。您可以查看流量的來源、延遲和已傳輸的位元組。
分析 Elastic Load Balancing 日誌之前,請對其進行設定,以在目的地 Amazon S3 儲存貯體中儲存。如需詳細資訊,請參閱為您的 Classic Load Balancer 啟用存取日誌。
若要為 Elastic Load Balancing 日誌建立資料表
-
將下列DDL陳述式複製並貼到 Athena 主控台。檢查 Elastic Load Balancing 日誌記錄的語法。您可能需要更新以下查詢,為記錄的最新版本包含欄和 Regex 語法。
CREATE EXTERNAL TABLE IF NOT EXISTS elb_logs ( timestamp string, elb_name string, request_ip string, request_port int, backend_ip string, backend_port int, request_processing_time double, backend_processing_time double, client_response_time double, elb_response_code string, backend_response_code string, received_bytes bigint, sent_bytes bigint, request_verb string, url string, protocol string, user_agent string, ssl_cipher string, ssl_protocol string ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1', 'input.regex' = '([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*)[:-]([0-9]*) ([-.0-9]*) ([-.0-9]*) ([-.0-9]*) (|[-0-9]*) (-|[-0-9]*) ([-0-9]*) ([-0-9]*) \\\"([^ ]*) ([^ ]*) (- |[^ ]*)\\\" (\"[^\"]*\") ([A-Z0-9-]+) ([A-Za-z0-9.-]*)$' ) LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/
AWS_account_ID
/elasticloadbalancing/'; -
修改
LOCATION
Amazon S3 儲存貯體,以指定您的 Elastic Load Balancing 日誌的目的地。 -
在 Athena 主控台中執行查詢。查詢完成之後,Athena 會註冊
elb_logs
資料表,讓其中的資料可供您查詢。如需詳細資訊,請參閱查詢範例。
查詢範例
使用與以下範例類似的查詢。它會列出傳回 4XX
或 5XX
錯誤回應碼的後端應用程式伺服器。使用 LIMIT
運算子來限制一次查詢的日誌數量。
SELECT timestamp, elb_name, backend_ip, backend_response_code FROM elb_logs WHERE backend_response_code LIKE '4%' OR backend_response_code LIKE '5%' LIMIT 100;
使用後續的查詢來將依後端 IP 地址和 Elastic Load Balancing 執行個體名稱分組的所有交易的回應時間加總。
SELECT sum(backend_processing_time) AS total_ms, elb_name, backend_ip FROM elb_logs WHERE backend_ip <> '' GROUP BY backend_ip, elb_name LIMIT 100;
如需詳細資訊,請參閱使用 Athena 在 S3 中分析資料