我有爲我的AWS ALB配置的訪問日誌記錄。它會將這些日誌在一段時間內轉儲到S3存儲桶中。在一個地方查看AWS ALB訪問日誌
要查看它們,您必須下載然後解壓縮文件並查看文本。
我想在一個地方看到ALB HTTP請求列表,而不必經歷上述過程。
AWS提供類似這樣的東西嗎?
我有爲我的AWS ALB配置的訪問日誌記錄。它會將這些日誌在一段時間內轉儲到S3存儲桶中。在一個地方查看AWS ALB訪問日誌
要查看它們,您必須下載然後解壓縮文件並查看文本。
我想在一個地方看到ALB HTTP請求列表,而不必經歷上述過程。
AWS提供類似這樣的東西嗎?
AWS Application Load Balancer將日誌文件保存到Amazon S3中。
然後亞馬遜雅典娜可用於查詢保存在S3中的文件。重要的部分是瞭解文件格式。
見這個優秀的文章:Athena & ALB Log Analysis
他們使用此查詢來創建表:
CREATE EXTERNAL TABLE IF NOT EXISTS logs.web_alb (
type string,
time string,
elb string,
client_ip string,
client_port string,
target string,
request_processing_time int,
target_processing_time int,
response_processing_time int,
elb_status_code int,
target_status_code string,
received_bytes int,
sent_bytes int,
request_verb string,
request_url string,
request_proto string,
user_agent string,
ssl_cipher string,
ssl_protocol string,
target_group_arn string,
trace_id string
)
PARTITIONED BY(year string, month string, day 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]*) \"([^ ]*) ([^ ]*) ([^ ]*)\" \"([^\"]*)\" ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*)'
) LOCATION 's3://{{BUCKET}}/AWSLogs/{{ACCOUNT}}/elasticloadbalancing/us-east-1/';
日誌我的目的,這完美的作品。謝謝! – mcdrummerman
AWS把這些日誌文件在S3 ..這無法改變,我看不出有任何另一個更好的地方AWS也可以把這些日誌。現在,重要的是你想如何從S3處理這些日誌!那裏你的要求是什麼!
幾個選項:
正如約翰提到的;您可以使用Athena直接查詢此S3存儲桶。這就像你有這些日誌在你的本地文件系統上,你運行grep。
如果您需要彙總此數據,創建一些報告/儀表板 - >在這些日誌文件上使用EMR。
如果您需要真正查看這些文件;您可以隨時在每小時運行一臺服務器上設置一個cronjob,這個服務器正是您手動完成的操作。這將確保您有日誌文件隨時可供使用。
我們甚至可以將這些日誌文件放入CloudWatch日誌,Kinesis流。
這一切都取決於你的需求..
可以查詢與雅典娜https://aws.amazon.com/athena/ –