
AWS CloudFront Logfileauswertung in Matomo
AWS CloudFront Logfileauswertung in Matomo
Bei mehreren Kunden setzen wir AWSCloudFront als CDN und Reverse Proxy vor dem Webserver ein. Das beschleunigt die Auslieferung von Seiten und Assets und entlastet gleichzeitig den Webserver. Bei richtig konfigurierten TYPO3-Caches und passenden Cache-Headern erreichen wir im CDN eine Hit-Rate von bis zu 91 %. Das ist eine spürbare Entlastung für den Webserver.
Eine Auswertung der Besucher durch die Analyse der Webserver Logs mit einer entsprechenden Software ist aber bei dem Betrieb hinter einem Reverse Proxy nicht möglich: Da CloudFront vorgeschaltet ist, landen nur noch wenige Anfragen im Webserver-Log. Klassische Logfile-Analyse wird dadurch weitgehend nutzlos. Natürlich könnte man clientseitiges Tracking wie Matomo oder Google Analytics einbauen – genau das wollten wir aber aus Performance- und Datenschutz-Gründen (und weil es nicht immer nötig ist) vermeiden.
Wie können wir die Logfiles aus CloudFront in Matomo sinnvoll auswerten?
AWS CloudFront bietet aktuell drei Möglichkeiten, Web-Access-Logfiles für die Requests zu erhalten.
- Logfiles werden in ein S3 Bucket geschrieben
- RealTime Logs, die dann z.B. mittels Amazon Kinesis verarbeitet werden
- Lambda@Edge-Logs die an CloudWatch gesendet werden
Wir haben uns für die klassische S3-Variante entschieden:
Dabei schreibt CloudFront für jeden verwendeten Point of Presence (PoP) ein eigenes Logfile. Gut zu wissen: Die Dauer, die ein solches Log abdeckt, ist nicht festgelegt. Auch wann genau das Log im S3-Bucket abgelegt wird, verrät Amazon nicht. Nur, dass es bis zu 48 Stunden dauern kann, bis einzelne Logs im S3 Bucket sind.
Zum Glück ist die Reihenfolge der Logfiles und der Zeitpunkt der Verarbeitung bei Matomo egal. Außerdem kann Matomo die Logs von AWS Cloudfront nativ verarbeiten.
Was jetzt noch fehlte, war ein kleines Skript, welches die Logs nacheinander aus dem S3 Bucket abholt, verarbeitet und in ein Archiv verschiebt. Um die automatische Löschung nach 30 Tagen kümmert sich die S3-Retention-Policy.
Fertig.
Das Skript gibt es auf GitHub.
Wir freuen uns, wenn Ihr diesen Beitrag teilt.
Kommentare
Keine Kommentare gefunden.