GoAccess Web Log Analyzer¶
Pendahuluan¶
GoAccess adalah alat untuk memantau log server web secara real-time. Alat ini ditulis dalam bahasa C dan menggunakan pustaka ncurses yang populer untuk antarmuka dasbornya, yang dapat diakses langsung dari baris perintah.
Ini hebat karena Anda dapat terhubung ke server web apa pun yang Anda kendalikan melalui SSH dan melihat atau menganalisis statistik yang relevan dengan cepat dan aman. Selain antarmuka dasbor baris perintah, alat ini juga mampu menampilkan statistik dalam format lain seperti HTML, JSON, dan CSV, yang dapat Anda gunakan dalam konteks lain atau bagikan dengan orang lain.
GoAccess juga bisa menjadi alternatif yang bagus untuk alat analitik sisi klien, tergantung pada kebutuhan Anda. Alat ini menganalisis log server Anda secara langsung, sehingga Anda tidak perlu memuat skrip tambahan, dan data Anda sepenuhnya berada di bawah kendali Anda.
Dalam tutorial ini, Anda akan menginstal dan mengonfigurasi GoAccess untuk Apache di server web Ubuntu 20.04. Anda akan mengakses berkas log Apache dengan GoAccess sebelum meninjau modul yang tersedia dan pintasan navigasi pada antarmuka baris perintah.
Prasyarat¶
Untuk tutorial ini, Anda memerlukan hal-hal berikut:
Ubuntu 20.04
Apache2
Langkah 1 — Menginstal GoAccess¶
Pada langkah ini, Anda akan menginstal alat GoAccess dan dependensinya.
$ sudo apt update
$ sudo apt install goaccess
Langkah 2 — Mengedit Konfigurasi GoAccess¶
GoAccess dilengkapi dengan berkas konfigurasi yang memungkinkan Anda membuat perubahan permanen pada perilaku program. Anda akan mengedit berkas ini untuk menentukan waktu, tanggal, dan format log agar GoAccess dapat mengurai log server.
Berkas konfigurasi dapat terletak di ~/.goaccessrc atau %sysconfdir%/goaccess.conf, dengan %sysconfdir% berada di /etc/, /usr/etc/, atau /usr/local/etc/. Untuk mengetahui lokasi berkas konfigurasi di server Anda, jalankan perintah berikut:
$ goaccess --dcf
# output: /etc/goaccess/goaccess.conf
$ sudo nano /etc/goaccess/goaccess.conf
Catatan
Jika berkas ini tidak ada di server, pastikan untuk membuatnya terlebih dahulu dan mengisinya dengan konten berkas goaccess.conf di GitHub.
Banyak baris dalam berkas yang dikomentari. Untuk mengaktifkan opsi ini, hapus karakter # pertama di depannya. Mari kita aktifkan pengaturan format waktu untuk Apache terlebih dahulu. Pengaturan ini menentukan waktu dalam format log dan memungkinkan GoAccess untuk mengurai berkas log Apache teks biasa yang memenuhi kriteria pemformatan yang didukung.
# The following time format works with any of the
# Apache/NGINX's log formats below.
#
time-format %H:%M:%S
Berikutnya, Anda akan menghapus komentar pada pengaturan format tanggal Apache yang menentukan tanggal format log:
# The following date format works with any of the
# Apache/NGINX's log formats below.
#
date-format %d/%b/%Y
Terakhir, hapus komentar pada pengaturan log-format. Beberapa baris akan mengubah pengaturan ini, dan baris yang perlu dihapus komentarnya bergantung pada cara server web Anda dikonfigurasi. Jika Anda memiliki pengaturan non-virtual host, hapus komentar pada baris log-format berikut:
# NCSA Combined Log Format
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
Jika tidak, jika Anda telah menyiapkan host virtual, hapus komentar pada baris berikut:
# NCSA Combined Log Format with Virtual Host
log-format %v:%^ %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
Pada titik ini, Anda dapat menyimpan berkas dan keluar dari editor. Anda sekarang siap menjalankan program GoAccess dan menganalisis beberapa berkas log teks biasa Apache.
Langkah 3 — Mengakses Berkas Log Apache dengan GoAccess¶
Server Apache memberikan akses ke situs web Anda dan menyimpan log akses untuk semua lalu lintas HTTP yang masuk. Catatan ini, atau berkas log, disimpan di sistem dan dapat menjadi sumber informasi berharga tentang penggunaan dan audiens situs web Anda.
Di Ubuntu, berkas log Apache disimpan di direktori /var/log/apache2 secara default. Untuk memeriksa isi direktori ini, jalankan perintah berikut:
$ sudo ls /var/log/apache2
# output: access.log error.log other_vhosts_access.log
Jika server Anda sudah lama berjalan, Anda mungkin menemukan berkas .gz terkompresi di direktori ini yang berisi berkas log lama akibat rotasi log. Log terbaru ditempatkan dalam berkas access.log. Untuk server web dengan host virtual, Anda mungkin perlu melakukan cd ke sub-direktori dari dalam direktori /apache2 untuk menemukan berkas log setiap host.
Mari kita jalankan GoAccess terhadap log akses Apache untuk mendapatkan wawasan tentang jenis lalu lintas yang ditangani oleh server web. Jalankan perintah berikut untuk menganalisis berkas access.log Anda dengan GoAccess:
$ sudo goaccess /var/log/apache2/access.log
Ini akan meluncurkan dasbor baris perintah GoAccess.
Catatan
Jika Anda melihat prompt Konfigurasi Format Log, artinya perubahan yang Anda buat pada berkas konfigurasi GoAccess di langkah sebelumnya tidak berlaku. Pastikan berkas konfigurasi Anda berada di tempat yang tepat dan Anda telah menghapus komentar pada pengaturan yang diperlukan.
Seperti yang telah disebutkan sebelumnya, terkadang Anda memiliki beberapa berkas log terkompresi di server web yang berjalan lama. Untuk menjalankan GoAccess pada semua berkas ini tanpa mengekstraknya terlebih dahulu, Anda dapat menyalurkan output perintah zcat ke goaccess:
$ zcat /var/log/apache2/access.log.*.gz | goaccess -a
Berikutnya Anda akan mempelajari cara menavigasi antarmuka dasbor dengan cepat menggunakan pintasan keyboard.
Langkah 5 — Membuat Laporan¶
Selain menampilkan data di terminal, GoAccess juga memungkinkan Anda membuat laporan HTML, JSON, atau CSV. Pastikan Anda berada di direktori home sebelum menjalankan perintah apa pun di bagian ini:
$ cd ~
$ sudo goaccess /var/log/apache2/access.log -o stats.html
To output the report as static HTML, specify an HTML file as the argument to the -o flag. This flag also accepts filenames that end in .json or .csv.
File stats.html akan muncul di direktori pengguna Anda.
$ ls
# Output
goaccess-1.4 goaccess-1.4.tar.gz snap stats.html
Anda dapat menyalin berkas ini ke direktori pengguna di komputer lokal Anda menggunakan scp. Jalankan perintah ini dari komputer lokal Anda, bukan dari server jarak jauh:
Setelah berkas disalin, Anda dapat membukanya di peramban dengan perintah open:
$ open ~/stats.html # jika menggunakan macOS
$ xdg-open ~/stats.html # jika menggunakan Linux
Anda telah membuat laporan HTML dan melihatnya di browser Anda.
Kesimpulan¶
Dalam artikel ini, kami membahas alat baris perintah GoAccess dan cara menggunakannya untuk menganalisis log server. Meskipun kami hanya membahas bagaimana GoAccess dapat digunakan dengan log Apache, alat ini juga mendukung format log lain seperti Nginx, Amazon S3, Elastic Load Balancing, dan CloudFront.
Anda dapat memeriksa dokumentasi lengkap GoAccess atau menjalankan man goaccess di terminal Anda.