Làm cách nào tôi có thể chuyển tiếp tin nhắn từ một tệp nhật ký cụ thể như /www/myapp/log/test.log
với rsyslog
máy khách đến rsyslog
máy chủ từ xa ? Tệp nhật ký này nằm ngoài thư mục /var/log
.
Làm cách nào tôi có thể chuyển tiếp tin nhắn từ một tệp nhật ký cụ thể như /www/myapp/log/test.log
với rsyslog
máy khách đến rsyslog
máy chủ từ xa ? Tệp nhật ký này nằm ngoài thư mục /var/log
.
Câu trả lời:
Chỉ cần thiết lập quy tắc imfile trong /etc/rsyslog.conf của bạn
#/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>
Điều này xem một tập tin và lưu vào cơ sở local3 trong syslog. Sau đó, bạn có thể gửi tất cả dữ liệu từ cơ sở local3 đến máy chủ từ xa của bạn. Bạn cũng có thể muốn thêm phần sau vào rsyslog conf của mình (thường là /etc/rsyslog.d/50-default.conf trên Ubuntu) để không lưu cơ sở local3 vào / 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
Ngoài ra, tôi sẽ khuyến khích một số đọc từ các tài liệu rsyslog sau để lọc nâng cao hơn:
Trên Ubuntu, tôi cũng phải bình luận các dòng đặc quyền thả để có được rsyslog thực sự đọc tệp nhật ký bên ngoài / var / log.
#/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