How to Use logrotate to Manage Log Files

How to Use logrotate to Manage Log Files

What is logrotate?

Logrotate adalah alat untuk mengelola file log yang dibuat oleh proses sistem. Alat ini secara otomatis mengompresi dan menghapus log untuk memaksimalkan kenyamanan log dan menghemat sumber daya sistem. Pengguna memiliki kontrol ekstensif atas bagaimana dan kapan rotasi log diproses.

Use Logrotate

Perilaku logrotate ditentukan oleh opsi yang ditetapkan dalam file konfigurasi, biasanya terletak di /etc/logrotate.conf

Normal Running
logrotate /etc/logrotate.conf

Debug Running
logrotate -d /etc/logrotate.conf

Force Running
logrotate -f /etc/logrotate.conf

Di luar konfigurasi rotasi log seluruh sistem, Anda juga dapat mengonfigurasi logrotate per pengguna. Jika penerapan Anda mengharuskan pengguna yang tidak memiliki hak istimewa untuk memutar log mereka sendiri, masing-masing dapat membuat file konfigurasi yang berbeda.

Run logrotate as a cronjob

Jalankan logrotate sebagai cronjob untuk memastikan bahwa log akan diputar secara teratur seperti yang dikonfigurasi. Log hanya akan dirotasi saat logrotate berjalan, apa pun konfigurasinya. Misalnya, jika Anda mengonfigurasi logrotate untuk merotasi log setiap hari, tetapi logrotate hanya berjalan setiap minggu, log hanya akan dirotasi setiap minggu.

Untuk sebagian besar proses daemon, log harus dirotasi oleh pengguna root. Dalam kebanyakan kasus, logrotate dipanggil dari skrip di direktori /etc/cron.daily/. Jika tidak ada, buat skrip yang menyerupai berikut ini di folder /etc/cron.daily/

File: /etc/cron.daily/logrotate
#!/bin/sh
logrotate /etc/logrotate.conf

Understand logrotate.conf

File konfigurasi untuk rotasi log dimulai dengan sejumlah arahan global yang mengontrol bagaimana rotasi log diterapkan secara global. Kebanyakan konfigurasi rotasi log tidak terjadi di file /etc/logrotate.conf, melainkan di file yang terletak di direktori /etc/logrotate.d/. Setiap proses daemon atau file log akan memiliki file sendiri untuk konfigurasi di direktori ini. Konfigurasi /etc/logrotate.d/ dimuat dengan direktif berikut di logrotate.conf

include /etc/logrotate.d

Pengaturan konfigurasi untuk rotasi log tertentu dibuat dalam struktur blok

/var/log/mail.log {
  weekly
  rotate 5
  compress
  compresscmd xz
  create 0644 postfix postfix
}

Ukuran dan rotasi /var/log/mail.log dikelola sesuai dengan arahan yang dipakai di antara tanda kurung. Konfigurasi di atas merotasi log setiap minggu, menyimpan lima log terakhir yang diputar, mengompresi semua file log lama dengan alat kompresi xz, dan membuat ulang file log dengan izin 0644 dan postfix sebagai pengguna dan pemilik grup. Opsi konfigurasi khusus ini menggantikan opsi konfigurasi global yang dijelaskan di bawah ini

Remove or Email Old Logs with Rotate Count

Arahan rotate mengontrol berapa kali log diputar sebelum log lama dihapus. Jika Anda menentukan nomor rotasi 0, log akan segera dihapus setelah diputar. Jika Anda menentukan alamat email menggunakan mail direktif sebagai file, log dikirim melalui email dan dihapus

rotate 4
mail [email protected]

Sistem Anda memerlukan Agen Transfer Surat yang berfungsi untuk dapat mengirim email

Configure Log Rotation Intervals

Saat mingguan disetel, log diputar jika hari kerja saat ini lebih rendah dari hari kerja rotasi terakhir (yaitu, Senin kurang dari Jumat) atau jika rotasi terakhir terjadi lebih dari seminggu sebelum hari ini

weekly
monthly
yearly

Untuk memutar berdasarkan ukuran, gunakan petunjuk berikut

size [value]

Direktif ukuran memaksa rotasi log ketika file log tumbuh lebih besar dari [nilai] yang ditentukan. Secara default, [nilai] diasumsikan dalam byte. Tambahkan k ke [value] untuk menentukan ukuran dalam kilobyte, M untuk megabyte, atau G untuk gigabyte. Misalnya, ukuran 100k atau ukuran 100M adalah petunjuk yang valid

Compress Rotated (Old) Logs

Direktif kompres memampatkan semua log setelah mereka diputar. Jika arahan ini ditempatkan di konfigurasi global, semua log akan dikompresi. Jika Anda ingin menonaktifkan perintah kompresi yang diaktifkan secara global untuk log tertentu, gunakan perintah nocompress

compress

Secara default, logrotate memampatkan file menggunakan perintah gzip. Anda dapat mengganti ini dengan alat kompresi lain seperti bzip2 atau xz sebagai argumen untuk direktif compresscmd

compresscmd xz

Delay Log File Compression

Dalam beberapa situasi, tidak ideal untuk mengompres file log segera setelah rotasi ketika file log membutuhkan pemrosesan tambahan. Petunjuk kompresi tunda di atas menunda satu siklus putaran kompresi

delaycompress

Maintain Log File Extension

Logrotate akan menambahkan nomor ke nama file sehingga file access.log akan diputar ke access.log.1. Untuk memastikan bahwa ekstensi dipertahankan. Jika Anda mengaktifkan kompresi, log yang dikompresi akan diberi nama access.1.log.gz

extension log

Control Log File Permissions

Jika proses daemon Anda memerlukan file log yang ada untuk berfungsi dengan baik, logrotate dapat mengganggu saat memutar log. Akibatnya, logrotate dapat membuat file log kosong yang baru setelah rotasi. Dalam contoh ini, file kosong dibuat dengan izin 640 (baca / tulis pemilik, baca grup, tidak ada lainnya) yang dimiliki oleh pengguna www-data dan di grup pengguna. Direktif ini menentukan opsi dalam bentuk: buat [mode (oktal)] [pemilik] [grup]

create 640 www-data users

Run Commands Before or After Rotation

logrotate dapat menjalankan perintah sebelum dan sesudah rotasi untuk memastikan bahwa tugas rutin yang terkait dengan rasio log, seperti memulai ulang atau memuat ulang daemon dan meneruskan jenis sinyal lain, dijalankan

Prerotate - Run commands before logrotate

Perintah touch /srv/www/example.com/application/tmp/stop dijalankan sebelum memutar log. Pastikan tidak ada arahan atau perintah yang salah pada baris yang berisi prerotate dan endscript. Ingatlah bahwa semua baris di antara arahan ini akan dieksekusi

prerotate
    touch /srv/www/example.com/application/tmp/stop
endscript

Postrotate - Run commands after logrotate

postrotate
    touch /srv/www/example.com/application/tmp/start
endscript

Post a Comment for "How to Use logrotate to Manage Log Files"