rsyslogd は Debian で UDP:514 を有効にした後、リモートサーバーからのみログを記録します。

rsyslogd は Debian で UDP:514 を有効にした後、リモートサーバーからのみログを記録します。

私はDebian 7コンテナ(OpenVZの下)のrsyslogd(5.8.11)もリモートホストからログを受け取ることを望みました。その点では効果があります。これ以上機能しないのは、localhostのログメッセージです。たとえば、次のように入力した場合:

$ logger -t shell "Test log message from the command line"

/var/log/messagesまたは何も表示されません/var/log/syslog。私がしたことは、次の設定ファイルを追加することだけでした/etc/rsyslog.d

# cat /etc/rsyslog.d/udp.conf
# Enable UDP listening
# http://www.rsyslog.com/tag/tcp/
$ModLoad imudp

# log every host in its own directory
$template RemoteHost,"/var/log/hosts/%HOSTNAME%/%$YEAR%-%$MONTH%-%$DAY%.log"

# Remote Logging
$RuleSet remote
*.* ?RemoteHost

### Listeners

# Bind ruleset to udp listener and activate
$InputUDPServerBindRuleset remote
$UDPServerRun 514

/etc/rsyslogd.conf何も変更する必要がないと仮定し、在庫を残しました。ここにいる:

# purge /etc/rsyslog.conf    # 'purge' is 'cat with comments removed'
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog   # provides kernel logging support
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$WorkDirectory /var/spool/rsyslog
$IncludeConfig /etc/rsyslog.d/*.conf
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
daemon.*                        -/var/log/daemon.log
kern.*                          -/var/log/kern.log
lpr.*                           -/var/log/lpr.log
mail.*                          -/var/log/mail.log
user.*                          -/var/log/user.log
mail.info                       -/var/log/mail.info
mail.warn                       -/var/log/mail.warn
mail.err                        /var/log/mail.err
news.crit                       /var/log/news/news.crit
news.err                        /var/log/news/news.err
news.notice                     -/var/log/news/news.notice
*.=debug;\
        auth,authpriv.none;\
        news.none;mail.none     -/var/log/debug
*.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        cron,daemon.none;\
        mail,news.none          -/var/log/messages
*.emerg                         :omusrmsg:*
daemon.*;mail.*;\
        news.err;\
        *.=debug;*.=info;\
        *.=notice;*.=warn       |/dev/xconsole

この設定を使用すると、リモートホストのログ行も表示されます/var/log/messages/var/log/syslogこれは私が望むものではありません)。ローカルログ行が表示されなくなりました。

どのように知っている人ですか?次へ追加rsyslogdの元の機能を維持しながらリモートログを記録しますか?

ベストアンサー1

終了$RuleSet remoteしないため、後続のすべてのルールはremoteルールセットに関連付けられます。

コンテンツが/etc/rsyslog.d/udp.confマスター設定に含まれると、ルールセットはマスターファイルで指定されたデフォルトルールも無視されます$IncludeConfig /etc/rsyslog.d/*.confremote/etc/rsyslog.conf

remoteルールセットは独自のルールをすべて宣言し、リモートログメッセージにのみバインドするため、効果的な結果はローカルログメッセージのルールリストが空のリストになることです。これが、リモートログメッセージのみがログファイルに書き込まれる理由です。

次の質問は、どのようにrsyslogルールセットを終了しますか?結局のところ、このバージョンのrsyslog構成構文には$EndRuleSetディレクティブと{...ブロックはありません。}

答えはあなたが指定するものです。その他 $RuleSet指示する。

あなたの場合は、/etc/rsyslog.d/udp.conf次のリモートロギングルールを指定する必要があります。

[...]
# Remote Logging
$RuleSet remote
*.* ?RemoteHost

# End of remote logging rules
$RuleSet RSYSLOG_DefaultRuleset

### Listeners
[...]

これの例は以下にあります。Fedora 26用システム管理者ガイド。

おすすめ記事