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"
Post a Comment