2017-07-29 3 views
0

Ich habe die Zugriffsprotokollierung für meinen AWS-ALB konfiguriert. Es speichert diese Protokolle in einem S3-Bucket in einem Intervall ab.AWS-ALB-Zugriffsprotokolle an einer Stelle anzeigen

Um sie anzuzeigen, müssen Sie herunterladen, dann entpacken Sie die Datei und schauen Sie durch den Text.

Ich möchte eine Liste der ALB HTTP-Anfragen an einer Stelle sehen, ohne den oben genannten Prozess durchlaufen zu müssen.

Bietet AWS so etwas?

+0

Sie die Protokolle mit Athena abfragen können https://aws.amazon.com/athena/ –

Antwort

2

Die AWS-Anwendung Load Balancer speichert Protokolldateien in Amazon S3.

Amazon Athena kann dann verwendet werden, um die in S3 gespeicherten Dateien abzufragen. Der wichtige Teil ist, das Dateiformat zu kennen.

diesen ausgezeichneten Artikel: Athena & ALB Log Analysis

Sie nutzen diese Abfrage die Tabelle zu erstellen:

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/'; 
+0

Für meine Zwecke funktioniert dies einwandfrei. Vielen Dank! – mcdrummerman

1

AWS die Logfiles in S3 setzt .. Das nicht geändert werden kann, und ich sehe keine anderen besseren Ort könnte AWS diese Protokolle auch setzen. Was zählt, ist, wie Sie diese Protokolle von S3 verarbeiten möchten! Was ist deine Anforderung dort?

Nur wenige Optionen:

  1. Wie von John erwähnt; Sie können Athena verwenden, um direkt nach diesem S3-Bucket zu fragen. Es ist etwas wie Sie haben diese Protokolle auf Ihrem lokalen Dateisystem und Sie grep darauf laufen.

  2. Wenn Sie diese Daten aggregieren müssen; Erstellen Sie einige Berichte/Dashboards -> Verwenden Sie EMR für diese Protokolldateien.

  3. Wenn Sie diese Dateien wirklich anzeigen müssen; Sie können immer einen Cronjob auf einem Server einrichten, der jede Stunde läuft, was genau das tut, was Sie oben manuell tun. Dadurch wird sichergestellt, dass Sie die Log-Dateien IMMER bereit für den Verbrauch haben.

  4. Wir können diese Protokolldateien sogar in CloudWatch-Protokolle, Kinesis-Stream, einfügen.

Alles auf Ihrer Anforderung hängt ..

Verwandte Themen