คำถามติดแท็ก systemd-journald

สำหรับคำถามเกี่ยวกับ systemd-journald ซึ่งเป็นบริการระบบที่รวบรวมและจัดเก็บข้อมูลการบันทึก ใช้แท็กนี้สำหรับคำถามเกี่ยวกับ systemd-journald เองโดยใช้ systemd-journald หรือคำถามเกี่ยวกับปัญหาที่เกิดจากการรวบรวมและจัดเก็บข้อมูลการบันทึกในระบบที่งานนี้ดำเนินการโดย systemd-journald

10
วิธีล้าง journalctl
ฉันไม่พบวิธีที่ปลอดภัยในการล้างบันทึก systemd ใน google ไม่มีใครรู้วิธีที่ปลอดภัยและเชื่อถือได้ที่จะทำเช่นนั้น? สมมติว่าฉันกำลังทดลองกับบางสิ่งและบันทึกของฉันเต็มไปด้วยข้อความแสดงข้อผิดพลาดต่างๆ ยิ่งกว่านั้นฉันกำลังแสดงบันทึกประจำวันของฉันบนเดสก์ท็อปโดยใช้ Conky ฉันไม่ต้องการเห็นข้อผิดพลาดเหล่านั้นเพราะพวกเขาเตือนฉันวันอันยิ่งใหญ่ที่ฉันแก้ไขสิ่งนี้ฉันอยากรู้สึกเหมือนเป็นคนใหม่หลังจากสยองขวัญนี้ ฉันคิดว่าทุกคนจะยอมรับว่านี่เป็นเหตุผลที่ถูกต้องในการล้างบันทึก: P

2
ฉันจะแสดงข้อความบันทึกจากบูทก่อนหน้าภายใต้ CentOS 7 ได้อย่างไร
การดำเนินการjournalctlภายใต้ระบบ CentOS 7 เพียงพิมพ์ข้อความที่สร้างขึ้นหลังจากการบูตครั้งสุดท้าย คำสั่ง # journalctl --boot=-1 พิมพ์ Failed to look up boot -1: Cannot assign requested address และออกด้วยสถานะ 1 เปรียบเทียบกับระบบ Fedora ปัจจุบันฉันสังเกตว่า CentOS 7 ไม่มี/var/log/journal(และjournalctlไม่มีให้--list-boots) ดังนั้นคำถามของฉันวิธีการแสดงข้อความบันทึกที่เขียนก่อนวันบูตครั้งสุดท้าย หรืออาจจะต้องเปิดใช้งานฟังก์ชั่นนี้ใน CentOS 7 ( journalctlหน้ารายชื่อรายการ 'systemd 208' เป็นหมายเลขเวอร์ชั่น)

2
จะบอกเจอร์นัลให้อ่านการกำหนดค่าใหม่ได้อย่างไร?
คำถามของฉันง่าย: ฉันจะบอก journald ให้อ่านไฟล์การกำหนดค่าอีกครั้งโดยไม่ต้องรีบูตเครื่องได้อย่างไร ฉันได้ทำการเปลี่ยนแปลงบางอย่าง/etc/systemd/journald.confแล้วและฉันต้องการดูว่าถูกต้องหรือไม่และทุกอย่างทำงานได้ตามที่คาดหวัง ฉันไม่ต้องการรีบูท

5
การรับข้อความ Syslog ด้วย systemd Arch Linux
ฉันรู้สึกว่าฉันมองข้ามสิ่งที่เห็นได้ชัดเจน แต่ฉันไม่สามารถเข้าใจวิธีการรับเซิร์ฟเวอร์ Arch Linux ของฉันซึ่งใช้systemdเพื่อรับและบันทึกsyslogข้อความจากระบบระยะไกล ฉันมีโมเด็ม Cisco 678 DSL และ WAP DD-WRT และทั้งสองสามารถกำหนดค่าให้ส่งข้อความรูปแบบ syslog ไปยังเครื่องอื่นได้ ฉันต้องการให้เครื่องนั้นเป็นเซิร์ฟเวอร์ Arch Linux ของฉัน ฉันไปรอบ ๆ และสิ่งที่ฉันพบคือ "systemd แทนที่ syslog" หรือว่าฉันไม่จำเป็นต้องทำงานอีกต่อไปsyslogหรือสิ่งที่ไม่เกี่ยวข้องกับคำถามของฉัน UPDATE ฉันถามฟอรัม Archแล้วและไม่มีคำตอบที่เกี่ยวข้อง ฉันติดตั้ง syslog-ng เพื่อฟังบนพอร์ต UDP 514 syslog-ng เขียนข้อความจาก Cisco 678 ของฉันและ WAP DD-WRT ที่ฉันมี น่าเสียดายที่ข้อความไม่ได้จบลงในสมุดรายวันของ systemd แต่เป็นไฟล์แบบแฟลต ดังนั้นไม่มีวิธีแก้ปัญหาที่แน่นอน แต่มีวิธีแก้ปัญหา ฉันควรมีข้อความ syslog ในวารสารไม่ใช่ไฟล์ …

1
วิธีตรวจสอบ systemd system.journal จากระบบอื่น
ฉันมี arch linux ที่ล้มเหลวบนอุปกรณ์ อุปกรณ์ไม่มีหน้าจอใด ๆ แต่ไม่ตอบสนองต่อเครือข่าย ดังนั้นฉันจึงนำการ์ด SD ใส่ลงในเดสก์ท็อป Ubuntu ดู system.journal ที่นั่นและ ... จะดูว่ามีอะไรอยู่ข้างในได้บ้าง จากเอกสาร Arch Linux ฉันรู้ว่าฉันสามารถทำได้: strings /mnt/arch/var/log/journal/.../system.journal | grep -i message แต่มันเป็นพื้นฐานจริงๆ คำถามคือ: มีวิธีที่สะดวกกว่าในการตรวจสอบ system.journal จากระบบอื่นมากกว่าการใช้สตริงหรือไม่? ยกตัวอย่างเช่นฉันสามารถระบุไฟล์ที่จะอ่านสำหรับjournalctl ได้หรือไม่?


2
journalctl - ตรวจสอบความเสียหายของรายงาน
ฉันเพิ่งสังเกตเห็นverifyตัวเลือกนี้journalctlและตัดสินใจที่จะออกไปมันแสดงให้เห็นถึงการทุจริตสิ่งที่อาจทำให้เกิดอะไรขึ้น? และถ้าฉันควรทำอะไรเกี่ยวกับเรื่องนี้? ฉันควรตรวจสอบเพิ่มเติมหรือไม่ journalctl --verify PASS: /var/log/journal/19184893a1d645c7a43729e79b10a876/user-1000.journal Invalid object contents at 3733856░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0% File corruption detected at /var/log/journal/19184893a1d645c7a43729e79b10a876/system.journal:3733856 (of 91734016, 4%). FAIL: /var/log/journal/19184893a1d645c7a43729e79b10a876/system.journal (Bad message) Invalid object contents at 21575496░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 45% File corruption detected at /var/log/journal/19184893a1d645c7a43729e79b10a876/system@60e058db556e4de4b256d0b1ff176aa4-0000000000000001-0004e0b436d20aa1.journal:21575496 (of 44052480, 48%). FAIL: /var/log/journal/19184893a1d645c7a43729e79b10a876/system@60e058db556e4de4b256d0b1ff176aa4-0000000000000001-0004e0b436d20aa1.journal (Bad message) PASS: /var/log/journal/19184893a1d645c7a43729e79b10a876/user-1000@60e058db556e4de4b256d0b1ff176aa4-0000000000000a91-0004e0b4ff9a949a.journal PASS: /var/log/journal/19184893a1d645c7a43729e79b10a876/user-1001.journal

2
ฉันจะล้างรายการ journalctl สำหรับหน่วยเฉพาะได้อย่างไร
ฉันใช้เวลาสองสามวันในการเขียนสคริปต์หลามและสร้างไฟล์หน่วย systemd ขึ้นมา ในระหว่างการทดสอบสคริปต์บันทึกข้อผิดพลาดจำนวนมากเพื่อเจอร์นัล ฉันต้องการลบข้อผิดพลาดจากเจอร์นัลตอนที่ฉันทำไปแล้ว มีหลายวิธีในการล้างวารสารทั้งหมดตามที่อธิบายไว้ที่นี่: วิธีล้าง journalctl รวมถึงการใช้การjournalctl --vacuum-time=2dใช้journalctl --vacuum-size=500Mและการตั้งค่าชั่วคราวSystemMaxUse=ใน /etc/systemd/journald.conf ให้มีค่าต่ำมาก ทั้งหมดเหล่านี้ดูเหมือนจะล้างวารสารทั้งหมดส่งผลกระทบต่อทุกหน่วย ฉันแค่ต้องล้างรายการสำหรับหน่วยเดียว เป็นไปได้ไหม

2
`logger 'บันทึกข้อความไว้ที่ใดใน Arch Linux
loggerคำสั่งบันทึกรายการใน syslog /var/log/messagesซึ่งมักจะทำให้เส้นที่ไปยังไฟล์บางอย่างเช่น ถ้าผมเข้าใจเอกสารอย่างถูกต้องใน Arch Linux ทั้งหมดเข้าสู่ระบบจะกระทำผ่าน systemd แต่ฉันไม่สามารถหารายการที่ใช้loggerjournalctl เกิดอะไรขึ้นกับข้อความที่ให้ไว้loggerใน Arch Linux? รายการบันทึกจัดเก็บอยู่ที่ไหน (grep ด่วนแนะนำ/var/log/journal/*/system.journal) ฉันจะเข้าถึงบันทึกนี้ได้อย่างไร (ฉันต้องการตัวเลือกพิเศษjournalctlหรือไม่)

1
วิธีหลีกเลี่ยง / usr / bin / env ถูกทำเครื่องหมายใน systemd ล็อกเป็นไฟล์เรียกทำงาน
ฉันได้สร้างบริการ systemd เรียกใช้โปรแกรมประยุกต์คราวบนพื้นฐานของข้อมูลที่พบในบทความนี้ บทความฉบับย่อแนะนำให้หลีกเลี่ยงเชลล์สคริปต์แรปเปอร์และเรียกใช้จาวาโดยตรงด้วยสภาพแวดล้อมและบรรทัดคำสั่งที่เหมาะสม นี่คือบริการทั้งหมดของ systemd (โดยแทนที่ชื่อแอพ): [Unit] Description=MyApp Tomcat Container [Service] EnvironmentFile=/opt/myapp/environment ExecStart=/usr/bin/env ${JAVA_HOME}/bin/java $JAVA_OPTS $CATALINA_OPTS \ -classpath ${CLASSPATH} \ -Dcatalina.base=${CATALINA_BASE} \ -Dcatalina.home=${CATALINA_HOME} \ -Djava.endorsed.dirs=${JAVA_ENDORSED_DIRS} \ -Djava.io.tmpdir=${CATALINA_TMPDIR} \ -Djava.util.logging.config.file=${CATALINA_BASE}/conf/logging.properties \ -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ org.apache.catalina.startup.Bootstrap start ExecStop=/usr/bin/env $JAVA_HOME/bin/java $JAVA_OPTS \ -classpath $CLASSPATH \ -Dcatalina.base=$CATALINA_BASE \ -Dcatalina.home=$CATALINA_HOME \ -Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS \ -Djava.io.tmpdir=$CATALINA_TMPDIR \ …

2
วิธีการกำหนดค่านโยบายการจัดเก็บบันทึกต่อหน่วยด้วย journald?
ฉันมีบริการหนึ่งอย่างที่บันทึกข้อมูลที่หายาก แต่สำคัญ ฉันได้ตั้งค่าไม่กี่เดือนที่ผ่านมาและวันนี้ฉันทำงานjournalctl -n 50 --unit=my-serviceเพียงเพื่อจะพบว่าไม่มีรายการ ฉันมีความสุขอย่างสมบูรณ์แบบกับพฤติกรรมนี้สำหรับหน่วยงานส่วนใหญ่ - ฉันต้องการบางสิ่งที่เกิดขึ้นทันที (หรือเมื่อไม่กี่วันที่ผ่านมา) และฉันไม่สนใจบันทึกเก่า ๆ หลายเดือน อย่างไรก็ตามมีวิธีบอกjournaldให้มีนโยบายการจัดเก็บและการเก็บรักษาที่เป็นอิสระสำหรับบันทึกของหน่วยใดหน่วยหนึ่งหรือไม่? ฉันต้องการเก็บบันทึกเฉพาะเหล่านั้นไว้เป็นเวลา 5 ปีไม่ว่าจะต้องใช้ขนาดใดก็ตาม บันทึกของหน่วยอื่นควรไม่ได้รับผลกระทบจากสิ่งนี้และรักษาพฤติกรรมที่มีอยู่ ฉันขาดความเข้าใจjournald.conf(5)และไม่สามารถคิดออกได้ว่าเมื่อใดก็ตามที่สามารถกำหนดค่าต่อหน่วยได้ ถ้าเป็น - จะขอบคุณตัวอย่างที่เป็นรูปธรรมโดยย่อ - ฉันควรแก้ไข / สร้างไฟล์ใดและควรเขียนอะไร หรือถ้าคุณรู้ว่ามันไม่สามารถทำได้อย่างแน่นอน - นั่นก็เป็นคำตอบที่ดีเช่นกัน หมายเหตุ:กรณีของฉันเกี่ยวข้องกับโฮสต์ Arch Linux แต่ฉันคิดว่ามันไม่สำคัญเท่าไหร่

1
จะกำหนดทิศทางเอาต์พุตเจอร์นัลของบางหน่วยไปยังไฟล์เฉพาะได้อย่างไร?
ฉันมีระบบที่มี daemons หลายตัวกำลังทำงาน (เป็น systemd units) ที่ส่งออกบันทึกข้อมูลไปยังเจอร์นัลใน Arch Linux ฉันต้องการกำหนดเอาท์พุทเจอร์นัลของไฟล์หน่วยเหล่านั้นบางไฟล์ให้เป็นไฟล์ข้อความแยกต่างหากซึ่งฉันระบุตำแหน่งที่ตั้งไว้เป็นหลักโดยสร้างไฟล์บันทึกสำหรับชุดย่อยของหน่วย ฉันจะทำเช่นนั้นได้อย่างไร

4
ฉันจะดูได้อย่างไรว่าเซอร์วิส systemd เริ่มทำงาน / หยุด / รีสตาร์ทแล้ว?
ฉันมีบริการ (เขียนด้วยตัวเอง) ที่ทำงานบนเซิร์ฟเวอร์ Debian (Jessie) และมีบันทึกของตัวเองบริการเพื่อแสดงว่าเริ่มต้นใหม่ในเวลาใดเวลาหนึ่ง ไม่มีข้อบ่งชี้ของ segfault หรือความผิดพลาดอื่น ๆ ดังนั้นตอนนี้ฉันกำลังพยายามคิดออกว่าแอปพลิเคชันใดๆ ที่ล้มเหลวอย่างเงียบ ๆและได้รับการตอบกลับจาก systemd หรือไม่ว่าผู้ใช้บริการเริ่มต้นใหม่โดยsystemctlตั้งใจ ประวัติเชลล์ไม่แสดงกิจกรรมดังกล่าว แต่ไม่ได้ข้อสรุปเนื่องจากexport HISTCONTROL=ignorebothและเนื่องจากเซสชัน SSH อาจเพิ่งหมดเวลาเพื่อป้องกันไม่ให้ประวัติทุบตีของล็อกอินก่อนหน้านี้ถูกเขียนลงดิสก์ เซิร์ฟเวอร์ไม่รีบูตในเวลานั้น แต่ฉันคาดหวังว่า systemd เองควรเก็บบันทึกที่ระบุเมื่อเริ่มบริการใหม่โดยมีจุดประสงค์ ด้วยความประหลาดใจของฉันฉันไม่สามารถค้นหาเอกสารใด ๆ (เช่นเพื่อjournalctl) เกี่ยวกับวิธีรับบันทึกดังกล่าว บางโพสต์อื่น ๆ (เช่นที่ไหน / ทำไมไม่มีบันทึกสำหรับผู้ใช้บริการ systemd ปกติ? ) ดูเหมือนจะระบุว่าควรมีข้อความบันทึกเช่นนี้: Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Starting chatty.service... Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Started …

3
ฉันจะเรียกคืน `/ dev / log` ในโฮสต์ systemd + rsyslog ได้อย่างไร
เมื่อวันที่ RHEL7, systemd-journaldใช้เวลากว่าหลายหน้าที่ฯ rsyslogdของของสิ่งที่ได้กระทำครั้งโดย ไม่ว่าจะด้วยข้อผิดพลาดหรือความขัดแย้งระหว่างสอง daemons เหล่านี้บางครั้ง/dev/logจะหายไป เป็นผลให้โปรแกรมอาศัยโทรจะไม่ทำงานอย่างถูกต้องรวมทั้งตัวอย่างเช่นsyslog(3) loggerฉันจะเรียกคืน/dev/logซ็อกเก็ตได้อย่างไร

2
วิธีการตรวจสอบว่าทำไม Systemd เข้าสู่โหมดฉุกเฉิน
คอมพิวเตอร์เดสก์ท็อปของฉันที่ใช้ Debian Jessie เริ่มวางลงในเชลล์โหมดฉุกเฉินทุกครั้งที่บูตเครื่อง หน้าจอบอกว่าใช้journalctl -xbเพื่อค้นหาสาเหตุและเพื่อใช้systemctl defaultในการบูทต่อไป เมื่อฉันดำเนินsystemctl defaultการระบบจะยังคงบู๊ตและหลังจากผ่านไปสองสามสัปดาห์ในการใช้ระบบก็ไม่มีอะไรผิดปกติ เมื่อมองผ่านไปjournalctl -xbไม่มีสิ่งใดโดดเด่นในฐานะเหตุผลในการทิ้งกระสุนฉุกเฉิน มีวิธีที่ง่ายต่อการตรวจสอบว่าเหตุผลที่ตัดสินใจที่จะเข้าสู่โหมดฉุกเฉิน? มีการตั้งค่าสถานะอื่น ๆ หรือตัวเลือกการเริ่มระบบที่จะทำให้ชัดเจนว่าปัญหาอยู่ที่ใด

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