Parameter Logrotate Lengkap: Fungsi, Syntax, dan Contoh Konfigurasi

Logrotate adalah utilitas bawaan sistem Linux yang dirancang untuk mengelola file log yang ukurannya terus membengkak secara otomatis. Alat ini bertugas melakukan rotasi, kompresi, penghapusan, dan pengiriman file log agar tidak menghabiskan kapasitas penyimpanan server serta memudahkan proses audit.

File konfigurasi utama terletak di /etc/logrotate.conf, sementara konfigurasi tambahan untuk aplikasi spesifik diletakkan di dalam direktori /etc/logrotate.d/. Berikut adalah rincian parameter logrotate lengkap beserta fungsi dan contoh penggunaannya di lingkungan produksi.

Tabel Parameter Utama Logrotate

Parameter Fungsi Utama Contoh Nilai
daily / weekly / monthly / yearly Menentukan frekuensi siklus rotasi log dilakukan. weekly
rotate <count> Menentukan jumlah arsip file log lama yang disimpan sebelum dihapus. rotate 4
size <size> Melakukan rotasi jika ukuran file log melampaui batas (k, M, G). size 100M
compress Mengompres file log lama menggunakan gzip untuk menghemat ruang. compress
delaycompress Menunda kompresi log pada rotasi pertama (biasanya dipasangkan dengan compress). delaycompress
missingok Mengabaikan pesan error jika file log tidak ditemukan tanpa menghentikan proses. missingok
notifempty Mencegah rotasi jika file log berukuran 0 byte (kosong). notifempty
create <mode> <owner> <group> Membuat file log baru yang kosong segera setelah rotasi selesai dengan izin tertentu. create 0640 www-data adm
dateext Menambahkan ekstensi tanggal (YYYYMMDD) pada file arsip alih-alih nomor urut. dateext
sharedscripts Menjalankan skrip postrotate/prerotate sekali untuk seluruh log, bukan per file log. sharedscripts

Contoh Blok Konfigurasi Logrotate

Berikut adalah contoh implementasi konfigurasi logrotate untuk aplikasi web Nginx yang disimpan pada direktori /etc/logrotate.d/nginx:

/var/log/nginx/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 0640 nginx adm
    sharedscripts
    postrotate
        if [ -d /run/systemd/system ]; then
            systemctl reload nginx.service > /dev/null 2>&1
        fi
    endscript
}

Penjelasan Alur Eksekusi Skrip

Logrotate biasanya dijalankan secara otomatis setiap hari melalui cron job (/etc/cron.daily/logrotate). Saat eksekusi berjalan, utilitas ini membaca direktori konfigurasi dan mencatat status terakhirnya di dalam file /var/lib/logrotate/status.

Langkah-Langkah Debugging dan Troubleshooting

Jika konfigurasi logrotate tidak berjalan sesuai harapan, Anda dapat melakukan pengujian manual menggunakan mode verbose dan dry-run agar file log asli tidak terpengaruh:

# Menjalankan logrotate secara manual dengan mode paksa dan verbose
logrotate -vf /etc/logrotate.d/nginx

# Melakukan simulasi pengujian tanpa mengubah file apa pun
logrotate -d /etc/logrotate.conf

Pastikan hak akses file konfigurasi di dalam /etc/logrotate.d/ diatur dengan benar (root-owned dan tidak writable oleh grup/others) agar dibaca oleh sistem.