Kami saat ini meningkatkan dari Ubuntu 12,04 LTS ke 14,04 LTS pada server aplikasi ruby on rails kami, dan telah memperhatikan bahwa file log tidak lagi berputar.
Di kedua mesin kami memiliki file yang /var/app-name/config/logrotate
dimiliki oleh pengguna unix kami deployer
yang berisi file logrotate yang valid sebagai berikut:
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
Ini kemudian dihubungkan ke /etc/logrotate.d/
direktori sebagaiapp-name
Pada server Ubuntu 12.04 kami, kami memiliki logrotate 3.7.8 yang berjalan dengan baik. Ini masuk ke var/app-name/log/
direktori dan memutar semua file log
Tetapi pada server Ubuntu 14.04 kami memiliki logrotate 3.8.7 yang tidak memutar file log untuk aplikasi kami.
Ketika saya men-debug ini melalui sudo logrotate -d -f /etc/logrotate/.conf
saya mendapatkan output berikut:
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
Mengejar ini dalam kode, tampaknya perubahan ini ditambahkan untuk aliran rilis 3.8.x: https://github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023c24a1ba0aab1526
Jika saya mengubah kepemilikan file yang disinkronkan /var/app-name/config/logrotate
ke root
maka mulai berfungsi lagi. Tetapi mengingat file ini adalah bagian dari aplikasi saya, dan dibuat oleh kerangka kerja penyebaran capistrano yang kami gunakan di negara ini, saya lebih suka tidak perlu mengubah kepemilikannya, ketika dulu berfungsi dengan baik.
Jadi, apakah file konfigurasi symlinked direkomendasikan / didukung oleh logrotate?
Dan jika demikian, haruskah penolakan untuk menggunakan file saya (dimiliki oleh deployer
) yang disinkronkan ke /etc/logrotate.d
direktori, dilihat sebagai bug?
Atau apakah ada pendekatan lain yang disarankan untuk rotasi log khusus aplikasi?
(juga ditanya tentang unix StackExchange )