Mengubah Log pada Nginx Menjadi Mudah di Kelola
Jadikan catatan aktivitas pengguna menjadi mudah dikelola
Nginx merupakan web server yang umum digunakan untuk melayani kebutuhan web, seperti web server untuk web statis, menjadi loadbalancer, dll. Pada penggunaannya, Nginx mencatat segala akses dan error yang terjadi. Setiap akses akan disimpan sebagai access.log
dan error sebagai error.log
. Karena banyaknya akses dan error yang kemungkinan terjadi, maka akan semakin banyak pula yang dicatat dalam log sehingga kita perlu membuat log agar mudah diolah.
Membuat Log Format
Dengan membuat format log, kita mendaftarkan format yang baru agar log yang disimpan oleh Nginx mengikuti format tersebut. Format dari log akan kita buat polanya dengan memanfaatkan variabel yang sudah disediakan oleh Nginx. Adapun variabel-variabel tersebut dapat dilihat di dokumentasi Nginx.
Mendaftarkan format log baru ke Log Format, dapat dilakukan dengan cara berikut ini:
- buka konfigurasi di
/etc/nginx/nginx.conf
atau di lokasi lain sesuai pengaturan masing-masing - pada blok
http
, tambahkan Log Format baru dengan penulisan berikutlog_format nama_format 'isi format';
- ubah
nama_format
dengan nama dari format yang akan kita daftarkan, contohupstreamlog
- ubah
isi format
dengan format yang kita inginkan dengan tetap menuliskan tanda kutip 1
Berikut ini contoh format log yang di daftarkan pada Log Format.
log_format upstreamlog 'remote_addr: $remote_addr | '
'remote_user: $remote_user | '
'time_local: $time_local | '
'request: $request | '
'status: $status | '
'body_bytes_sent: $body_bytes_sent | '
'http_referer: $http_referer | '
'upstream_addr: $upstream_addr | '
'upstream_response_time: $upstream_response_time | '
'request_time: $request_time | '
'msec: $msec | '
'http_user_agent: $http_user_agent';
Format log di atas didesain agar:
- memiliki format yang konsisten (meskipun tidak standard) dengan separator antar data menggunakan tanda pipe dan antara nama dengan isi data menggunakan titik dua
- mudah diserialisasi karena format yang konsisten tersebut
- lebih ringan daripada json karena hemat beberapa karakter
Menggunakan Log Format
Setelah mendaftarkan format log pada Log Format, kita dapat menggunakannya pada log yang berjalan saat ini. Berikut ini cara menggunakannya.
- pada blok
http
, temukan konfigurasiaccess_log /var/log/nginx/access.log
- jika ada, ubah menjadi
access_log /var/log/nginx/access.log nama_format;
- jika tidak ada, langsung tambahkan saja
Penutup
Log menjadi hal yang penting ketika sebuah aplikasi sudah benar-benar digunakan terutama untuk mengetahui seperti apa aktivitas pengguna. Ke depannya, dengan bermodalkan log tersebut, kita dapat mengambil informasi tertentu agar dapat meningkatkan layanan pada aplikasi.
Terima kasih sudah baca.
Kalau mau diskusi, komen aja. Kalau mau berteman, bilang aja ๐