Kapan saya harus menggunakan database untuk login dan kapan file teks?
Saya melihat bahwa server web dan kerangka kerja web (yang digunakan aplikasi Anda secara internal) biasanya (selalu?) Mencatat permintaan dan kesalahan ke dalam file teks secara default. Tetapi saya melihat bahwa orang-orang yang mengembangkan aplikasi mereka di sekitar server dan kerangka kerja itu kadang-kadang masuk ke dalam basis data (bahkan DB utama aplikasi, bukan yang eksternal).
Mungkin juga ada perbedaan antara log debug dan log audit - Saya telah membaca klasifikasi ini di suatu tempat di situs ini.
25
Jawaban:
Dalam istilah yang sangat umum, masuk ke file teks jauh lebih cepat daripada masuk ke database. Itulah aspek utama pencatatan yang perlu Anda pertimbangkan.
Alasan Anda masuk ke DB lebih mungkin karena Anda ingin menanyakan hasil - mencari info log tertentu lebih mudah dalam DB, terutama jika Anda mencatat informasi kontekstual yang dapat digunakan untuk mengelompokkan entri log bersama. Biasanya juga lebih mudah untuk mengakses pusat DB daripada file log pada server yang mungkin diamankan dan tidak dapat diakses.
Yang ideal adalah untuk login secara lokal ke file, dan kemudian memigrasikan data ini ke DB untuk diperiksa jika diperlukan sesudahnya.
Sekarang audit adalah binatang yang sama sekali berbeda. Walaupun mirip dalam konsep logging, audit biasanya perlu disimpan untuk waktu yang lama (tidak seperti file log yang digunakan untuk debugging atau pelacakan yang dapat dihapus dengan segera). Audit ada untuk menunjukkan informasi penting. Anda mencatat jauh lebih sedikit informasi audit dan lebih jarang daripada pencatatan normal sehingga kinerja tidak menjadi masalah. Karena alasan inilah keuntungan penulisan info audit ini ke DB pusat terlihat.
sumber
Tidak ada satu ukuran yang cocok untuk semua pendekatan dan untuk ketahanan, Anda terkadang ingin menggunakan beberapa pendekatan. Mengambil contoh Anda, Anda mungkin ingin menyimpan log debug dalam file dan menyimpan log audit dalam DB.
Remah roti aplikasi
Pro: Mudah diimplementasikan dan langsung terlihat oleh pengguna
Cons: Informasi hanya berlanjut saat aplikasi menyala
File teks
Pro: Mudah diimplementasikan
Cons: Perlu memastikan penguncian file tidak terjadi. Apa yang harus dilakukan ketika ruang disk habis pada drive log?
Log acara
Pro: Mudah diimplementasikan
Cons: Log peristiwa mungkin menjadi penuh jika tidak disiapkan dengan benar atau log lama bisa hilang karena kebijakan retensi / cleardown.
Basis data
Pro: Mudah diimplementasikan
Cons: Lebih banyak lalu lintas DB. Bagaimana cara mencatat kehilangan DB atau masalah DB lainnya?
Pesan (MQ)
Pro: Api dan lupakan
Cons: Lapisan lain salah. Membutuhkan pengaturan
sumber
Log audit harus memastikan keterlacakan penuh operasi dalam waktu yang lebih lama untuk keperluan audit, dengan tujuan untuk sepenuhnya membenarkan konten database Anda.
Dalam beberapa kasus (misalnya aplikasi keuangan) log ini mungkin harus memastikan kepatuhan dengan persyaratan hukum seperti retensi (di beberapa negara selama 10 tahun) atau tidak dapat diubah. Karena log-log ini harus menjustifikasi konten db pada tingkat aplikasi, adalah praktik umum untuk menyimpannya di db, di mana akses dapat dikontrol untuk menghindari perubahan yang tidak sah.
Log lain , seperti log pemantauan atau log keamanan sering harus mengatasi kendala kinerja dan volume. Ini umumnya ditulis ke file karena lebih cepat untuk menulis (tanpa overhead manajemen transaksi) lebih mudah untuk diarsipkan secara offline, dan lebih mudah untuk diintegrasikan dengan alat pemantauan SIEM eksternal .
Perlu dicatat bahwa, meskipun jenis log ini dapat digunakan untuk menunjukkan keandalan log audit (misalnya tidak ada akses tidak sah), mereka umumnya memiliki kendala retensi yang lebih pendek (misalnya antara 6 bulan dan 2 tahun untuk keperluan penegakan hukum dari log telekomunikasi) jika ada kendala sama sekali.
sumber
Salah satu dari banyak alasan untuk menggunakan db untuk debug logging adalah Ketika Anda tidak memiliki akses ke aplikasi atau server web untuk melihat penampil acara atau file teks
Log audit berbeda dari log debug dalam konteks aplikasi web, seperti dalam beberapa aplikasi Anda mungkin perlu menunjukkannya kepada pengguna akhir sehingga mereka harus masuk ke database untuk pengambilan mudah.
Anda dapat menggunakan DB Tools untuk memfilter dan juga mudah dilihat.
sumber