rsyslogがリモートホストメッセージをローカル/ var / log / syslogに書き込むのを防ぐ

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サーバー自体のメッセージのみを含めないようにするには?

答え1

新しいルールが評価されたことを確認する必要があります。今後/var/log/syslog に書き込まれるログです。
たとえば、Ubuntu Trusty(rsyslog 7.4.4)では、/etc/rsyslog.confには、/var/log/syslogのルールを含む、からロードされたデフォルトの
$IncludeConfig /etc/rsyslog.d/*.conf
ルールが含まれています。/etc/rsyslog.d/50-default.conf

この場合、このファイルの前にロードする新しいファイルを追加できます00-remote.conf。たとえば、私が管理しているシステムの外観は次のとおりです。

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

答え2

これは私にとって効果的です。

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

答え3

私はこの問題に多くの努力をし、解決策を見つけたようです。私は他の人がこれを試して、潜在的な不利な結果を見つけることをお勧めします。まず、ラボ/テストと重要でないコンピュータにこれを実装することをお勧めします。

$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の

両方を見ると、ログはリモートホストファイルに入力されますが、システムログには入力されません。あります。 。 Apacheを再起動し、syslogでこの操作のログエントリを確認しました。

答え4

最新バージョンでは、次のコードで問題が解決します。

input(type="imudp" port="514" ruleset="remote")
ruleset(name="remote"){
    $template DynaFile,"/var/log/rsyslog/%HOSTNAME%.log"
    if ($fromhost-ip != "127.0.0.1") then -?DynaFile
}

関連情報