ความแตกต่างระหว่าง syslog, rsyslog และ syslog-ng คืออะไร?


61

ฉันสับสนเล็กน้อยใน syslog, rsyslog และ syslog-ng

ฉันจะรับซอร์สโค้ดได้จากที่syslog()ใด

มีความแตกต่างระหว่าง rsyslog และ rsyslogd หรือไม่?


rsyslogd ด้วยตัวอักษร D คือ rsyslogd daemon
c4f4t0r

3
เพื่อความสมบูรณ์ฉันจะเพิ่มความแตกต่างหนึ่งอย่างที่ฉันพบว่าอาจหรืออาจไม่ส่งผลกระทบต่อคุณ syslog-ng ใช้ fopen ในขณะที่ rsyslog ใช้ fappend สิ่งนี้สำคัญถ้าคุณใช้chattr +aไฟล์ syslog คนส่วนใหญ่ไม่ได้ทำสิ่งนี้ฉันเพิ่งมีกรณีใช้พิเศษและนั่นคือสิ่งที่ฉันค้นพบ ฉันเพิ่งทำให้ผู้คนจำนวนมากประจบประแจง
แอรอน

คำตอบ:


52

โดยพื้นฐานแล้วจะเหมือนกันทุกประการในลักษณะที่อนุญาตให้มีการบันทึกข้อมูลจากระบบประเภทต่าง ๆ ในที่เก็บส่วนกลาง

แต่เป็นโครงการที่แตกต่างกันสามโครงการแต่ละโครงการพยายามปรับปรุงโครงการก่อนหน้าด้วยความน่าเชื่อถือและฟังก์ชันการทำงานที่มากขึ้น

Syslogโครงการเป็นโครงการแรกมาก มันเริ่มต้นในปี 1980 มันเป็นโครงการรากถึงSyslogโปรโตคอล ในเวลานี้ Syslog เป็นโปรโตคอลที่ง่ายมาก ในตอนแรกจะรองรับเฉพาะ UDP สำหรับการขนส่งเท่านั้นดังนั้นจึงไม่รับประกันการส่งข้อความ

ถัดไปมาsyslog-ngในปี 1998 มันขยายsyslogโปรโตคอลพื้นฐานด้วยคุณสมบัติใหม่เช่น:

  • การกรองตามเนื้อหา
  • เข้าสู่ระบบฐานข้อมูลโดยตรง
  • TCP สำหรับการขนส่ง
  • การเข้ารหัส TLS

ถัดไปมาRsyslogในปี 2004 มันขยายsyslogโปรโตคอลด้วยคุณสมบัติใหม่เช่น:

  • รองรับโปรโตคอล RELP
  • สนับสนุนการดำเนินงานบัฟเฟอร์

สมมติว่าวันนี้พวกเขาเป็นโครงการที่เกิดขึ้นพร้อมกันสามโครงการที่แยกกันตามรุ่น แต่ก็เติบโตควบคู่กันไปกับสิ่งที่เพื่อนบ้านกำลังทำอยู่

โดยส่วนตัวฉันคิดว่าวันนี้syslog-ngเป็นข้อมูลอ้างอิงในกรณีส่วนใหญ่เนื่องจากเป็นโครงการที่ครบกำหนดที่สุดที่เสนอคุณสมบัติหลักที่คุณอาจต้องการนอกเหนือจากการตั้งค่าและการกำหนดค่าที่ง่ายและครอบคลุม


1
สำหรับบันทึก syslog ของ OpenBSD สามารถทำ TCP และ TLS (และ UDP) ได้
Neil McGuigan

32

นี่คือผู้จัดการบันทึก 3 ประเภทที่แตกต่างกัน: ช่วยให้ระบบของคุณรวบรวมตัวกรองและส่ง / เก็บบันทึก

  • Syslog(daemon ชื่อด้วยsysklogd) คือ LM ดีฟอลต์ในการแจกแจง Linux ทั่วไป เบาบาง แต่ไม่ยืดหยุ่นมากคุณสามารถเปลี่ยนเส้นทางฟลักซ์การบันทึกที่เรียงลำดับตามความสะดวกและความรุนแรงไปยังไฟล์และผ่านเครือข่าย (TCP, UDP)
  • rsyslogเป็นเวอร์ชัน "ขั้นสูง" sysklogdซึ่งไฟล์การตั้งค่ายังคงเหมือนเดิม (คุณสามารถคัดลอกsyslog.confไฟล์ลงในrsyslog.confและทำงานได้โดยตรง); แต่คุณมีสิ่งดีๆใหม่ ๆ มามากมาย:

    • คุณสามารถฟังการเชื่อมต่อ TCP / UDP / ... โดยมีข้อ จำกัด (พอร์ต, IP ต้นทาง)
    • คุณสามารถโหลดโมดูลจำนวนมากได้
    • คุณสามารถแยกแยะบันทึกการกรองโดยโปรแกรมแหล่งที่มาข้อความ pid ฯลฯ (ตัวอย่างเช่นแต่ละข้อความที่ติดแท็กด้วยข้อความ "การเชื่อมโยงปิด" ไปยังไฟล์ที่ปิด. log)
    • คุณสามารถละทิ้งข้อความหลังจากกฎอย่างน้อยหนึ่งข้อไปที่http://www.rsyslog.comซึ่งดีมาก ๆ
  • Syslog-ng คือ "Next-Gen" ฉันคิดว่ามันเป็นวิธีที่ดีที่สุดในการจัดการบันทึก: ทุกอย่างคือวัตถุ (ต้นทางปลายทางตัวกรองและกฎการส่งต่อ) และไวยากรณ์นั้นชัดเจน ฉันสงสัยแง่ของการทำงานที่rsyslogและsyslog-ngมีความแตกต่าง


8
ฉันจะยืนยันว่าทั้ง syslog-ng และ rsyslog เป็น 'gen ถัดไป' หรืออย่างน้อยก็แทนที่ใหม่กว่าสำหรับ syslog รุ่นเก่า ทั้งสองเปรียบเทียบกันในแง่ของคุณสมบัติ แต่ไวยากรณ์สำหรับทั้งสองแตกต่างกันมาก syslog-ng มีไวยากรณ์ที่เป็นเอกลักษณ์ของตัวเองในขณะที่ไวยากรณ์ของ rsyslog นั้นเหมือนกับไวยากรณ์ syslog ที่เก่ากว่า
Stefan Lasiewski

9
และมีjournalctl/journald
Mausy5043

9

ฉันจะรับซอร์สโค้ดสำหรับ syslog ได้จากที่ไหน

นี้จัดทำโดยการใช้glibcหรือ libc ในรสชาติ Unix อื่น ๆ การโทรนี้โดยทั่วไปจะส่งข้อความของคุณไปยังซ็อกเก็ตโดเมน syslog unix / dev / log โดยปกติซ็อกเก็ตนี้จะถูกสร้างโดยตัวบันทึกระบบ (เช่น rsyslog, syslog-ng, nxlog เป็นต้น)


3

พวกมันคือ syslog daemons ทั้งหมดซึ่ง rsyslog และ syslog-ng นั้นเร็วกว่าและมีคุณสมบัติที่ทดแทนได้มากขึ้นสำหรับ syslogd แบบดั้งเดิม syslog-ng เริ่มต้นจากศูนย์ (ด้วยรูปแบบการตั้งค่าที่แตกต่างกัน) ในขณะที่ rsyslog เดิมเป็นทางแยกของ syslogd การสนับสนุนและการขยายไวยากรณ์ ในปีที่ผ่านมา rsyslog เริ่มสนับสนุนรูปแบบการกำหนดค่าที่ใหม่กว่าเช่นกัน ตอนนี้มันเป็นเรื่องยากที่จะเปรียบเทียบทั้งสองโดยไม่ต้องเข้าไปในเฉพาะและเริ่มสงครามเปลวไฟ

Syslog โดยทั่วไปค่อนข้างสับสนเพราะอาจมีหลายสิ่ง ฉันมีช็อตเด็ดเดี่ยวที่นี่: https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/

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