查詢 Classic Load Balancer 記錄 - Amazon Athena

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

查詢 Classic Load Balancer 記錄

使用 Classic Load Balancer 日誌來分析和了解往返於 Elastic Load Balancing 執行個體與後端應用程式的流量模式。您可以查看流量的來源、延遲和已傳輸的位元組。

分析 Elastic Load Balancing 日誌之前,請對其進行設定,以在目的地 Amazon S3 儲存貯體中儲存。如需詳細資訊,請參閱為您的 Classic Load Balancer 啟用存取日誌

若要為 Elastic Load Balancing 日誌建立資料表
  1. 將下列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/';
  2. 修改 LOCATION Amazon S3 儲存貯體,以指定您的 Elastic Load Balancing 日誌的目的地。

  3. 在 Athena 主控台中執行查詢。查詢完成之後,Athena 會註冊 elb_logs 資料表,讓其中的資料可供您查詢。如需詳細資訊,請參閱查詢範例

查詢範例

使用與以下範例類似的查詢。它會列出傳回 4XX5XX 錯誤回應碼的後端應用程式伺服器。使用 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 中分析資料