Table of Contents

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