
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.
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 {lalu, kemudian tambahkan pada context `server`:
# 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"';
....
}
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