Mengubah Log pada Nginx Menjadi Mudah di Kelola

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:

  1. buka konfigurasi di /etc/nginx/nginx.conf atau di lokasi lain sesuai pengaturan masing-masing
  2. pada blok http, tambahkan Log Format baru dengan penulisan berikut
    log_format nama_format 'isi format';
    
  3. ubah nama_format dengan nama dari format yang akan kita daftarkan, contoh upstreamlog
  4. 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:

  1. memiliki format yang konsisten (meskipun tidak standard) dengan separator antar data menggunakan tanda pipe dan antara nama dengan isi data menggunakan titik dua
  2. mudah diserialisasi karena format yang konsisten tersebut
  3. 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.

  1. pada blok http, temukan konfigurasi access_log /var/log/nginx/access.log
  2. jika ada, ubah menjadi access_log /var/log/nginx/access.log nama_format;
  3. 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 ๐Ÿ˜Ž