Mengakses Log CloudFront Menggunakan GoAccess

1 min read

Disclaimer
Saya bekerja di AWS, semua opini adalah dari saya pribadi. (I work for AWS, my opinions are my own.)
Mengakses Log CloudFront Menggunakan GoAccess
GoAccess – Penganalisa Log Web

TeknoCerdas.com – Salam cerdas untuk kita semua. CloudFront adalah layanan Content Delivery Network (CDN) dari AWS. Mengakses log CloudFront menggunakan GoAccess adalah alternatif selain menggunakan layanan Amazon CloudWatch.

GoAccess adalah sebuah penganalisa log interaktif untuk web yang dapat diakses melalui terminal atau melalui web browser. GoAccess adalah aplikasi open source dan dapat dijalankan pada sistem operasi berbasis *NIX seperti Linux, keluarga BSD dan MacOS.

Secara default GoAccess dapat mengenali berbagai format untuk log berbasis web. Seperti Apache, Nginx, S3, CloudFront dan lain-lain. Hal ini tentu menarik – cukup satu tool untuk analisa berbagai format log.

Mendownload Log CloudFront

Cara paling sederhana agar GoAccess dapat menganalisa log CloudFront adalah mendownload log tersebut ke komputer lokal atau dimana GoAccess dijalankan.

AWS CLI dapat digunakan untuk mendownload log CloudFront dari Amazon S3. Misal nama bucket yang digunakan adalah logs.teknocerdas.com dan prefix untuk log adalah cf.

$ aws s3 sync s3://logs.teknocerdas.com/cf/ ~/cf-logs/

Perintah diatas akan melakukan sinkronisasi log CloudFront ke lokal direktori ~/cf-logs/. Setiap log file dikompres menggunakan gzip. Contoh daftar file log CloudFront yang telah didownload di lokal.

E2HKWRW4M92OEN.2020-06-08-08.4b6fc551.gz        E2HKWRW4M92OEN.2020-06-24-08.1aabd8ad.gz
E2HKWRW4M92OEN.2020-06-08-08.93a3c569.gz        E2HKWRW4M92OEN.2020-06-24-08.1fd62ed1.gz
E2HKWRW4M92OEN.2020-06-08-08.c212307f.gz        E2HKWRW4M92OEN.2020-06-24-08.387c9992.gz
E2HKWRW4M92OEN.2020-06-08-08.d15f3d1b.gz        E2HKWRW4M92OEN.2020-06-24-08.579dfa3b.gz
E2HKWRW4M92OEN.2020-06-08-08.d86cd31b.gz        E2HKWRW4M92OEN.2020-06-24-08.7ddbcd27.gz
E2HKWRW4M92OEN.2020-06-08-08.f73da5fc.gz        E2HKWRW4M92OEN.2020-06-24-08.fabd349b.gz

Mengakses Log CloudFront Secara Interaktif Melalui Terminal

Setelah mendownload maka analisa log CloudFront menggunakan GoAccess dapat dilakukan. Jika analisa dilakukan secara interaktif melalui terminal maka tidak perlu ada output file yang dihasilkan terlebih dahulu. Semua bisa dilakukan dalam memory dengan memanfaatkan pipe pada shell.

Karena setiap log file dikompress menggunakan gzip maka perlu diekstrak terlebih dahulu kemudian data di-pipe ke GoAccess.

Berikut ini adalah contoh analasia log akses pada bulan Juni 2020.

find ~/cf-logs/ -type f -name *2020-06* -exec gunzip -c {} + | goaccess --log-format CLOUDFRONT

Perintah diatas akan mengekstrak semua log file ke STDOUT pada bulan Juni 2020 menggunakan gunzip. Output di STDOUT kemudian di-pipe ke goaccess dengan pembacaan format CloudFront. Hasilnya akan kurang lebih seperti berikut.

Mengakses log CloudFront dengan GoAccess
Mengakses log CloudFront secara Interaktif dengan GoAccess

Perintah find digunakan karena kemungkinan jumlah file terlalu banyak sehingga menyebabkan gunzip tidak bisa melakukan ekstrak.

Mengakses Log CloudFront Secara Interaktif Melalui Terminal

Selain menggunakan cara interaktif lewat terminal, GoAccess juga dapat melakukan export kedalam format HTML sehingga log dapat dianalisa lewat web browser.

Jika sebelumya analisa log cukup dilakukan dalam memory karena fitur piping pada shell. Maka untuk menganalisa log menggunakan web browser maka GoAccess perlu melakukan export output kedalam sebuah file.

Mengakses log CloudFront dengan GoAccess
Mengakses log CloudFront secara visual dengan GoAccess

GoAccess secara default melakkan analisa log secara realtime karena ia akan mengecek perubahan di file setiap 200 ms.

Bagaimana – apakah anda tertarik untuk menganalisa log CloudFront atau web server menggunakan GoAccess?