Cara Menyiapkan dan Mengurus Putaran Log Menggunakan Logrotat di Linux
- 4131
- 318
- Marcus Kassulke
Salah satu direktori yang paling menarik (dan mungkin salah satu yang paling penting juga) dalam sistem Linux adalah /var/log
. Menurut standard hierarki sistem fail, aktiviti kebanyakan perkhidmatan yang dijalankan dalam sistem ditulis ke dalam fail di dalam direktori ini atau salah satu subdirektorinya.
Fail tersebut dikenali sebagai log dan merupakan kunci untuk memeriksa bagaimana sistem beroperasi (dan bagaimana ia berkelakuan pada masa lalu). Log juga merupakan sumber maklumat pertama di mana pentadbir dan jurutera kelihatan semasa menyelesaikan masalah.
Sekiranya kita melihat kandungan /var/log
di atas Centos/rhel/fedora dan Debian/Ubuntu (Untuk pelbagai) Kami akan melihat fail log dan subdirektori berikut.
Sila ambil perhatian bahawa hasilnya mungkin agak berbeza dalam kes anda bergantung pada perkhidmatan yang berjalan pada sistem anda dan masa mereka berjalan.
Di Rhel/Centos dan Fedora
# ls /var /logLog fail dan direktori di bawah CentOS 7
Di Debian dan Ubuntu
# ls /var /logLog fail dan direktori di Debian 8
Dalam kedua -dua kes, kita dapat melihat bahawa beberapa nama log berakhir seperti yang diharapkan dalam "Log", manakala yang lain sama ada dinamakan semula menggunakan tarikh (contohnya, Maillog-20160822 pada Centos) atau dimampatkan (pertimbangkan auth.log.2.Gz dan mysql.log.1.Gz pada Debian).
Ini bukan tingkah laku lalai berdasarkan pengagihan yang dipilih tetapi boleh diubah pada Will menggunakan arahan dalam fail konfigurasi, seperti yang akan kita lihat dalam artikel ini.
Sekiranya balak disimpan selama -lamanya, mereka akhirnya akan mengisi sistem fail di mana /var/log tinggal. Untuk mengelakkannya, pentadbir sistem boleh menggunakan utiliti yang bagus yang dipanggil Logrotate untuk membersihkan balak secara berkala.
Dalam beberapa perkataan, Logrotate akan menamakan semula atau memampatkan log utama apabila keadaan dipenuhi (lebih lanjut mengenai itu dalam satu minit) sehingga acara seterusnya direkodkan pada fail kosong.
Di samping itu, ia akan mengeluarkan "tua" fail log dan akan menyimpan yang paling terkini. Sudah tentu, kita dapat memutuskan apa "tua" bermaksud dan berapa kerap kita mahu logrotat membersihkan kayu balak untuk kita.
Memasang logrotat di linux
Untuk memasang Logrotate, Cukup gunakan pengurus pakej anda:
---------- Di Debian dan Ubuntu ---------- # Kemas kini Aptitude & & Aptitude Pasang Logrotat ---------- Di Centos, Rhel dan Fedora ---------- # yum kemas kini && yum pasang logrotat
Ia bernilai dan baik untuk diperhatikan bahawa fail konfigurasi (/etc/logrotate.Conf
) mungkin menunjukkan bahawa tetapan lain yang lebih spesifik boleh diletakkan pada individu .Conf
fail di dalam /etc/logrotate.d.
Ini akan berlaku jika dan hanya jika baris berikut wujud dan tidak dikomentari:
Sertakan /etc /logrotate.d
Kami akan berpegang dengan pendekatan ini, kerana ia akan membantu kami untuk menyimpan sesuatu dengan teratur, dan menggunakannya Debiakotak n untuk contoh berikut.
Konfigurasikan logrotat di linux
Menjadi alat yang sangat serba boleh, Logrotate menyediakan banyak arahan untuk membantu kita mengkonfigurasi kapan dan bagaimana kayu balak akan diputar, dan apa yang harus berlaku selepas itu.
Mari masukkan kandungan berikut di /etc/logrotate.d/apache2.Conf (perhatikan bahawa kemungkinan besar anda perlu membuat fail itu) dan memeriksa setiap baris untuk menunjukkan tujuannya:
apache2.Conf/var/log/apache2/* mingguan berputar 3 saiz 10m compress delaycompress
Baris pertama menunjukkan bahawa arahan di dalam blok digunakan untuk semua log di dalamnya /var/log/apache2:
- setiap minggu bermaksud bahawa alat itu akan cuba memutar log setiap minggu. Nilai lain yang mungkin adalah setiap hari dan bulanan.
- berputar 3 menunjukkan bahawa hanya 3 balak berputar yang harus disimpan. Oleh itu, fail tertua akan dikeluarkan pada larian berikutnya keempat.
- saiz = 10m Menetapkan saiz minimum untuk putaran berlaku hingga 10m. Dengan kata lain, setiap log tidak akan diputar sehingga mencapai 10MB.
- memampatkan dan DelayCompress digunakan untuk memberitahu bahawa semua balak berputar, kecuali yang paling baru, harus dimampatkan.
Mari kita jalankan kering untuk melihat apa yang akan dilakukan oleh logrotat jika sebenarnya dilaksanakan sekarang. Menggunakan -d
pilihan diikuti dengan fail konfigurasi (anda sebenarnya boleh menjalankan logrotat dengan menghilangkan pilihan ini):
# logrotate -d /etc /logrotate.d/apache2.Conf
Hasilnya ditunjukkan di bawah:
Putar balak Apache dengan logrotatDaripada memampatkan balak, kami dapat menamakan semula mereka selepas Tarikh Semasa mereka berputar. Untuk melakukan itu, kami akan menggunakan Dateext
arahan. Sekiranya format tarikh kami selain daripada lalai yyyymmdd, kita boleh menentukannya menggunakan format tarikh.
Perhatikan bahawa kita juga boleh menghalang putaran daripada berlaku jika log kosong notifempty. Di samping itu, mari kita beritahu Logrotate untuk menghantar log berputar kepada pentadbir sistem ([dilindungi e -mel] Dalam kes ini) untuk rujukannya (ini memerlukan pelayan mel untuk disediakan, yang keluar dari skop artikel ini).
Sekiranya anda ingin mendapatkan e -mel mengenai logrotat, anda boleh menyiapkan pelayan mel postfix seperti yang ditunjukkan di sini: Pasang pelayan pos postfix
Kali ini kita akan menggunakan /etc/logrotate.D/sotong.Conf hanya berputar /var/log/sotong/akses.log:
cumi.Conf/var/log/sotong/akses.Log Bulanan Buat 0644 Root Root Putar 5 Size = 1m Dateext DateFormat -%D%M%Y Notifempty Mail [E -mel dilindungi]
Seperti yang dapat kita lihat dalam imej di bawah, log ini tidak perlu diputar. Walau bagaimanapun, apabila keadaan saiz dipenuhi (Saiz = 1m), log berputar akan dinamakan semula akses.Log-255082020 (Sekiranya log diputar 25 Ogos 2020) dan log utama (akses.log) akan dibuat semula dengan kebenaran akses yang ditetapkan ke 0644 Dan dengan akar sebagai pemilik dan pemilik kumpulan.
Akhirnya, apabila jumlah balak akhirnya sampai 6, Log tertua akan dihantar ke [dilindungi e -mel].
Putar kayu sotong dengan logrotatSekarang mari kita anggap anda ingin menjalankan arahan tersuai apabila putaran berlaku. Untuk melakukan itu, letakkan garis dengan arahan antara arahan postrotate dan endscript.
Contohnya, katakan kami ingin menghantar e -mel ke root apabila mana -mana log di dalamnya /var/log/myservice Diputar. Mari tambahkan garis merah ke /etc/logrotate.D/sotong.Conf:
cumi.Conf/var/log/myservice/* Bulanan Buat 0644 Root Root Putar 5 Size = 1m postrotate echo "putaran baru berlaku."| Endscript Root Mail
Akhir sekali, tetapi tidak penting, adalah penting untuk diperhatikan bahawa pilihan yang ada di /etc/logrotate.d/*.Conf
mengatasi mereka dalam fail konfigurasi utama sekiranya berlaku konflik.
Logrotate dan Cron
Secara lalai, pemasangan logrotat membuat fail crontab di dalamnya /etc/cron.setiap hari Dinamakan Logrotate. Oleh kerana itu berlaku dengan fail crontab lain di dalam direktori ini, ia akan dilaksanakan setiap hari bermula pada 6:25 pagi Sekiranya Anacron tidak dipasang.
Cadangan dibaca: 11 Contoh Tugas Penjadualan Cron di LinuxJika tidak, pelaksanaan akan bermula 7:35 pagi. Untuk mengesahkan, tonton garis yang mengandungi Cron.setiap hari sama ada /etc/crontab atau /etc/anacrontab.
Ringkasan
Dalam sistem yang menghasilkan beberapa balak, pentadbiran fail sedemikian dapat dipermudahkan dengan menggunakan logrotat. Seperti yang telah kita jelaskan dalam artikel ini, ia secara automatik akan memutar, memampatkan, mengeluarkan, dan mel log secara berkala atau apabila fail mencapai saiz yang diberikan.
Pastikan ia ditetapkan untuk dijalankan sebagai pekerjaan cron dan logrotat akan menjadikan perkara lebih mudah untuk anda. Untuk maklumat lanjut, rujuk halaman lelaki.
Adakah anda mempunyai sebarang pertanyaan atau cadangan mengenai artikel ini? Jangan ragu untuk memberitahu kami menggunakan borang komen di bawah.
- « Apa itu Ext2, Ext3 & Ext4 dan Cara Membuat dan Menukar Sistem Fail Linux
- Cara Mengkonfigurasi Alamat IP Statik Rangkaian di RHEL/CentOS 8/7 »