GNU/Linux >> Belajar Linux >  >> Linux

Cara menggunakan Logrotate untuk mengelola file log

Logrotate adalah perangkat lunak yang telah diinstal sebelumnya di sebagian besar distribusi Linux, yang memungkinkan Anda mengelola penyimpanan dan pengaturan file log jangka panjang.

Aplikasi dalam sistem sering merekam log operasi atau masalah disk. Jika tidak dihapus secara berkala, file-file ini dapat bertambah besar, mengisi disk, dan menyebabkan malfungsi.

Logrotate adalah solusi paling umum untuk memeriksa file log secara berkala dan secara otomatis mengelola rotasi, kompresi, dan penghapusannya ketika ukuran dan/atau usia tertentu terlampaui.

Konfigurasi dasar

Logrotate memungkinkan untuk menentukan beberapa parameter dasar yang akan digunakan oleh semua konfigurasi file selanjutnya di jalur /etc/logrotate.conf:

# Set a weekly rotation

weekly


# Set the number of rotations to save

rotate 4
              

# make new log file

create
              

# Include all configurations files

include /etc/logrotate.d

Dalam ekstrak logrotate.conf ini, selain menerapkan semua parameter yang dijelaskan di atas, membaca semua konfigurasi yang ada di direktori /etc/logrotate.d juga disarankan. Dengan demikian, Anda dapat membagi setiap konfigurasi berdasarkan aplikasi dan/atau konteks.

Konfigurasi logrotate menentukan kumpulan aturan untuk 1 file atau lebih:

[FILE] [FILE?] [FILE?] {

    [SETTINGS]

}

Contoh klasik adalah konfigurasi / var / log / pesan:

/var/log/messages {
                 

    # Save 5 rotations

    rotate 5
                 

    # Rotating files every week 

    weekly 
                 

    postrotate 

        /usr/bin/killall -HUP syslogd

    endscript

}

Dalam contoh di atas, hanya file pesan yang diperhitungkan. . dan rotasinya diatur setiap minggu, p maksimal 5. Oleh karena itu, pada akhir rotasi kelima, file-file log:

-rw-r----- 1 root  adm 1215 Jul 29 06:47 messages

-rw-r----- 1 root  adm 3895 Jul 28 06:49 messages.1

-rw-r----- 1 root  adm 454 Jul 21 06:37 messages.2.gz

-rw-r----- 1 root  adm 506 Jul 15 06:40 messages.3.gz

-rw-r----- 1 root  adm 456 Jul 7 06:41 messages.4.gz

Beberapa setelan terpenting adalah:

  • harian, bulanan, mingguan, tahunan:menunjukkan seberapa sering memutar file log

  • kompres, nocompress:apakah akan mengompresi rotasi file lama atau tidak

  • maksage:Setelah berapa hari rotasi lama dihilangkan

  • size:Mengatur rotasi hanya jika file yang ditunjukkan lebih besar dari ukuran yang ditentukan. Sufiks dapat digunakan untuk menunjukkan format ukuran (misalnya "k" untuk kilobyte, "M" untuk megabyte)

  • rotate:Jumlah log yang diputar yang harus disimpan sebelum dihapus secara permanen. Jika disetel ke 0, file log akan dihapus tanpa diputar.

Jika Anda ingin menetapkan aturan yang sama untuk beberapa file, Anda dapat menambahkan beberapa jalur, dengan memisahkannya dengan koma. Misalnya:

/var/log/custom_log, /var/log/alternative_log_file, /var/log/another_log {
                 

      …
                 

}

Konfigurasi ini akan digunakan untuk file custom_log, alternative_log_file dan another_log.

Atau Anda dapat menggunakan masker file seperti:

/var/custom/logs/*, /var/log/custom_log {
                 

      # This configuration will rotate all the files in the directory. 

      # /var/custom/logs/* e il file /var/log/custom_log
                 

      ...

}

Menggunakan pengaturan dateext

Setelan dateext memungkinkan Anda menambahkan tanggal rotasi ke nama file, sehingga data log dapat dikenali dengan mudah .

/var/log/custom.log {

    size 100M

    dateext

    rotate 3

    compress

    maxage 100

}

Konfigurasi yang ditunjukkan di atas akan mengarsipkan file custom.log segera setelah mencapai 100 juta, hingga maksimum 3 kali atau setelah 100 hari. Melalui opsi kompres, file yang diarsipkan juga akan dikompresi dalam format gzip.

Setelah diputar, nama file akan memiliki tanggal rotasi seperti yang ditunjukkan di bawah ini:

# ls /var/log

-rw-r--r--  1 user user 8980 2019-06-09 22:10 custom.log-20180609.gz

-rwxrwxrwx 1 user user    0 2019-06-09 22:11 custom.log

Log email

Logrotate memungkinkan Anda menjalankan skrip yang disesuaikan saat peristiwa tertentu terjadi, seperti setelah setiap rotasi log, dengan menggunakan kata kunci postrotate / endscript.

Satu kemungkinan penggunaan adalah mengirim log melalui email saat menyelesaikan rotasi. Untuk melanjutkan, pertama, buat skrip untuk mengirim file ke alamat email Anda:

#!/bin/bash
                 

# Get all logs

tar -cvf /tmp/logpack.tar /var/log/messages*
                 

# Send logs as attachment 

echo "Log" | mail -s "log" [email protected] -A /tmp/logpack.tar

Simpan file di atas di direktori home Anda, misalnya /home/map.com username_s//endend.sh dan pastikan Anda mengaktifkan izin yang diperlukan melalui:

# sudo chmod u+x /home/user/sendlog.sh

Sekarang, edit file konfigurasi logrotate sebagai berikut:

/var/log/messages {
                 

    ...

    

    postrotate 
                 

        …
                 

        /home/user/sendlog.sh

    endscript

}

Simpan konfigurasi untuk menerapkan perubahan.

Setelah selesai, Anda akan menerima email dengan arsip log yang dijelaskan di atas pada setiap rotasi log.


Linux
  1. Cara Menginstal dan Menggunakan logrotate untuk Mengelola File Log di Ubuntu 18.04 LTS

  2. Bagaimana Mengelola Kemampuan File Linux

  3. Cara Mengelola File Log Menggunakan Logrotate Di Linux

  1. Cara Mengosongkan File Log di Linux

  2. Cara Menggunakan Logrotate untuk Mengelola Log di Ubuntu

  3. Cara Menggunakan Netcat untuk Mentransfer File di Linux

  1. Cara menggunakan rsyslog untuk membuat server agregasi log Linux

  2. Bagaimana Cara Mengganti Nama File Secara Khusus Dalam Daftar Yang Akan Digunakan Wget?

  3. Cara Membuat Rotasi File Log Kustom dengan logrotate di Linux