Pengenalan
Logrotate adalah utiliti Linux yang mempermudah pentadbiran fail log. Ia biasanya dijalankan sekali sehari melalui cron job, dan menguruskan log berdasarkan peraturan / tetapan yang disesuaikan dari fail konfigurasinya.
Beberapa tetapan yang berguna termasuk putaran automatik, pemampatan, penyingkiran, dan surat fail log.
Pemasangan
Kebanyakan sistem Linux dilengkapi dengan Logrotate yang dipasang secara lalai. Periksa sama ada anda memasangnya pada instance Vultr anda dengan mengeluarkan logrotate
perintah. Anda akan melihat output dengan versi Logrotate yang dijalankan oleh pelayan anda.
Sekiranya anda belum memasangnya, lakukan langkah-langkah di bawah untuk meneruskan pemasangan.
Pada sistem Debian / Ubuntu:
sudo apt-get update
sudo apt-get install logrotate
Pada sistem Redhat / CentOS:
sudo yum update
sudo yum install logrotate
Memahami Logrotate
Bahagian bergerak yang membuat logrotate berjalan adalah:
-
Alat yang sebenarnya logrotate
.
-
Fail konfigurasi Logrotate terletak di /etc/logrotate.conf
. Fail ini menyimpan konfigurasi untuk semua fail log yang diuruskan oleh Logrotate.
-
Pekerjaan cron harian /etc/cron.daily/logrotate
yang mengeluarkan perintah logrotate untuk dijalankan berdasarkan tetapan dalam fail konfigurasi. Sekiranya tugas cron ini tidak wujud pada sistem anda, buatlah dan tambahkan coretan kod di bawahnya.
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
Lebih banyak mengenai Konfigurasi
Sekiranya anda mengintip ke dalam /etc/logrotate.conf
, anda akan melihat bahawa ia mempunyai garis include /etc/logrotate.d
di dalamnya. Apa yang dilakukan oleh baris ini adalah memberitahu Logrotate untuk melihat ke dalam /etc/logrotate.d
direktori dan menjalankan setiap fail konfigurasi di dalamnya. Direktori ini biasanya di mana aplikasi yang dipasang pada sistem linux anda akan menambahkan konfigurasi logrotate mereka. Sebagai contoh, Apache2 biasanya akan membuat /etc/logrotate.d/apache
fail konfigurasi semasa pemasangan.
Menguruskan Log
Untuk menguji Logrotate, kami akan:
-
Buat fail log ujian baru dengan 1MB atau data rawak:
sudo base64 /dev/urandom | head -c 1000000 > /tmp/testfile.log
-
Buat konfigurasi Logrotate baru dengan menjalankan sudo nano /etc/logrotate.d/testlog
. Salin potongan berikut ke dalam fail kosong dan tekan Ctrl + X untuk menyimpan dan keluar.
/tmp/testfile.log {
size 1k
copytruncate
missingok
rotate 5
}
Pilihan konfigurasi dalam coretan di atas mengarahkan Logrotate untuk:
size 1k
: Putar fail log jika ukuran lebih besar daripada atau sama dengan 1k.
missingok
: Abaikan mesej ralat jika testfile.log
tidak ada.
copytruncate
: Buat salinan fail log semasa dan kemudian memotongnya. Ini sangat berguna apabila aplikasi tidak dapat menutup fail lognya kerana secara berterusan menambahkannya.
rotate 5
: hadkan bilangan putaran fail log kepada 5. Ini akan menghapus versi lama fail log yang melebihi 5 hari.
CATATAN: Anda dapat melihat semua pilihan konfigurasi untuk logrotate di sini .
-
Jalankan arahan Logrotate secara manual:
sudo logrotate /etc/logrotate.conf
Setelah menjalankan perintah di atas, senaraikan semua fail dalam direktori tmp ls -l /tmp
untuk mengesahkan testfile.log memang diputar. Anda mesti melihat senarai yang serupa dengan senarai berikut yang menunjukkan bahawa testfile.log
telah digilirkan. Ini akan berterusan setiap hari dan menyimpan 5 salinan terkini.
[root@vultr ~]# ls -l /tmp
-rw-r--r-- 1 root root 0 Nov 14 23:31 testfile.log
-rw-r--r-- 1 root root 1000000 Nov 14 23:30 testfile.log-20141114
-rw-r--r-- 1 root root 634 Nov 10 00:23 vultr_ipv6
-rw-------. 1 root root 0 Oct 15 20:44 yum.log
Kesimpulannya
Log dengan cepat dapat menimbulkan masalah pada pelayan dengan menjadi terlalu besar dan menyebabkan masalah ruang cakera. Menguruskan log sangat penting untuk sistem apa pun, tetapi yang lebih baik adalah mengautomasikan pengurusan ini. Logrotate menjadikan pemutaran, pengarkiban dan penghapusan log menjadi mudah.
Ditulis oleh Lami Adabonyan