Beberapa hari yang lalu, kami telah menerbitkan panduan yang menjelaskan cara menyiapkan server Rsyslog terpusat pada sistem CentOS. Hari ini, dalam panduan ini, kita akan melihat cara mengelola file log menggunakan Logrotate di Linux. Utilitas ini menyederhanakan administrasi file log, terutama berguna untuk sistem yang menghasilkan volume besar file log setiap hari. Seperti namanya, LogRotate memutar log sepenuhnya dari sistem Anda pada waktu interval reguler. Ini juga memungkinkan rotasi otomatis, kompresi, penghapusan, dan pengiriman file log. Setiap file log dapat ditangani setiap hari, setiap minggu, setiap bulan, atau jika file tersebut tumbuh terlalu besar.
Mengelola File Log Menggunakan Logrotate
Instal Logrotate
Logrotate s tersedia di repositori default sebagian besar distribusi Linux.
Di Arch Linux, dan turunannya, Anda perlu menjalankan perintah berikut untuk menginstalnya.
$ sudo pacman -S logrotate
Pada sistem berbasis RPM, seperti RHEL, CentOS, Scientific Linux, Anda dapat menginstalnya menggunakan perintah:
$ sudo yum install logrotate
Di Debian, Ubuntu:
$ sudo apt-get install logrotate
Di SUSE, openSUSE:
$ sudo znf install logrotateUnduh - eGuide Gratis:"22 Tweaks Berguna Untuk Membuat Ubuntu Merasa Seperti Di Rumah"
Konfigurasi Logrotate
File konfigurasi utama LogRotate adalah /etc/logrotate.conf .
Berikut adalah konten default dari file ini di sistem Arch saya. Output file ini mungkin terlihat sedikit berbeda pada distribusi Linux lainnya.
$ cat /etc/logrotate.conf
Contoh keluaran:
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # restrict maximum size of log files #size 20M # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # Logs are moved into directory for rotation # olddir /var/log/archive # Ignore pacman saved files tabooext + .pacorig .pacnew .pacsave # Arch packages drop log rotation information into this directory include /etc/logrotate.d /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 } /var/log/btmp { missingok monthly create 0600 root utmp rotate 1 }
Mari kita lihat apa yang dilakukan setiap opsi dalam file konfigurasi di atas.
- mingguan - Ini memutar log setiap minggu.
- putar 4 - Secara default, LogRotate menyimpan file log selama empat minggu (satu bulan, tentu saja). Karena, ini merotasi semua file log setelah jangka waktu tertentu, Anda mungkin perlu menyimpan cadangan file log penting jika Anda tidak ingin kehilangannya.
- ukuran 20M - Memutar file log jika mencapai ukuran 20MB. Secara default, opsi ini dinonaktifkan. Untuk mengaktifkannya, cukup batalkan komentar.
- buat - Membuat file log baru setelah memutar file log lama. Opsi ini diaktifkan secara default.
- kompres - Kompres file log. Juga, itu tidak mengompresi log secara default. Jika Anda ingin mengompresi log, batalkan komentar pada baris ini.
- /etc/logrotate.d/ - Direktori ini berisi file aturan log khusus aplikasi.
- tidak ada oke - Jika file log hilang, Logrotate akan melanjutkan ke yang berikutnya tanpa mengeluarkan pesan kesalahan.
Logrotate mengelompokkan file log, dan mengompresi log berdasarkan aturan yang ditentukan di bawah /etc/logrotate.d/ direktori.
Mari kita lihat isi direktori ini.
$ ls /etc/logrotate.d/
Contoh keluarannya adalah:
lirc samba
Seperti yang Anda lihat pada output di atas, ini berisi berbagai file aturan untuk semua log yang dikelola oleh LogRotate. Untuk melihat aturan log aplikasi tertentu, misalnya samba, jalankan:
$ cat /etc/logrotate.d/samba
Contoh keluaran:
/var/log/samba/log.smbd /var/log/samba/log.nmbd /var/log/samba/*.log { notifempty missingok sharedscripts copytruncate postrotate /bin/kill -HUP `cat /var/run/samba/*.pid 2>/dev/null` 2>/dev/null || true endscript }
Di sini,
- pemberitahuan kosong - Menunjukkan file log tidak akan diputar jika kosong.
- copytruncate - Potong file log asli di tempatnya setelah membuat salinan.
- postrotate/endscript - Garis antara postrotate dan endscript dieksekusi setelah file log diputar.
- skrip bersama - Skrip hanya dijalankan sekali, tidak peduli berapa banyak log yang cocok dengan pola wildcard.
Anda juga dapat membuat file aturan log sendiri di direktori /etc/logrotate.d/ dan menentukan aturan Anda sendiri.
Cron menjalankan utilitas logroate setiap hari untuk mencari file log untuk diputar. Anda dapat menentukan aturan rotasi log otomatis di /etc/cron.daily/logrotate file untuk menghindari intervensi pengguna manual. Ini akan melakukan rotasi log setiap hari pada waktu tertentu.
Untuk memverifikasi apakah file log berputar atau tidak, jalankan:
$ cat /var/lib/logrotate.status
Contoh keluaran:
logrotate state -- version 2 "/var/log/samba/log.smbd" 2016-5-12-11:0:0 "/var/log/lircd" 2016-6-15-10:0:0 "/var/log/httpd/*log" 2016-5-12-11:0:0 "/var/log/wtmp" 2016-5-6-10:0:0 "/var/log/samba/*.log" 2016-5-12-11:0:0 "/var/log/btmp" 2017-4-1-11:36:53 "/var/log/samba/log.nmbd" 2016-5-12-11:0:0
Untuk lebih jelasnya, jalankan logrotate dengan memasukkan perintah berikut:
$ logrotate --help
Atau,
$ man logrotate
Itu saja untuk saat ini. Logrotate adalah alat rotasi log yang sederhana namun berguna yang menyederhanakan manajemen log. Anda tidak perlu bersusah payah dengan konfigurasi yang rumit dan langkah-langkah instalasi. Semuanya cukup jelas. Jika Anda mengelola sistem yang menghasilkan file log dalam jumlah besar, Anda dapat merotasinya secara berkala menggunakan Logrotate.
Semangat!