GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengelola File Log Menggunakan Logrotate Di Linux

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 logrotate
Unduh - 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!


Linux
  1. Bagaimana melakukan perbandingan file baris demi baris di Linux menggunakan perintah diff

  2. Cara Menulis File Log Di RAM Menggunakan Log2ram Di Linux

  3. Cara menggunakan Logrotate untuk mengelola file log

  1. File log Linux

  2. Cara Memutar File Log Apache di Linux

  3. Cara Mengurutkan File di Linux menggunakan Perintah Sortir

  1. Cara menemukan file di Linux

  2. Cara Memutar dan Mengompresi File Log di Linux dengan Logrotate

  3. Cara berbagi file secara lokal di Linux dengan menggunakan NitroShare