Logging informasi pada server akan membantu Anda memecahkan masalah dan menilai situasi yang muncul. Pada artikel ini, kita akan membahas tentang konfigurasi logging Nginx di VPS dengan operasi sistem Linux CentOS, misalnya cara disable error_log dan access_log. Cara ini juga bisa anda terapkan jika anda menggunakan Nginx pada distribusi Linux yang lain dengan cara yang sama.
Sebelum kita mulai hendaknya kita tahu dimana file konfigurasi nginx. File konfigurasi Nginx bisa anda jumpai di:
/etc/nginx/nginx.conf
atau di
/etc/nginx/conf.d/default.conf
atau jika anda sebelumnya melakukan setting nginx server block, file konfig berada di tiap file *.conf di:
/etc/nginx/default.d/*.conf
atau jika anda sebelumnya melakukan setting nginx server block, file konfig berada di tiap file *.conf di:
/etc/nginx/sites-available/*.conf
Anda bisa membuka file tersebut dengan teks editor nano
dan melihat baris-baris untuk konfigurasi logging Nginx server.
nano /etc/nginx/nginx.conf
Error_log Directive
Nginx menggunakan beberapa arahan yang berbeda untuk mengontrol sistem logging, yang termasuk dalam modul inti disebut error_log
.
Sintak Error_log
Di Apache ini dikenal dengan ErrorLog directive, “error_log” direktif digunakan untuk menghandle pesan kesalahan umum di server. Contoh sintak error log direktif sebagai berikut:
error_log /var/log/nginx/error.log crit;
error_log
adalah nama file yang akan digunakan untuk merekam aktivitas logging di server.
crit
adalah level logging yang ingin direkam dala file error.log
.
Level Logging
Pada error_log direktif dapat dikonfigurasi sesuai dengan kebutuhan dengan tingkat/level log seperti berikut ini:
emerg : Situasi darurat di mana sistem ini dalam keadaan tidak dapat digunakan.
alert : Situasi berat di mana tindakan yang diperlukan segera.
crit : Masalah penting yang perlu diatasi.
error : Sebuah kesalahan telah terjadi, sesuatu tidak berhasil/gagal diproses.
warn : Sesuatu yang luar biasa terjadi, tapi tidak perlu perhatian yang sangat serius.
notice :Sesuatu yang normal, namun perlu dicatat telah terjadi.
Info : Sebuah pesan informasi yang mungkin bagus untuk tahu.
debug : Informasi debugging yang dapat berguna untuk menentukan di mana masalah terjadi.
List level diatas telah diurutkan sesuai level dengan prioritas tertinggi.
Dengan mengkonfigurasikan error_log dan memberi level spesifik, maka informasi yang direkam hanya yang sesuai dengan level itu saja, misalnya:
error_log /var/log/nginx/error.log crit;
Maka yang terekam dalam file error.log hanya informasi critical atau masalah kritis pada server dan harus segera diatasi. Kebalikannya jika anda tidak mengkonfigurasikan error_log dengan level spesifik maka semua informasi pesan general error di server akan direkam.
Cara Disable error_log Nginx
Ukuran file error_log semakin lama akan akan semakin besar dan ini tidak baik karena akan memberi beban disk space. Ini adalah solusi cara untuk disable error_log Nginx secara permanen yaitu dengan konfig seperti berikut:
error_log /dev/null;
Ini tidak disarankan, sebaiknya jangan didisable tapi diberi level seperti contoh diatas, agar kita tahu jika terjadi kesalahan-kesalahan pada server kita. Namun Anda bisa menghapus file error.log
secara berkala atau mendownloadnya terlebih dahulu untuk sekedar arsip sebelum dihapus
Sementara error_log adalah modul inti, berikutnya adalah HttpLogModule Logging Directive.
HttpLogModule Logging Directive
access_log direktif adalah bagian dari HttpLogModule, semua informasi aktivitas user diwebsite akan terekam disini, misalnya: User-A melihat halaman kontak anda dengan url: http://idnetter.com/kontak aktivitas ini akan dicatat oleh access_log, bersamaan dengan itu, jika ada link di halaman kontak tersebut tidak valid maka juga akan terekam di access_log, misalnya: link CSS, image dan JS.
Masalahnya jika saja ada 1000 user sedang mengunjungi halaman kontak tersebut maka tidak diragukan file size access_log akan cepat membengkak. Solusinya adalah dengan melakukan rotasi file log – Log Rotation baik secara manual maupun otomatis yang akan kita bahas selanjutnya.
Banyak pengembang website tidak membutuhkan access_log, untuk itu anda bisa langsung mendisable access_log dengan konfigurasi seperti dibawah ini.
Cara Disable access_log Nginx
Jika anda tidak ingin system mencatat access log, Berikut cara disable access_log:
access_log off;
Atau dengan cara yang sama seperti modul inti pada error_log, access_log output akan dikirim ke /dev/null, dengan cara ini maka access log akan didisable permanen.
access_log /dev/null;
Selamat mencoba.
Referensi: Digital Ocean