GNU/Linux >> Belajar Linux >  >> Linux

Menyiapkan logrotate di Linux

Bayangkan seperti apa hidup ini jika layanan kritis turun beberapa menit yang lalu, dan Anda dipanggil untuk menyelamatkan hari itu. Anda mencoba me-restart layanan, dan itu tidak mau. Tidak ada pesan kesalahan, tetapi yang lebih penting, tidak ada jejak apa yang dilakukannya sebelum memutuskan untuk mati. Seratus satu menyebabkan jalan melalui pikiran Anda, dan Anda menyadari bahwa tidak ada cara untuk mengetahui ke arah mana Anda harus pergi. Mungkin Anda bisa me-restart server sama sekali. Mungkin saja.

Skenario ini adalah salah satu dari banyak skenario di mana logging dapat membantu Anda. Biasanya, perangkat lunak yang sedang berjalan menyimpan catatan aktivitas penting yang terkait dengan pengoperasiannya demi anak cucu dalam sebuah file. Apa pun dapat disimpan dalam file log karena membantu pengembang dan sysadmin mengetahui apa yang terjadi dengan perangkat lunak tertentu setelah fakta. File log juga digunakan oleh orang yang berorientasi keamanan untuk meninjau akses ke sumber daya tertentu. Dalam jaringan atau perpesanan, file log mencatat waktu pesan dikirim atau diterima untuk referensi nanti.

File log, menurut definisi, terus bertambah ukurannya tergantung pada frekuensi dan verbositas yang diperbarui. Untuk memenuhi tujuannya, mereka biasanya dibuka dalam mode tambahan dan berisi cap waktu untuk membantu pemecahan masalah dan forensik. Namun, ini menimbulkan masalah karena ukuran file yang besar membuat bekerja dengan file log menjadi proses yang rumit baik untuk sistem maupun peninjau manusia. Log diputar untuk menjaga agar file log dapat dipertahankan. Sederhananya, file baru dibuka sementara yang lama ditutup dan disimpan atau dihapus tergantung pada preferensi desain. Ini mencegah log dari mengisi seluruh partisi dan membuat sistem bertekuk lutut dalam prosesnya. Anda mungkin telah memperhatikan rotasi log yang bekerja pada sistem di sekitar. Lihat tanggal di boot.log file.

Dalam hal ini, ketika kondisi tertentu terpenuhi, file saat ini diganti namanya dengan menambahkan tanggal untuk mengidentifikasi dan melacaknya, dan file baru dengan nama asli dibuka, siap menerima pesan log yang masuk.

Masuk ke Linux (rsyslogd)

Seperti yang Anda harapkan, masuk ke sistem Linux, seperti server CentOS 7 yang saya gunakan sebagai ilustrasi, mengandalkan daemon untuk memfasilitasi pencatatan. Rsyslogd adalah nama layanan lama yang andal dan open-source. Sebenarnya usianya tidak terlalu tua. Ini adalah versi perbaikan dari syslog asli daemon, dan memiliki kemampuan untuk memproses dan meneruskan log dengan cepat ke lokasi mana pun dalam jaringan IP. Selain syslog dan rsyslog , ada syslog-ng , yang merupakan daemon lain untuk menangani log. Handler log default tergantung pada distro yang dipilih. Rsyslog datang secara default di banyak distro berbasis Red Hat. Jalankan perintah berikut untuk memverifikasi keberadaan dan versinya di sistem Anda:

rsyslogd -v

Karena ini adalah daemon, Anda dapat memeriksa yang aktif dengan menggunakan systemd sebagai berikut:

systemctl status rsyslog

Jika, karena alasan apa pun, tidak berjalan, Anda dapat memulainya melalui systemd .

[ Catatan Editor:Banyak sistem yang lebih baru telah menggantikan rsyslogd dengan journald untuk logging. Anda dapat memilih salah satu opsi, atau bahkan keduanya, untuk menangani kebutuhan logging Anda. Untuk informasi selengkapnya, lihat dokumentasi untuk distribusi Anda. Artikel ini akan menganggap Anda menggunakan rsyslogd.]

Logrotasi

Logrotate adalah utilitas Linux yang fungsi intinya adalah - menunggu - memutar log. Jika tidak diinstal sebagai bagian dari instalasi OS default, dapat diinstal hanya dengan menjalankan:

 yum install logrotate

File biner dapat ditemukan di /bin/logrotate .

Dengan menginstal logrotate , file konfigurasi baru ditempatkan di /etc/ direktori untuk mengontrol perilaku umum utilitas saat dijalankan. Juga, folder dibuat untuk file konfigurasi snap-in khusus layanan untuk permintaan rotasi log yang dibuat khusus. Lebih lanjut tentang ini nanti.

Tugas cron harian

Sebuah cron pekerjaan dijalankan setiap hari yang memulai utilitas. Ini dicapai dengan melakukan panggilan ke utilitas dalam cron standar folder untuk pekerjaan sehari-hari. Sementara spesifikasi panggilan berada di luar cakupan artikel ini, cukuplah untuk mengatakan bahwa panggilan tersebut hanyalah skrip Bash yang menjalankan logrotate biner, memberi tahu sistem apa yang harus dilakukan jika terjadi kesalahan.

Lokasi file log standar

Log pada sistem Linux dapat ditempatkan di mana saja izin mengizinkan. Namun, karena fakta bahwa mereka terus berubah dalam ukuran dan konten, menurut definisi, Hirarki Sistem File menetapkan bahwa mereka disimpan di /var/log/ direktori.

Tangkapan layar di bawah ini adalah mengintip isi dari /var/log saya direktori.

File konfigurasi dan contoh

/etc/logrotate.conf

File pertama yang harus diperhatikan sehubungan dengan fungsi logrotate adalah logrotate.conf . File konfigurasi ini berisi arahan tentang bagaimana file log harus diputar secara default. Jika tidak ada kumpulan arahan khusus, utilitas bertindak sesuai dengan arahan dalam file ini.

Di bawah ini adalah contoh isi dari file konfigurasi.

Mari kita lihat beberapa arahan untuk merasakan fleksibilitas logrotate. Dengan senang hati, penulis utilitas telah memberikan komentar yang cukup untuk membuat pemula pergi. Anda juga bisa melihat man halaman untuk menyelam lebih dalam. Arahan weekly , dateext , compress , create , dan rotate 4 nyatakan bahwa file log harus dirotasi mingguan , bahwa tanggal rotasi digunakan sebagai tanda akhiran dari file yang diputar, file yang diputar harus dikompresi , bahwa file baru akan dibuat untuk menerima log masuk, dan tidak lebih dari empat log harus disimpan. Dengan kata lain, log terbaru kelima harus dihapus. Perhatikan juga bahwa di sistem saya, karena adanya # sebelum compress direktif, kompresi dinonaktifkan secara default.

Juga, ada arahan untuk memasukkan folder tertentu:/etc/logrotate.d . Folder ini digunakan untuk permintaan rotasi log khusus paket. Paket yang dirancang untuk memanfaatkan logrotate jatuhkan file konfigurasi ke direktori ini. Modularitas ini sesuai dengan semangat Linux dan meningkatkan ekstensibilitas utilitas. File konfigurasi berisi arahan serupa dan file log kustom jika berlaku. Anda juga dapat membuat file konfigurasi Anda sendiri untuk menangani file log apa pun yang Anda pilih. Cukup beri nama file, tambahkan file log yang akan diproses, dan letakkan di direktori ini. Terakhir, ada arahan untuk file log tanpa paket pemilik, seperti wtmp dan file log sistem lainnya. man halaman diisi dengan lebih banyak arahan, dan untuk pengguna yang memiliki kebutuhan rotasi yang lebih spesifik, saya sangat menyarankan Anda untuk melihatnya.

/etc/logrotate.d

Untungnya, saya telah berbicara banyak tentang /etc/logrotate.d direktori, jadi tanpa banyak basa-basi, izinkan saya menunjukkan kepada Anda isi direktori ini untuk membawa pulang ide-ide yang dibagikan sebelumnya.

Dan untuk lebih jelasnya, mari kita lihat file konfigurasi Samba.

Dapatkah Anda melihat betapa miripnya dengan logrotate.conf ? Sebelum saya menggambar tirai pada bagian ini, mari kita jalankan beberapa arahan dalam file ini:

/var/log/samba/* - File log yang akan diputar. Dalam hal ini, ini adalah setiap file log di direktori log Samba.

notifempty - Arahan yang menyatakan bahwa file tidak boleh diputar jika kosong.

olddir /var/log/samba/old - Lokasi untuk menyimpan log lama yang diputar.

missingok - Menghentikan logrotate dari melempar kesalahan jika file log hilang.

copytruncate - Jangan tutup file log. Buat salinan, yang akan menjadi file yang diputar dan diganti namanya, lalu potong file log ke ukuran nol

Bisakah Anda menebak apa sharedscripts direktif tidak? Tidak perlu menebak - konsultasikan dengan man halaman.

Penutup

Mudah-mudahan, ini cukup untuk membuat Anda aktif dan berjalan dengan mengelola log. Logrotate adalah utilitas rotasi sumber terbuka yang sederhana namun kuat. Sampai postingan berikutnya, selamat bergilir!

[ Kursus online gratis:Ikhtisar teknis Red Hat Enterprise Linux. ]


Linux
  1. Cara Mengelola File Log Menggunakan Logrotate Di Linux

  2. Menggunakan Logrotate di linux Untuk Mengelola File Log (dengan contoh)

  3. Linux – Semuanya Adalah File?

  1. Cara Mengosongkan File Log di Linux

  2. Cara menggunakan Logrotate untuk mengelola file log

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

  1. Cara memindahkan file di Linux

  2. Pengaturan Centos/Linux logrotate ke ukuran file maksimum untuk semua log

  3. Bagaimana cara mencetak keluaran perintah Linux ke file?