File log paling penting untuk keamanan sistem Linux. alat logrotate dirancang khusus untuk menyederhanakan administrasi file log pada sistem Linux yang memungkinkan rotasi otomatis, kompresi, penghapusan, dan pengiriman file log. Anda dapat dengan mudah mengatur logrotate untuk menangani file log harian, mingguan, bulanan. Program logrotate digunakan untuk memutar file log dengan menghapus yang tertua dari sistem Anda dan membuat file log baru.
Dalam tutorial ini, saya akan menjelaskan cara menggunakan logrotate untuk mengelola log di server Ubuntu 18.04.
Persyaratan
- Server yang menjalankan server Ubuntu 18.04.
- Pengguna non-root dengan hak istimewa sudo.
Instal Logrotate
Secara default, logrotate tersedia di server Ubuntu 18.04 LTS. Jika tidak maka Anda dapat menginstalnya dengan menjalankan perintah berikut:
sudo apt-get install logrotate -y
Setelah logrotate diinstal, Anda dapat memeriksa versi logrotate menggunakan perintah berikut:
sudo logrotate
Keluaran:
logrotate 3.11.0 - Copyright (C) 1995-2001 Red Hat, Inc. This may be freely redistributed under the terms of the GNU Public License Usage: logrotate [-dfv?] [-d|--debug] [-f|--force] [-m|--mail=command] [-s|--state=statefile] [-v|--verbose] [-l|--log=STRING] [--version] [-?|--help] [--usage] [OPTION...]
Konfigurasi Logrotate
Secara default, file konfigurasi utama logrotate logrotate.conf terletak di /etc/logrotate.conf. File konfigurasi lainnya tersedia di /etc/logrotate.d. Anda dapat mencantumkannya dengan perintah berikut:
ls /etc/logrotate.d
Keluaran:
alternatives apport dpkg mysql-server rsyslog unattended-upgrades apache2 apt lxd openproject ufw
Opsi utama logrotate tercantum di bawah ini:
missingok :Jangan memunculkan kesalahan jika log tidak ada
mingguan :memutar file log seminggu sekali
buat :File lama disimpan dengan nama baru dan file baru dibuat
kompres :logrotate kompres file log menggunakan gzip untuk menghemat ruang
putar 4 :logrotate memutar log yang diberikan empat kali sebelum menghapusnya, jadi ini membuat log empat minggu tetap online
pemberitahuan kosong :Jangan memutar file log saat kosong
Secara default, logrotate berjalan setiap hari dengan mengeksekusi skrip shell /etc/cron.daily/logrotate. Mari kita uji logrotasi apache dengan menjalankan perintah berikut:
sudo logrotate -d /etc/logrotate.d/apache2
Keluaran:
reading config file /etc/logrotate.d/apache2 Reading state from file: /var/lib/logrotate/status Allocating hash table for state file, size 64 entries Handling 1 logs rotating pattern: /var/log/apache2/*.log after 1 days (14 rotations) empty log files are not rotated, old logs are removed considering log /var/log/apache2/access.log Creating new state Now: 2018-10-11 16:04 Last rotated at 2018-10-11 16:00 log does not need rotating (log has been already rotated) considering log /var/log/apache2/error.log Creating new state Now: 2018-10-11 16:04 Last rotated at 2018-10-11 16:00 log does not need rotating (log has been already rotated) considering log /var/log/apache2/other_vhosts_access.log Creating new state Now: 2018-10-11 16:04 Last rotated at 2018-10-11 16:00 log does not need rotating (log has been already rotated) not running prerotate script, since no logs will be rotated not running postrotate script, since no logs were rotated
Secara default, logrotate dijalankan sebagai tugas cron harian. Anda dapat memeriksa /etc/cron.daily/logrotate untuk informasi lebih lanjut tentang tugas cron. Anda juga dapat mengonfigurasi tugas cron agar logrotate berjalan setiap jam, mingguan, dan tahunan.