Làm cách nào để chuyển tiếp tệp nhật ký cụ thể bên ngoài / var / log với rsyslog đến máy chủ từ xa?


24

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.logvới rsyslogmáy khách đến rsyslogmá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:


42

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:

  1. Người thay thế tài sản
  2. Điều kiện lọc

Điều này rất hữu ích, cảm ơn bạn Bryan. Thách thức duy nhất của tôi ở đây là dòng để giữ các bản ghi bổ sung ra khỏi phía máy khách / var / log / syslog không hoạt động với tôi trên Ubuntu 12.04. Có lẽ là một PEBKAC, nhưng tôi tự hỏi liệu đây có phải là một thử thách đã biết không?
James T Snell

Tìm ra. Vấn đề của tôi là /etc/rsyslog.d/50-default.conf đã có một tuyên bố bắt đầu bằng . ; auth; authpriv.none .. Dòng đó dường như được ưu tiên. Vì vậy, bằng cách thêm dòng cuối cùng bạn đã đưa ra, nó không có hiệu lực. Thay vào đó, một cái tương tự tồn tại trước phải được sửa đổi. Rất hữu ích. Cảm ơn!
James T Snell

1

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.