วาง syslog ระยะไกลลงในไฟล์ของตัวเอง


2

ฉันมีเราเตอร์ Tomato และมีความสามารถในการบันทึกของมันไปยังเซิร์ฟเวอร์ภายนอก syslogเป็นตัวเลือกที่ชัดเจนสำหรับสิ่งนี้ ดังนั้นฉันจึงเปิดใช้งานการบันทึกระยะไกลบนเซิร์ฟเวอร์ linux ของฉันsyslogd( syslogd -r) และฉันสามารถดูบันทึก/var/log/syslogทั้งหมดได้ สิ่งที่ฉันต้องการจะทำคือนำทุกอย่างที่มาจาก IP ของเราเตอร์ของฉัน (10.0.0.1) และโอนไปยังไฟล์ของตัวเอง/var/log/tomatoเพื่อหลีกเลี่ยงการสร้างมลภาวะ syslog ด้วยบันทึกภายนอก

ฉันไม่พบตัวอย่างของคนที่ทำสิ่งนี้ ทางออกเดียวของฉันคือการรวมสคริปต์เข้าด้วยกันเพื่อแยกบรรทัดใด ๆ เข้า/var/log/syslogด้วย10.0.0.1กันและวางบรรทัดลง/var/log/tomatoและให้สคริปต์ทำงานเป็นงาน cron แต่ดูเหมือนจะยุ่งโดยไม่จำเป็น

จะต้องมีวิธีที่ดีกว่า

แก้ไข:

ถ้าไม่มีใครรู้ว่ามีวิธีแก้ปัญหาฉันแน่ใจว่า 95% syslogไม่สนับสนุนสิ่งนี้หลังจากอ่านหน้าเชิงลึกมากขึ้น ดังนั้นฉันต้องโยกย้ายไปยังsyslog-ngหรือสร้างสคริปต์ที่บ้าที่ทำงานด้วย cron

คำตอบ:


1

เรากำลังใช้ syslog-ng ที่สำนักงานของฉันและแน่นอนคุณสามารถแยกเอาต์พุตของ syslog ตามเกณฑ์ที่แตกต่างกันทุกประเภทไปยังไฟล์เอาต์พุตที่แตกต่างกัน ใน syslog-ng คุณต้องกำหนดแหล่งที่มาเกณฑ์และปลายทางแยกกัน จากนั้นคุณสร้างกฎที่จะรวมส่วนประกอบต่างๆเข้าด้วยกันเพื่อสร้างกฎจริงที่จะถูกดำเนินการโดย syslog-ng

สำหรับสิ่งที่ฉันเห็น syslog-ng ดูเหมือนจะเป็นมาตรฐาน def acto นอกจากนี้เรายังใช้โปรแกรมอ่าน syslog ที่ทำงานบนเว็บโดยใช้ Apache จากนั้นคุณสามารถอ่าน syslogs เหล่านั้นโดยใช้เกณฑ์ของคุณเองเพื่อตรวจสอบเนื้อหาบันทึกในวิธีที่อาจจะง่ายกว่าคำสั่ง "tail -f" ที่มีชื่อเสียง สิ่งนี้เรียกว่า PHPlogcon Google ชื่อและคุณควรหาได้ง่าย


1

ใช้ iptables เพื่อเบี่ยงเบนการรับส่งข้อมูลจากเราเตอร์ ip ของคุณไปยังพอร์ตที่แตกต่างกันบนโฮสต์ linux ของคุณ

พอร์ตอื่น ๆ ที่ (เช่น 5514) เรียกใช้อินสแตนซ์ของเซิร์ฟเวอร์ syslog อื่นและเขียน ไปยังไฟล์ที่คุณเลือก

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