วิธีการ logrotate ด้วย systemd?


12

ฉันรันแอปโหนดโดยใช้ systemd พร้อมไฟล์หน่วย สามารถดูบันทึกแอปได้โดยใช้journalctl -u example.comแต่บันทึกถูกตัดในบางจุดลบประวัติ (ซึ่งฉันต้องการสำหรับการดีบัก)

ฉันจะกำหนดค่าการเข้าสู่ระบบการหมุนด้วย systemd เพื่อให้บันทึก app ของฉันได้รับการจัดเก็บไว้ในexample.com.log.1, example.com.log.2ฯลฯ ดังนั้นฉันสามารถสอบถามประวัติของ app ของฉันได้อย่างไร

นี่คือไฟล์หน่วยของฉัน:

ExecStart=/usr/bin/node keystone.js
#Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=example.com
User=user
Group=user
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

1
โปรดรวมรุ่น systemd ของคุณเช่นเดียวกับระบบปฏิบัติการและรุ่นของคุณ
Mark Stosberg

1
ตรวจทานman journald.confเพื่อตรวจสอบตัวเลือกในการควบคุมพื้นที่ดิสก์ของ systemd journal /etc/systemd/journald.confหากคุณยังคงมีคำถามที่โพสต์เนื้อหาของคุณ
Mark Stosberg

คำตอบ:


7

การเพิ่มพื้นที่เก็บข้อมูล

หากคุณกำลังจัดเก็บไปยังดิสก์คุณสามารถเพิ่มปริมาณของพื้นที่ที่ใช้โดยการเปลี่ยนและSystemMaxUse / หรือ SystemKeepFreeการมีพื้นที่มากขึ้นจะทำให้สามารถเก็บรายการได้มากขึ้น

โดยค่าเริ่มต้นขีด จำกัด การใช้สูงสุด ( SystemMaxUse) คือ 10% ของระบบไฟล์และค่าพื้นที่ว่างขั้นต่ำ ( SystemKeepFree) คือ 15% - แม้ว่าจะถูก จำกัด ไว้ที่ 4G

การหมุนวารสาร

วารสารควรจะหมุนโดยอัตโนมัติเมื่อพวกเขามาถึงมูลค่าและจำนวนของวารสารจะถูกควบคุมโดยSystemMaxFileSize SystemMaxFilesหากคุณต้องการการหมุนตามเวลาคุณสามารถตั้งค่า a MaxFileSecเพื่อตั้งค่ารายการเวลาสูงสุดไว้ในวารสารเดียว

หมายเหตุเกี่ยวกับที่เก็บ / ประเภท

ด้วย journald คุณสามารถเลือกที่จะเก็บรายการบันทึกประจำวันไว้ในหน่วยความจำ ( Storage=volatile) หรือบนดิสก์ ( Storage=persistent) ข้างต้นถือว่าคุณกำลังจัดเก็บวารสารบนดิสก์ - หากไม่ใช่ "System" จะต้องถูกแทนที่ด้วย "Runtime" ในตัวแปรข้างต้น

man journald.confรายละเอียดเพิ่มเติมมีอยู่ใน

ทางเลือก - ส่งผ่านรายการบันทึกประจำวัน

หากคุณคุ้นเคยกับ SYSLOG daemon แบบดั้งเดิมอยู่แล้วคุณสามารถส่งผ่านเหตุการณ์สมุดรายวันได้โดยการตั้งค่าForwardToSyslogตัวเลือก (ซึ่งจะส่งต่อข้อความทันที) หรือมี syslog daemon bahave เหมือนไคลเอนต์เจอร์นัลและดึงบันทึกเอง

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