Logrotate adalah sistem manajemen yang otomatis merotasi dan mengkompressi file log kemudian menyimpan backupnya dengan nama lain.
Mengapa file log harus di rotasi? Jika file log tidak di rotasi dan dikompress, maka file tersebut dapat menghabiskan hardisk.
Logrotate biasanya sudah terinstall otomatis di sistem linux dan anda tinggal melakukan konfigurasinya saja.
Kami menggunakan sistem operasi Centos dan untuk melihat versi logrotate bisa dengan menjalankan perintah berikut ini
logrotate -v
Adapun nilai default kita bisa melihatnya di /etc/logrotate.conf
cat /etc/logrotate.conf
dan keluar
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # use date as a suffix of the rotated file dateext # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp and btmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 } /var/log/btmp { missingok monthly create 0600 root utmp rotate 1 }
Kita ambil contoh dari syslog
cat /etc/logrotate.d/syslog
keluar
/var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript }
syslog akan merotasi file cron,maillog,messages,secure dan spooler mengikuti setting default yaitu weekly, rotate 4 dst
/var/log/apt/history.log { rotate 12 monthly compress missingok notifempty }
rotate akan menyimpan backup sebanyak 12 file monthly akan dirotasi setiap sebulan sekali, variable lainya daily, weekly compress file akan dikompresi missingok tidak menampilkan error meskinpun file log, dalam hal ini sesuai contoh yaitu history.log tidak ada notifempty tidak akan dirotasi jika file log kosong
/var/log/dir/*.log { daily missingok rotate 14 compress notifempty create 0640 apache apache sharedscripts postrotate systemctl reload httpd endscript }
Merotasi semua file *.log yang terdapat didalam folder /var/log/dir/
create 0640 apache apache otomatis menciptakan file log kosong dengan owner adalah apache dan group apache
sharedscripts akan menjalankan script systemctl reload example-app sekali saja meskipun file log yang dirotasi lebih dari satu (*.log)
postrotate to endscript adalah script yang akan dijalankan setelah rotasi selesai