web-dev-qa-db-ja.com

短いホスト名を使用するrsyslog

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: '-',

なぜそれらは違うのでしょうか?

4
Erik Mathis

Rsyslogのテンプレートに関するドキュメント「 Templates 」をご覧ください。

発生している違いは、RSYSLOG_SyslogProtocol23Format形式とRSYSLOG_DebugFormat形式の選択によって直接決まります。

RSYSLOG_DebugFormatテンプレートの実際の定義が何であるかは私にはわかりませんが、 このスレッドによると 公式な方法でどこにも定義されていないようです。

ss of thread

「デバッグ」テンプレートには明らかにホスト名のFQDNバージョンが含まれていますが、「プロトコル123フォーマット」には含まれていないと言えば十分です。

1
slm