ฉันจะส่งต่อข้อความจากแฟ้มบันทึกที่เฉพาะเจาะจงเช่น/www/myapp/log/test.log
กับrsyslog
ลูกค้าระยะไกลrsyslog
เซิร์ฟเวอร์? /var/log
แฟ้มบันทึกนี้อยู่นอกไดเรกทอรี
ฉันจะส่งต่อข้อความจากแฟ้มบันทึกที่เฉพาะเจาะจงเช่น/www/myapp/log/test.log
กับrsyslog
ลูกค้าระยะไกลrsyslog
เซิร์ฟเวอร์? /var/log
แฟ้มบันทึกนี้อยู่นอกไดเรกทอรี
คำตอบ:
เพียงตั้งค่ากฎ 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 ต่อไปนี้สำหรับการกรองขั้นสูงเพิ่มเติม:
ในอูบุนตูฉันต้องแสดงความคิดเห็นเกี่ยวกับสิทธิพิเศษการปล่อยเพื่อให้ 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