Ngăn rsyslog ghi nhật ký máy chủ từ xa vào local / var / log / syslog


8

Tôi sử dụng rsyslog để lưu nhật ký từ máy chủ từ xa đến máy chủ theo cách này:

Người phục vụ:

# Logfile for each host
$template DynaFile,"/var/log/rsyslog/%HOSTNAME%.log"
*.* -?DynaFile

Khách hàng:

*.* @servername

Điều này tạo ra các tệp nhật ký cho mọi máy chủ khách trong các máy chủ /var/log/rsyslog/nhưng nó cũng ghi lại mọi thông báo tới các máy chủ /var/log/syslog. Vì vậy, nó được thực sự nở. Làm thế nào tôi có thể ngăn chặn nó để /var/log/syslogchỉ chứa các tin nhắn từ chính máy chủ?


1
Bạn sẽ muốn xem xét các bộ lọc dựa trên thuộc tính vì HOSTNAME là một trong các trường nhật ký hệ thống. Về cơ bản, bạn sẽ muốn thay đổi nó để nó chỉ chọn nhật ký của riêng mình cho/var/log/syslog
Bratchley 6/2/2015

Câu trả lời:


2

Đây là những gì làm việc cho tôi:

## For accepting syslog info from remote hosts
$template TempAuth, "/var/log/infosys/%HOSTNAME%/%PROGRAMNAME%.log"
$template TempMsg,  "/var/log/infosys/%HOSTNAME%/%PROGRAMNAME%.log"

if ($fromhost-ip != "127.0.0.1" ) then ?TempAuth
& ~
if ($fromhost-ip != "127.0.0.1" ) then  ?TempMsg
& ~

Tại sao có sự trùng lặp giữa TempAuthTempMsg?
vdboor

0

Tôi đã làm việc này rất nhiều và tôi nghĩ rằng tôi đã tìm thấy một giải pháp. Tôi khuyến khích những người khác thử điều này và tìm kiếm những hậu quả bất lợi tiềm tàng. Tôi đề nghị rằng điều này được thực hiện trên phòng thí nghiệm / thử nghiệm và máy không quan trọng trước tiên.

$template PerHostLog,"/var/log/net-hosts/%fromhost-ip%/%fromhost-ip%.log"
$template RemoteHostFileFormat,"%TIMESTAMP% %fromhost-ip% %syslogfacility-text% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::space-cc,drop-last-lf%\n”
:inputname, isequal, "imudp" ?PerHostLog;RemoteHostFileFormat
:fromhost-ip , !isequal , "127.0.0.1" stop

4 dòng trên nằm trong phần lớn nhất của tệp /etc/rsyslog.conf của tôi

Tôi hiện đang xem 2 tệp nhật ký:
/var/log/net-hosts/10.1.1.1
và / var / log / syslog

khi tôi xem cả hai, tôi thấy các bản ghi được điền vào tệp máy chủ từ xa, nhưng không phải trong syslog . Tôi đã khởi động lại apache và thấy các mục nhật ký trong syslog cho nhiệm vụ này.


Cảm ơn đã thử nghiệm. Nhưng nó không làm việc cho tôi. Nó vẫn ghi mọi thứ vào máy chủ / var / log / syslog
Michael

0

Bạn phải đảm bảo rằng các quy tắc mới của bạn được đánh giá trước quy tắc đăng nhập vào / var / log / syslog.
Ví dụ: trên Ubuntu Trusty (rsyslog 7.4.4) /etc/rsyslog.conf chứa
$IncludeConfig /etc/rsyslog.d/*.conf
các quy tắc mặc định được tải từ /etc/rsyslog.d/50-default.conf, một quy tắc cho / var / log / syslog được bao gồm.

Trong trường hợp này, bạn có thể thêm một tệp mới sẽ được tải trước đó, chẳng hạn như 00-remote.conf. Để hoàn thiện, đây là nội dung của nó cho một hệ thống tôi đang quản lý:

$template RemoteStore, "/var/log/remote/%HOSTNAME%/%timegenerated:1:10:date-rfc3339%"
:source,isequal,"NAS",-?RemoteStore
& ~
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.