Ubuntu 10.04 LTSでストックrsyslogd(4.2.0-2ubuntu8.1)を使用して、シンプルな集中型syslogサーバーを実装しようとしています。この時点で、すべてのクライアントノードが中央サーバーにログを送信していますが、クライアントはFQDNではなく短いホスト名を含むログメッセージを送信しています。
Ubuntu rsyslogdマンページごと:
リモートホストがホストと同じドメインにあり、rsyslogdが実行されている場合、fqdn全体ではなく単純なホスト名のみがログに記録されます。
環境間で短い名前を再利用しているため、これは問題です。たとえば、core1.example.comとcore1.stg.example.comはどちらもメッセージをcore1として記録します。
クライアントとサーバーの両方に同じ/ etc / default / rsyslogがあります。
RSYSLOGD_OPTIONS="-c4"
および同じ/etc/rsyslogd.confファイル:
$ModLoad imuxsock
$ModLoad imklog
$PreserveFQDN on
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$IncludeConfig /etc/rsyslog.d/*.conf
クライアントにはこの/etc/rsyslog.d/remote.confファイルがあり、リモートサーバーに送信するように指示しています。
*.* @@syslog.example.com
サーバーはこの/etc/rsyslog.d/server.confファイルを使用します。
$ModLoad imtcp
$InputTCPServerRun 514
$DirGroup root
$DirCreateMode 0755
$FileGroup root
$template PerHostAuth,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/auth.log"
$template PerHostCron,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/cron.log"
$template PerHostSyslog,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/syslog"
$template PerHostDaemon,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/daemon.log"
$template PerHostKern,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/kern.log"
$template PerHostLpr,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/lpr.log"
$template PerHostUser,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/user.log"
$template PerHostMail,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/mail.log"
$template PerHostMailInfo,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/mail.info"
$template PerHostMailWarn,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/mail.warn"
$template PerHostMailErr,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/mail.err"
$template PerHostNewsCrit,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/news.crit"
$template PerHostNewsErr,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/news.err"
$template PerHostNewsNotice,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/news.notice"
$template PerHostDebug,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/debug"
$template PerHostMessages,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/messages"
auth,authpriv.* ?PerHostAuth
*.*;auth,authpriv.none -?PerHostSyslog
cron.* ?PerHostCron
daemon.* -?PerHostDaemon
kern.* -?PerHostKern
lpr.* -?PerHostLpr
mail.* -?PerHostMail
user.* -?PerHostUser
mail.info -?PerHostMailInfo
mail.warn ?PerHostMailWarn
mail.err ?PerHostMailErr
news.crit ?PerHostNewsCrit
news.err ?PerHostNewsErr
news.notice -?PerHostNewsNotice
*.=debug;\
auth,authpriv.none;\
news.none;mail.none -?PerHostDebug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -?PerHostMessages
クライアントとサーバーの両方が「$ PreserveFQDN on」を指定する構成を共有しているため、syslogメッセージにFQDNホスト名が表示されるはずですが、設定は効果がなかったようです。rsyslogで見つけた他のほとんどの設定は、ドメインを保持するのではなく、FQDNからドメインを削除することを目的としています。問題の根本は、クライアントが最初にFQDNを送信しないことですが、その動作を強制する方法がわかりません。
誰かが私が行方不明になっている可能性についてコメントできますか?ログメッセージにFQDNを含める必要があるのは私だけではないと思います。