rsyslogで同一ドメイン内でログ転送設定を行なっている時にhostnameがFQDNにならなくて戸惑ったのでメモ。
どういうことかというと、
rsyslogサーバー(syslogを受け取るサーバー)が、
syslog.sample.com
クライアントサーバー(syslogを送るサーバー)が、
client.sample.com
で、rsyslogサーバーに転送されてきたログをクライアントサーバーのFQDNで
ディレクトリを作成して、ログの中のホスト名をFQDNにしたいと思い設定していました。
想定としては、rsyslogサーバーの
/var/log/client.sample.com/messages
というFQDNのディレクトリに
↓こんな感じのログを転送して出力したいのですが、
May 15 00:00:01 client.sample.com CROND[7698]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1) May 15 00:10:01 client.sample.com CROND[7699]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1) May 15 00:20:01 client.sample.com CROND[7700]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1)
実際は
/var/log/client/messages
というFQDNではなく、ホスト名のディレクトリが出来て
ログ出力は↓こんな感じになってしまいました。
May 15 00:00:01 client CROND[7698]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1) May 15 00:10:01 client CROND[7699]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1) May 15 00:20:01 client CROND[7700]: (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1)
そこで、↓こちらを参照したところ
http://www.rsyslog.com/doc/rsyslog_conf_global.html
$PreserveFQDN [on/off) - if set to off (legacy default to remain compatible to sysklogd), the domain part from a name that is within the same domain as the receiving system is stripped. If set to on, full names are always used.
どうもrsyslogサーバーとクライアントサーバーが同一ドメインだとFQDNでなくホスト名表示になるっぽい?
ということで、
クライアントサーバー(syslogを送るサーバー)の
/etc/rsyslog.conf
に以下を追記したところ無事FQDNになりました!
$PreserveFQDN on
rsyslogサーバー、クライアントサーバー共に環境は↓です。
OS | CentOS 6.2 64bit |
---|---|
rsyslog | rsyslog-4.6.2-12.el6.x86_64 |