CentOS6.5とrsyslogd
を使用しています:
Name : rsyslog
Arch : x86_64
Version : 5.8.10
Release : 8.el6
Rsyslog.dのconfファイルには次のものがあります。
$PreserveFQDN on
そして
$ActionFileDefaultTemplate RSYSLOG_SyslogProtocol23Format
私が何をしても、ntpd
のようなアプリは、fdqnではなく短いホスト名でログに記録します。 'logger -t test this'でさえ、まだ短い名前を示しています。
[root@web-01 ~]# hostname -s
web-01
[root@web-01 ~]# hostname -f
web-01.productA.internal
Rsyslogでホスト名を明示的に設定しても機能しないようです。
RSYSLOG_DebugFormat
テンプレートの使用
ロガー
[root@web-01 ~]# logger -t test 456
[root@web-01 ~]# tail /var/log/messages
Debug line with all properties:
FROMHOST: 'web-01', fromhost-ip: '127.0.0.1', HOSTNAME: 'web-01',
PRI: 13, syslogtag 'test:', programname: 'test', APP-NAME: 'test',
PROCID: '', MSGID: '-', TIMESTAMP: 'Feb 20 21:50:12',
STRUCTURED-DATA: '-', msg: ' 456' escaped msg: ' 456'
inputname: imuxsock rawmsg: '<13>Feb 20 21:50:12 test: 456'
rsyslogを再起動
Debug line with all properties:
FROMHOST: 'web-01', fromhost-ip: '127.0.0.1', HOSTNAME:
'web-01.productA.internal', PRI: 43,
syslogtag 'rsyslogd-2026:', programname: 'rsyslogd-2026', APP-NAME:
'rsyslogd-2026', PROCID: '', MSGID: '-',
TIMESTAMP: 'Feb 20 21:53:19', STRUCTURED-DATA: '-',
なぜそれらは違うのでしょうか?
Rsyslogのテンプレートに関するドキュメント「 Templates 」をご覧ください。
発生している違いは、RSYSLOG_SyslogProtocol23Format
形式とRSYSLOG_DebugFormat
形式の選択によって直接決まります。
RSYSLOG_DebugFormat
テンプレートの実際の定義が何であるかは私にはわかりませんが、 このスレッドによると 公式な方法でどこにも定義されていないようです。
「デバッグ」テンプレートには明らかにホスト名のFQDNバージョンが含まれていますが、「プロトコル123フォーマット」には含まれていないと言えば十分です。