====== Logrotate, Apa itu ? ======
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
===== Default Setting =====
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
}
===== Contoh 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
===== Contoh 2 =====
/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
===== Contoh 3 =====
/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 \\