web-dev-qa-db-ja.com

rsyslogがリモートホストメッセージをローカルの/ var / log / syslogに記録しないようにする

Rsyslogを使用して、リモートホストからサーバーにログを次のように保存します。

サーバー:

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

クライアント:

*.* @servername

これにより、サーバー内のすべてのクライアントホストのログファイルが作成されます/var/log/rsyslog/しかし、すべてのメッセージをサーバーにも記録します/var/log/syslog。だからそれは本当に肥大化します。 /var/log/syslogにはサーバー自体からのメッセージのみが含まれますか?

8
Michael

ここに私のために働くものがあります:

## 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
& ~
2
Guest

私はこれに多く取り組んできましたが、解決策を見つけたと思います。私は他の人にこれを試して、潜在的に不利な結果を探すことを勧めます。最初に、これをラボ/テストおよび重要でないマシンに実装することをお勧めします。

$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行は、/ etc/rsyslog.confファイルの一番上のセクションにあります

私は現在2つのログファイルを見ています。
/var/log/net-hosts/10.1.1.1
および/ var/log/syslog

両方を見ると、リモートのホストファイルにログが入力されていますが、syslogにはありません。 Apacheを再起動すると、このタスクのログエントリがsyslogに表示されました。

0
parsecpython

新しいルールが評価されることを確認する必要がありますbefore/var/log/syslogに記録するルール。
たとえば、Ubuntu Trusty(rsyslog 7.4.4)の場合、/ etc/rsyslog.confには
$IncludeConfig /etc/rsyslog.d/*.conf
デフォルトのルールは/etc/rsyslog.d/50-default.confから読み込まれ、/ var/log/syslogのルールが含まれています。

この場合、00-remote.confなど、その前にロードする新しいファイルを追加できます。完全を期すために、私が管理しているシステムの内容を次に示します。

$template RemoteStore, "/var/log/remote/%HOSTNAME%/%timegenerated:1:10:date-rfc3339%"
:source,isequal,"NAS",-?RemoteStore
& ~
0
Joril