systemd-journald เป็นการนำ syslog ไปใช้หรือไม่?


22

ฉันสงสัยว่า systemd-journald เป็นการนำโพรโทคอล syslog ใหม่มาใช้หรือไม่ก็ใช้ syslog implementations เช่น rsyslog, syslog-ng

ฉันไปเที่ยวบ้าง แต่ฉันไม่พบอะไรที่น่าเชื่อถือ


คุณอาจต้องการชี้แจงหากโดย "syslog โปรโตคอล" คุณหมายถึงการรับ syslog ใน tcp | udp 514 หรือส่งหรือทั้งสองอย่าง
Alex Stragies

ดู dupe ที่เป็นไปได้: unix.stackexchange.com/questions/83173/…
Alex Stragies

คำตอบ:


33

สำหรับโปรโตคอลที่เกี่ยวข้องsystemd-journald...

  • ... /run/systemd/journal/stdoutเป็นผู้ฟังบนซ็อกเก็ตสตรีมที่ชื่อว่า systemd เชื่อมต่อเอาต์พุตมาตรฐานและข้อผิดพลาดของบริการ (ที่มีค่าเริ่มต้นหรือมีStandardOutput=journal/ StandardError=journal) กับซ็อกเก็ตนี้ ดังนั้นจึงได้รับโปรโตคอลของเร็กคอร์ดรูปแบบอิสระที่มีความยาวผันแปรซึ่งถูกยกเลิกด้วย linefeeds
  • ... เป็นผู้ฟังบนซ็อกเก็ดาต้าชื่อซึ่งจะเชื่อมโยงสัญลักษณ์จาก/run/systemd/journal/dev-log /dev/logสิ่งนี้รับโปรโตคอลที่syslog()ห้องสมุดทำงานในไลบรารี GNU C ซึ่งเชื่อมโยงกับแอปพลิเคชันพูด
  • ... /run/systemd/journal/syslogพยายามที่จะเป็นลูกค้าของการฟังบริการอื่นบนซ็อกเก็ตเดตาแกรมที่มีชื่อว่า สิ่งนี้ยังได้รับโปรโตคอลที่syslog()ฟังก์ชั่นห้องสมุดในไลบรารี GNU C พูด (แม้ว่าsystemd-journaldจริงๆแล้วจะใช้ไลบรารีอื่นและฟังก์ชั่นอื่นจะพูด)
  • ... /dev/kmsgเป็นผู้อ่านจากอุปกรณ์ตัวละครชื่อ สิ่งนี้ได้รับโปรโตคอลที่เคอร์เนล Linux พูดซึ่งเป็นโปรโตคอลที่มีความยาวผันแปรซึ่งส่วนใหญ่เป็นรูปแบบอิสระบันทึกสิ้นสุดด้วย linefeeds
  • ... /run/systemd/journal/socketเป็นผู้ฟังบนซ็อกเก็ตเดตาแกรมที่มีชื่อว่า นี่คล้ายกับกรณีของไลบรารี GNU C ในแอปพลิเคชันนั้นลิงก์ไปยังไลบรารีที่พูดถึงโปรโตคอลบางอย่างกับซ็อกเก็ตนี้ ยกเว้นว่าฟังก์ชั่นนี้sd_journal_sendv()อยู่ในไลบรารี systemd C ที่แอปพลิเคชันเชื่อมโยงและโปรโตคอลไม่ได้มาตรฐาน แต่เป็นโปรโตคอล systemd-only ซึ่งประกอบไปด้วยอาร์เรย์ของคู่ key = value และเป็นตัวบ่งชี้ไฟล์ที่อ่านได้ในแต่ละดาตาแกรม .

โปรโตคอลที่พูดโดยsyslog()ฟังก์ชั่นในห้องสมุด GNU C ไม่ใช่ RFC 5424 หรือ RFC 3164 และเป็นมาตรฐานของตัวเองอย่างมีประสิทธิภาพ ไม่ใช่ RFC 5424 เนื่องจากไม่มีจำนวนช่องว่างที่ถูกต้องและขีดกลางกำหนดเขตข้อมูลเพิ่มเติมด้วยค่า NIL มันไม่ได้เป็น RFC 3164 เพราะมีข้อมูลแทนPROCIDHOSTNAME

สองสามปีที่ผ่านมาระบบปฏิบัติการ systemd ของคุณจะมี:

  • systemd-journaldทำทั้งหมดข้างต้น (และบางสิ่งที่ไม่เกี่ยวข้องเมื่อมันมาถึงโปรโตคอล ) และเป็นเซิร์ฟเวอร์ที่ไลบรารี GNU C และไลบรารี systemd C พูดคุยกับการใช้โปรโตคอลที่เกี่ยวข้อง
  • เลือก syslog หรือ rsyslog หรือ syslog-ng โปรแกรมที่เรียกใช้ทั้งxinetd/ inetd-style เมื่อบางสิ่งบางอย่างพยายามที่จะส่งข้อความไป/run/systemd/journal/syslogและรับซ็อกเก็ตเป็นตัวอธิบายไฟล์ที่เปิดหรือเป็นบริการตรงที่กำหนดค่าให้เปิดและฟัง/run/systemd/journal/syslogด้วย (เทียบเท่า rsyslog) imuxsockโมดูล; และการพูดโปรโตคอลห้องสมุด GNU C
  • syslog หรือ rsyslog หรือ syslog-ng หรือ udp-syslog-read service ที่รับฟังสำหรับปริมาณการใช้งาน RFC 5426

ทุกวันนี้ระบบปฏิบัติการ systemd ของคุณมี:

  • systemd-journald ทำทุกสิ่งข้างต้นอีกครั้งและเป็นเซิร์ฟเวอร์ที่ไลบรารี GNU C และไลบรารี systemd C พูดคุยด้วย
  • โปรแกรม rsyslog ที่เป็นตัวเลือกถูกเรียกใช้เป็นบริการโดยตรงมากกว่าผ่านซ็อกเก็ตซึ่งอ่านสิ่งต่าง ๆ โดยตรงจากไฟล์เจอร์นัลของ systemd โดยใช้imjournalโมดูล
  • syslog หรือ rsyslog หรือ syslog-ng หรือ udp-syslog-read service ที่รับฟังสำหรับปริมาณการใช้งาน RFC 5426

อ่านเพิ่มเติม

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