Cara Mengonfigurasi Rotasi Log dengan Logrotate di Ubuntu 18.04 LTS

Salah satu tugas paling penting bagi administrator sistem adalah kemampuan untuk mengelola file log. Rotasi log adalah proses otomatis di mana file log tanggal diarsipkan. Ini menyediakan cara untuk membatasi ukuran total log yang disimpan. Dalam tutorial ini, kita akan belajar cara mengonfigurasi rotasi log denganlogrotate di Ubuntu 18.04 LTS.

Anda mungkin juga ingin memeriksa tutorial kami sebelumnya tentang Cara Mengonfigurasi Logging Jarak Jauh dengan Rsyslog di Ubuntu 18.04.

Perintah logrotate memudahkan untuk mengelola sistem yang menghasilkan sejumlah besar log. Ini memungkinkan rotasi otomatis, kompresi, penghapusan, dan pengiriman file log. File log ini mungkin diproses setiap hari, mingguan atau bulanan atau kapan pun mereka tumbuh melampaui ukuran tertentu.

Menginstal Logrotate

Logrotate diinstal secara default di Ubuntu 18.04. Untuk memverifikasi ini, periksa versi yang diinstal dengan menjalankan perintah di bawah ini;

# logrotate --version logrotate 3.11.0

Jika tidak diinstal, jalankan perintah di bawah ini untuk menginstalnya.

# apt-get install logrotate -y

Logrotate file Konfigurasi

Ada dua file konfigurasi utama untuk logrotate;

  • /etc/logrotate.conf– Mendefinisikan opsi global yang berlaku untuk setiap file log.
  • /etc/logrotate.d/– Menentukan opsi konfigurasi untuk file log tertentu. Paket yang diinstal pada sistem dan memerlukan rotasi log menempatkan file konfigurasi rotasi lognya di sini.

Sebelum kita menyelam lebih dalam, mari kita jelajahi file-file konfigurasi ini;

# less /etc/logrotate.conf
# see "man logrotate" for details # rotate log files weekly weekly # use the syslog group by default, since this is the owning group # of /var/log/syslog. su root syslog # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp, or btmp -- we'll rotate them here /var/log/wtmp { missingok monthly create 0664 root utmp rotate 1 } /var/log/btmp { missingok monthly create 0660 root utmp rotate 1 } # system-specific logs may be configured here

Di bawah ini adalah deskripsi singkat dari arahan yang dapat digunakan pada file konfigurasi logrotate;

  • weekly– Memutar file log setiap minggu. Arahan serupa meliputi;
    • sehari-hari
    • bulanan
    • tahunan
  • su user group – Putar file log yang diatur di bawah user dan grup ini alih-alih menggunakan user/grup default (biasanya root). user/group menentukan user/grup yang digunakan untuk rotasi.
  • rotate count– File log diputar hitungan kali sebelum dihapus atau dikirim ke alamat yang ditentukan dalam arahan email. Jadirotate 4hanya akan menyimpan empat file log yang diputar. Jika nilai 0 ditentukan, file log lama dihapus alih-alih diputar
  •  create [mode owner group], create [owner group] – membuat file log segera setelah rotasi. mode menentukan mode untuk file log dalam format oktal mis 0660, owner menentukan nama user yang akan memiliki file log, group menentukan grup tempat file log akan berada.
    • nocreate – File log baru tidak dibuat
  • compress – kompres file log lama dengan gzipsecara default. Arahan serupa meliputi;
    • nocompress – Jangan kompres file log lama.
    • compresscmd – Menentukan perintah yang akan digunakan untuk mengompresi
    • uncompresscmd – Menentukan perintah mana yang akan digunakan untuk membuka kompresi file log, misalnya gunzip.
    • compressext– Menentukan ekstensi mana yang akan digunakan pada file log terkompresi, jika kompresi diaktifkan. Standarnya mengikuti perintah kompresi yang dikonfigurasi.
    • compressoptions– Menentukan opsi apa pun yang akan diteruskan ke program kompresi yang digunakan.
    • delaycompress – Menunda kompresi file log ke rotasi file log berikutnya
  • include file_or_directory– Membaca file yang diberikan sebagai argumen seolah-olah disertakan sebaris. Jika sebuah direktori diberikan misalnya /etc/logrotate.d, sebagian besar file dalam direktori tersebut dibaca dalam urutan abjad sebelum pemrosesan file yang disertakan dilanjutkan.
  • missingok– Jika file log hilang, lanjutkan ke yang berikutnya tanpa mengeluarkan pesan error. Arahan serupa adalah;
    • nomissingok – Jika file log tidak ada, keluarkan error
  • ifempty– Putar file log meskipun kosong. Arahan serupa adalah
    • notifempty – Jangan memutar log jika kosong
  • mail ADDRESS– Mengaktifkan pengiriman file log yang telah dirotasi sebanyak yang ditentukan oleh direktif putar ke alamat yang ditentukan. Arahan serupa meliputi:

    • nomail – Jangan mengirimkan file log lama ke alamat mana pun.
    • mailfirst – Menentukan bahwa file log yang baru saja diputar akan dikirim, bukan file log yang akan kedaluwarsa.
    • maillast– Menentukan bahwa file log yang akan kedaluwarsa akan dikirim melalui pos, bukan file log yang baru saja diputar. Ini adalah opsi default saat email diaktifkan
  • maxage count – Hapus log yang diputar lebih lama dari <count> hari.
  • size size– File log dirotasi hanya jika bertambah besar dari ukuran byte. Jika ukuran diikuti oleh k, ukuran diasumsikan dalam kilobyte. Jika M digunakan, ukurannya dalam megabyte, dan jika G digunakan, ukurannya dalam gigabyte. Arahan serupa meliputi;
    • maxsize size – File log dirotasi ketika mereka tumbuh lebih besar dari ukuran byte bahkan sebelum interval waktu yang ditentukan (harian, mingguan, bulanan, atau tahunan).
    • minsize size – File log dirotasi ketika mereka tumbuh lebih besar dari ukuran byte tetapi tidak sebelum interval waktu yang ditentukan (harian, mingguan, bulanan, atau tahunan).
  • copy – Buat copyan file log, tetapi jangan ubah yang asli sama sekali. Arahan serupa adalah;
    • copytruncate – Potong file log asli ke ukuran nol setelah membuat copyan, alih-alih memindahkan file log lama dan secara opsional membuat yang baru.
    • nocopy – Jangan menyalin file log asli dan biarkan di tempatnya
    • nocopytruncate – Jangan memotong file log asli di tempatnya setelah membuat copyan

Untuk daftar lengkap arahan, periksa halaman manual untuk logrotate.

Membuat File Konfigurasi Kustom

Itu /etc/logrotate.d berisi konfigurasi khusus khusus yang mengesampingkan konfigurasi default yang ditentukan dalam /etc/logrotate.conf. Di bagian ini kita akan membahas contoh berbagai konfigurasi.

Putar file log setiap hari

# less /etc/logrotate.d/custom.conf /var/log/remotelogs/192.168.43.214/auth.log { daily missingok notifempty rotate 4 compress }

Putar file log ketika ukurannya bertambah lebih dari 1G bahkan sebelum interval waktu rotasi yang ditentukan

# less /etc/logrotate.d/custom.conf /var/log/remotelogs/192.168.43.214/auth.log{ maxsize 1G daily missingok notifempty rotate 4 compress }

Hapus file Rotated setelah beberapa hari tertentu

# less /etc/logrotate.d/custom.conf /var/log/remotelogs/192.168.43.214/auth.log{ size 10G  maxage 90 missingok notifempty rotate 7 compress }

Tentukan perintah kompresi untuk rotasi file log

# less /etc/logrotate.d/custom.conf /var/log/remotelogs/192.168.43.214/auth.log{ size 10G maxage 90 missingok notifempty rotate 7 compress compresscmd /bin/bzip2 compressext.bz2 }

Jalankan perintah tertentu setelah memutar file log

# less /etc/logrotate.d/custom.conf /var/log/remotelogs/192.168.43.214/sshd.log { rotate 5 weekly sharedscripts postrotate /usr/bin/killall -HUP rsyslogd
endscript }

Itu sharedscripts artinya script postrotate hanya akan dijalankan satu kali (setelah log lama dikompres), tidak sekali untuk setiap log yang dirotasi.

Tambahkan tanggal ke file log setelah rotasi

# less /etc/logrotate.d/custom.conf /var/log/remotelogs/192.168.43.214/sshd.log{ size 200k missingok notifempty rotate 7 compress dateext dateformat -%Y-%m-%d }

File log yang diputar surat tidak terkompresi setelah 5 rotasi

# less /etc/logrotate.d/custom.conf /var/log/remotelogs/192.168.43.214/auth.log { rotate 5 mail [email protected] size 50k daily missingok notifempty }

Itu saja yang bisa kami ulas pada artikel ini. Untuk daftar lengkap arahan logrotate, periksa halaman manual untuk logrotate. Terima kasih telah membaca.