วิธีการส่งต่อไฟล์บันทึกเฉพาะนอก / var / log ด้วย rsyslog ไปยังเซิร์ฟเวอร์ระยะไกล


24

ฉันจะส่งต่อข้อความจากแฟ้มบันทึกที่เฉพาะเจาะจงเช่น/www/myapp/log/test.logกับrsyslogลูกค้าระยะไกลrsyslogเซิร์ฟเวอร์? /var/logแฟ้มบันทึกนี้อยู่นอกไดเรกทอรี

คำตอบ:


42

เพียงตั้งค่ากฎ imfile ใน /etc/rsyslog.conf ของคุณ

#/etc/rsyslog.conf
$ModLoad imfile
$InputFileName /data/mysql/error.log
$InputFileTag mysql-error
$InputFileStateFile stat-mysql-error
$InputFileSeverity error
$InputFileFacility local3
$InputRunFileMonitor
local3.* @@hostname:<portnumber>

สิ่งนี้จะเฝ้าดูไฟล์และบันทึกลงใน local3 facility ใน syslog จากนั้นคุณสามารถส่งข้อมูลทั้งหมดจากระบบ local3 ไปยังเซิร์ฟเวอร์ระยะไกลของคุณ คุณอาจต้องการเพิ่มสิ่งต่อไปนี้ใน rsyslog conf ของคุณ (โดยปกติ /etc/rsyslog.d/50-default.conf บน Ubuntu) เพื่อไม่บันทึกสิ่งอำนวยความสะดวก local3 ลงใน / var / log / syslog:

#/etc/rsyslog.d/50-default.conf
*.*;auth,authpriv.none,local1.none,local2.none,local3.none,local4.none,local5.none,local6.none          -/var/log/syslog

นอกจากนี้ฉันขอแนะนำให้อ่านจากเอกสาร rsyslog ต่อไปนี้สำหรับการกรองขั้นสูงเพิ่มเติม:

  1. คุณสมบัติแทนที่
  2. เงื่อนไขการกรอง

สิ่งนี้มีประโยชน์มากขอบคุณไบรอัน ความท้าทายเดียวของฉันที่นี่คือบรรทัดในการป้องกันการบันทึกพิเศษจากฝั่งไคลเอ็นต์ / var / log / syslog ไม่ทำงานสำหรับฉันบน Ubuntu 12.04 อาจเป็น PEBKAC แต่ฉันสงสัยว่านี่เป็นความท้าทายที่รู้จักหรือไม่?
James T Snell

คิดออก ปัญหาของฉันคือการที่ /etc/rsyslog.d/50-default.conf แล้วมีคำสั่งเริ่มต้นด้วย ; auth; authpriv.none .. บรรทัดนั้นดูเหมือนจะมีความสำคัญกว่า ดังนั้นโดยการเพิ่มบรรทัดสุดท้ายที่คุณได้รับก็ไม่มีผลใด ๆ แต่จะต้องแก้ไขสิ่งที่คล้ายกันที่มีอยู่ก่อนหน้านี้แทน มีประโยชน์มาก ขอบคุณ!
James T Snell

1

ในอูบุนตูฉันต้องแสดงความคิดเห็นเกี่ยวกับสิทธิพิเศษการปล่อยเพื่อให้ rsyslog อ่านไฟล์บันทึกนอก / var / logs

#/etc/rsyslog.conf
$ModLoad imfile
$InputFileName /data/mysql/error.log
$InputFileTag mysql-error
$InputFileStateFile stat-mysql-error
$InputFileSeverity error
$InputFileFacility local3
$InputRunFileMonitor
local3.* @@hostname:<portnumber>

# Set the default permissions for all log files.
#
#$FileOwner syslog
#$FileGroup adm
#$FileCreateMode 0640
#$DirCreateMode 0755
#$Umask 0022
#$PrivDropToUser syslog
#$PrivDropToGroup syslog
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.