Menggunakan Nginx Conditional Logging

 

  • Published by irvanh
  • 08/07/2020 08:57:42 WIB
Log adalah salah satu elemen penting dalam melakukan analisis, debugging atau troubleshooting yang membutuhkan sebuah tindakan. Tanpa log, kadang proses analisis/debugging/troubleshooting akan semakin sulit. Tanpa arah.

Dalam konteks webserver, hal ini sangat membantu tetapi "harga" yang harus dibayarkan lumayan mahalĀ  - performance. Terlebih lagi bila website dengan trafik yang sangat tinggi, misal 1.000 hit per detik(?). Pertimbangan lainnya, dengan trafik yang sangat tinggi, tentunya ukuran file log pun semakin besar dan lagi, kadang tidak semua informasi kita butuhkan, hanya pada bagian tertentu/spesifik saja.

Salah satu cara yang biasa digunakan adalah dengan memanfaatkan "conditional logging" pada webserver Nginx. Misalnya saja, kita ingin mencatat pada URL "halaman/login" dengan method POST untuk disimpan dalam log file:


http {

# tangkap URL `/halaman/login`.
map $request_uri $loguri{
default 0;
~^/halaman/login 1;
}

# bila method `POST`, catat dan simpan dalam log.
map $request_method $loggable {
default 0;
POST $loguri;
}

# format data yang dibutuhkan/catat.
log_format userlogin '$remote_addr [$time_local] '
'"$request" $status "$http_referer" '
'"$http_user_agent"';

....
}
lalu, kemudian tambahkan pada context `server`:

server {
...

access_log /var/log/nginx/user_login.log userlogin if=$loggable;

...
}

Nah, dengan sedikit penambahan pada konfigurasi Nginx, setidaknya (diharapkan) "beban hidup" para Opisboy akan sedikit lebih berkurang. #LOL

Semoga bermanfaat. Tetap semangat dan berkarya!

Salam, Opisboy



Comments