Dalam pengelolaan sistem informasi maupun server, salah satu aspek penting adalah pencatatan log. Log digunakan untuk mencatat aktivitas, kesalahan, dan informasi lain yang diperlukan untuk analisis serta troubleshooting. Namun, seringkali muncul kesalahan umum di mana log tidak dikonfigurasi agar melakukan rotasi secara otomatis. Jika hal ini terjadi, file log akan terus bertambah, menumpuk, dan menyebabkan berbagai masalah.
Log rotation adalah proses di mana file log secara berkala dipindahkan, diarsipkan, atau dihapus agar tidak membesar tanpa batas waktu. File log yang sudah terlalu besar biasanya diganti dengan yang baru, dan file log lama disimpan dengan format tertentu (misalnya, tanggal). Konsep ini sangat penting terutama pada server yang menerima trafik tinggi dan menghasilkan banyak log setiap hari.
Kesalahan ini sering terjadi karena beberapa faktor, antara lain:
Agar file log tidak menumpuk, solusi utamanya adalah mengaktifkan dan mengonfigurasi log rotation pada sistem maupun aplikasi terkait. Berikut adalah langkah-langkah solusi yang dapat diaplikasikan:
Langkah pertama adalah mengetahui file log mana saja yang cepat bertambah ukurannya. Gunakan perintah seperti du dan ls di server untuk melihat file log besar.
ls -lh /var/log/
logrotatePada sistem berbasis Linux, logrotate adalah tool yang umum digunakan untuk log rotation. Berikut cara penggunaannya:
sudo apt install logrotate atau sudo yum install logrotate./etc/logrotate.conf atau buat file baru di /etc/logrotate.d/.
/var/log/app.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 root root
}
Penjelasan:
daily: Rotasi dilakukan setiap hari.rotate 7: Simpan 7 file log lama.compress: Kompres file log lama agar hemat ruang.missingok: Jika log tidak ada, abaikan.notifempty: Rotasi hanya dilakukan jika log tidak kosong.create: Membuat file log baru dengan izin tertentu.
Banyak aplikasi menyediakan konfigurasi log rotation sendiri. Misal, pada nginx atau apache, log rotation dapat menggunakan logrotate. Ada pula aplikasi seperti Node.js yang membutuhkan module tambahan seperti winston atau rotating-file-stream.
const rfs = require("rotating-file-stream");
const accessLogStream = rfs.createStream("access.log", {
interval: "1d",
path: "/var/log"
});
Pada Windows, rotasi log dapat dilakukan dengan tools seperti PowerShell atau aplikasi pihak ketiga. Contoh sederhana menggunakan PowerShell:
Get-ChildItem "C:Logs" -Filter "*.log" |
Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-7)} |
Remove-Item
Skrip di atas menghapus log yang berumur lebih dari 7 hari.
Pastikan proses log rotation berjalan otomatis dengan cron job pada Linux:
0 1 * * * /usr/sbin/logrotate /etc/logrotate.conf
Selain itu, lakukan audit berkala dan monitoring kapasitas disk agar proses rotasi benar-benar efektif.
Tidak menyediakan log rotation adalah kesalahan umum yang dapat berdampak pada performa, keamanan, dan stabilitas sistem. Untuk mengatasinya, konfigurasikan log rotation pada semua file log yang menumpuk, baik melalui tool bawaan sistem operasi maupun aplikasi. Dengan log rotation yang terkonfigurasi dengan baik, proses manajemen log menjadi lebih efektif, menjaga kapasitas disk, dan mempermudah dalam analisis log serta troubleshooting jika terjadi masalah.