私は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/*.conf
。remote
/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用システム管理者ガイド。