Apa pro dan kontra logrotate vs rotatelogs dengan Apache?

11

Apache menyediakan alat yang disebut rotatelogs yang memiliki manfaat tidak me-restart apache ketika memutar log yang terjadi dengan logrotate. Saya tidak punya cukup pengalaman untuk berbicara jika ini kriteria yang cukup untuk menggunakan rotatelogs di atas logrotate.

Pertanyaan saya adalah apakah ada yang punya pengalaman kehidupan nyata menggunakan salah satu atau kedua alat ini dan apa masukan Anda nantinya?

Apa yang akan Anda rekomendasikan dan mengapa?

Mohan Gulati
sumber

Jawaban:

7

Saya akan merekomendasikan logrotate untuk kebanyakan orang karena itulah yang akan memutar semua log lainnya (KISS: Keep it Simple Stupid). Logrotate tidak me-restart semua Apache, melainkan hanya mengirimkannya sinyal yang memberitahukannya untuk membuka kembali semua file lognya dan me-restart anak-anak. Sinyal ini dapat berupa SIGHUP, yang menyebabkan anak-anak segera memulai kembali (yang akan mengganggu unduhan), atau SIGUSR1, yang melakukan restart dengan anggun. Dengan SIGUSR1, Anda harus menunda pemrosesan log sampai Anda berpikir semua anak akan mati secara alami. Bagaimanapun, Anda mungkin ingin menganalisis log Anda, dan mengatur waktu untuk periode lalu lintas terendah dalam satu hari atau minggu.

Log pipa sepertinya itu adalah solusi yang lebih kuat. Keuntungan besar adalah bahwa hal itu akan memungkinkan Anda untuk menggunakan sistem logging terpusat dan mengambil beban dari server web itu sendiri. Manual itu sendiri mengatakan:

Seperti halnya logging bersyarat, log pipa adalah alat yang sangat kuat, tetapi mereka tidak boleh digunakan di mana solusi yang lebih sederhana seperti pemrosesan pasca-off-line tersedia.

Jadi rupanya, jangan gunakan logging pipa jika Anda tidak membutuhkannya . Saya telah menggunakan loged pipa di masa lalu sebagai cara hacky untuk menyaring log, dan tidak punya masalah.

Kyle Brandt
sumber
Skrip postrotate dengan file logrotate Apache adalah mengirim SIGHUP, yang menyebabkan Apache menghentikan semua anak dan memulai kembali. Setiap koneksi aktif pada saat itu diakhiri.
Warner
Saya membaca komentar di suatu tempat yang mengatakan restart anggun tidak bekerja dengan baik dengan server yang membawa beban berat. Tapi saya benar-benar tidak berpikir ada banyak alternatif.
Mohan Gulati
logrotate dengan SIGHUP cukup standar. Saya tidak akan khawatir tentang itu.
Warner
2

Saya telah menggunakan keduanya sebelumnya. Saya menemukan bahwa menggunakan rotatelogs adalah alat yang sangat berguna dalam mengelola log akses dan jika Anda tidak ingin downtime apache. Pada situs volume tinggi saya akan merekomendasikan ini, satu-satunya Masalah yang saya temukan adalah bahwa jika Anda ingin mengelola log Anda harus memiliki skrip yang terpisah cron'd untuk membersihkan atau memindahkan log ke server cadangan, jelas ini tergantung pada kebutuhan. Dengan logrotate Anda memiliki lebih banyak opsi dengan bagaimana file log ditangani, satu-satunya masalah adalah ketika logrotate berjalan seperti yang dijelaskan dalam jawaban sebelumnya, Anda harus memulai kembali apache.

Pada dasarnya itu semua tergantung pada pilihan, jika Anda memerlukan apache untuk berjalan tanpa gangguan maka rotatelogs dengan skrip cron eksternal untuk mengelola, kalau tidak logrotate akan cukup. Pastikan untuk mengatur cron logrotate untuk tidak memutar log ketika Anda memiliki lalu lintas tinggi.

Terakhir jika Anda ingin memiliki apache log ke syslog Anda, Anda selalu dapat menggunakan perintah logger yang ada di linux Redhat Based.

Danie
sumber