Logrotate จะบันทึกบันทึกของตัวเองอยู่ที่ไหน


25

ฉันlogrotateทำงานในเครื่อง EC2 AWS ที่หมุนบันทึก Apache เมื่อบรรจุแล้วบันทึก Apache จะถูกบันทึกลงใน AWS S3 ผ่าน s3fs ปัญหาคือเมื่อเร็ว ๆ นี้ฉันสังเกตเห็นว่าฉันไม่มีบันทึกการหมุน ใน S3 ฉันมีบันทึกเก่าตั้งแต่วันที่ 48-> 60 แต่ที่ 1-> 47 ไม่ปรากฏขึ้น

คำถามของฉันคือ: ที่ไหน logrotate บันทึกบันทึกของตัวเอง? เป็นไปได้ว่าฉันมีปัญหาบางอย่างกับ s3fs แต่ฉันต้องรู้ก่อนที่จะทำอะไร ฉันพยายามค้นหาไฟล์ที่ไหนสักแห่ง แต่ฉันหามันไม่เจอ

ความคิดใด ๆ

คำตอบ:


20

logrotateไม่ได้บันทึกอะไรโดยปริยาย โดยปกติควรอยู่ใน cron ของคุณที่อื่นเช่น:

$ grep -r -- 'logrotate.conf' /etc/cron*
/etc/cron.daily/logrotate:/usr/sbin/logrotate /etc/logrotate.conf

คุณสามารถเรียกใช้ด้วยตนเองเพื่อดูว่ามีอะไรผิดปกติหรือเปลี่ยนเส้นทางเอาต์พุต logrotate ไปยังไฟล์ใน cron ด้านบนเพื่อดูว่าเกิดอะไรขึ้นในวันถัดไป

ดูเหมือนว่าการกำหนดค่าไม่ถูกต้องและทำให้การทำงานของ logrotate หยุดชะงัก


+1 เมื่อใช้งาน logrotate ด้วยตนเองเพื่อดูว่ามีอะไรผิดปกติ
cjc

ขอบคุณสำหรับคำตอบ แต่สิ่งที่ฉันอยากรู้ว่าเกิดอะไรขึ้นในระบบของฉันเพื่อให้ได้ผลลัพธ์แบบนี้ ขอขอบคุณ!
enedebe

การรัน logrotate ด้วยตนเองทำให้เกิดข้อผิดพลาดหรือไม่? หากมีข้อผิดพลาดคุณต้องแก้ไขในไฟล์ conf หรือ /etc/logrotate.d/apache (หรือ apache2)
johnshen64

4
คุณสามารถใช้การ-dดีบักการตั้งค่าสถานะและการตั้งค่าสถานะการ-fบังคับใช้เพื่อดูสิ่งที่ logrotate พยายามทำ -dปิดใช้งานการกระทำ แต่ข้อความที่พิมพ์จะยังคงอ้างว่าพวกเขากำลังเปลี่ยนแปลงสิ่งต่าง ๆ
เดวิดลอร์ด

เมื่อทำงาน/usr/sbin/logrotate /etc/logrotate.confฉันจะเพิ่ม-vเพื่อดูบันทึกโดยละเอียด
Dennis Golomazov


5

อีกหนึ่งสถานที่ที่น่ามองคือ/var/log/messagesCentOS สำหรับข้อผิดพลาดเช่นนี้จาก cron.daily/etc/cron.daily/logrotate

logrotate: ALERT exited abnormally with [1]

คุณยังสามารถเรียกใช้ในโหมดแก้ไขข้อบกพร่องด้วยตนเองและตรวจสอบข้อผิดพลาด:

/usr/sbin/logrotate -d /etc/logrotate.conf

ที่มา: https://access.redhat.com/solutions/32831


2

หากคุณกำลังเรียกใช้logrotateจาก cron และไม่ได้เปลี่ยนเส้นทางเอาท์พุทหากมีจะไปที่อีเมลสำหรับรหัสใดก็ตามที่กำลังทำงาน cron ฉันเปลี่ยนเส้นทางผลลัพธ์ไปยังล็อกไฟล์

ตัวอย่างเช่น:

25 3 * * 7 /usr/sbin/logrotate -s /home/user/conf/mwarelogrotate.state 
/home/user/conf/mwarelogrotate.conf >> /home/user/logs/logrotate.log 2>&1

1

ตรวจสอบ/etc/logrotate.confการตั้งค่าการกำหนดค่าส่วนกลางที่อาจมีผลต่องานที่กำหนดค่าผ่าน/etc/logrotate.d/


0

เมื่อ logrotate ไม่หมุนบันทึกหรือเข้าสู่สถานะที่ล้มเหลวเป็นความคิดที่ดีที่จะเรียกใช้ logorate ด้วยตนเองในโหมด debug เพื่อดูข้อผิดพลาดที่แสดงรายการเช่นนี้:

/usr/sbin/logrotate -d /etc/logrotate.d/*

/etc/logrotate.dนี้การทดสอบคำสั่งหมุนบันทึกสำหรับการให้บริการทั้งหมดที่มีอยู่ในไฟล์ หากมีรายการข้อผิดพลาด (เช่นข้อผิดพลาดที่เกิดจากรายการบันทึกที่ซ้ำกัน) คุณจะรู้ว่าเหตุใด logrotate จึงมีปัญหา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.