rsyslog条件付き転送はリモートログに使用され、ログファイルの日付と時刻の形式をキャンセルします。

rsyslog条件付き転送はリモートログに使用され、ログファイルの日付と時刻の形式をキャンセルします。

rsyslog.confを介した条件付きログ配布に関する質問もあります。構成は次のとおりです。

# cat  /etc/rsyslog.conf
##########################################################################################
# rsyslog configuration file For TCC & TPC
##########################################################################################
#### MODULES ####
$ModLoad imuxsock        # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal       # provides access to the systemd journal
$ModLoad imudp           # Provides UDP syslog reception
$UDPServerRun 514        # Provides UDP syslog reception
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
$template tcc-logs, "/data/SYSTEMS/%HOSTNAME%/messages.log"
$template noi-logs, "/data/noiter/%HOSTNAME%/messages.log"

#####################################################################
# Custom conditional Forwarding of messages to the syslog Directory #
###################################################################
if $fromhost startswith "sj-" then -?tcc-logs
& stop

if $fromhost startswith "noi-" then -?noi-logs
& stop


##################################################
#### GLOBAL DIRECTIVES                        ####
#################################################
$WorkDirectory /var/lib/rsyslog                                 # Where to place auxiliary files
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat        # Use default timestamp format
$IncludeConfig /etc/rsyslog.d/*.conf                            # Include all config files in /etc/rsyslog.d/
$OmitLocalLogging on                                            # local messages are retrieved through imjournal now.
$IMJournalStateFile imjournal.state                             # File to store the position in the journal

#### RULES ############################################
# Log anything (except mail) of level info or higher.#
# Don't log private authentication messages!        #
####################################################
*.info;mail.none;authpriv.none;cron.none    ?tcc-logs
authpriv.*       ?tcc-logs                                      # The authpriv file has restricted access.

上記の構成では、次の内容を使用して条件付きログを渡すようにrsyslogに要求します。

  1. スケジュールされたホストがrsyslog""で始まる場合は、sj"ディレクトリ"に移動する必要があり、/data/SYSTEMS/ホスト名で別のディレクトリを作成し、そこにディレクトリを作成するため、フルmessages.logファイルパスは/data/SYSTEMS/sj-hosts_1/messages.log

  2. 同様に、スケジュールされたホストが次からrsyslog始まる場合は、「ディレクトリ」noi-に移動する必要があり、/data/noiter/ホスト名を使用して別のディレクトリを作成し、そこにディレクトリを作成するため、messages.logフルファイルパスは/data/noiter/noi-hosts_1/messages.log

上記の2つの点は結果を満たしていますが、問題は上記messages.logの場合、日付と時刻が基本形式とは異なる形式で生成されることです。例は次のとおりです。

2019-01-25T23:20:01-08:00 noi-hosts_1 CROND[8541]: (root) CMD (/usr/lib64/sa/sa1 1 1)

2019-01-25T23:20:01-08:00 noi-hosts_1 CROND[8542]: (root) CMD (LANG=C LC_ALL=C 

デフォルトと必須の形式は次のとおりです。


Jan 25 20:23:58 noi-hosts_1 CROND[8541]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jan 25 20:23:58 noi-hosts_1 CROND[8542]: (root) CMD (LANG=C LC_ALL=C 

メモ:

条件付き転送を使用しない場合は、通常、上記のように正しい/基本転送が得られます。

答え1

条件付きルールはif $fromhost ...設定の先頭に近く、現在rsyslogであるデフォルトのロギングスタイルを使用しますRSYSLOG_FileFormat。後でデフォルト値を希望の値に変更できますが、RSYSLOG_TraditionalFileFormatこれは次のルールにのみ適用されます。

したがって、条件付きルールをコメントブロックの後ろのファイルからさらに移動します。#### RULES ...

関連情報