#検証を行った環境は、転送元・転送先ともにOSがCentOS6.5でrsyslogはver7.4.8です
ログの転送先(ログサーバ側)で、転送されてきたCRON系のログを確認していたところ、本来
Jan 13 16:01:01 host run-parts(/etc/cron.hourly)[1197]: starting 0anacron
と記録されているものが、
Jan 13 16:01:01 host run-parts(/etc/cron.hourly)[1197 starting 0anacron
と、32文字以降の2文字(”]”と”:”) が省略されていることに気がつきました。
調べてみるとまんまずばりの情報が下記にありました。
http://www.rsyslog.com/sende-messages-with-tags-larger-than-32-characters/
RFC的には、ログのTAG部分は32文字を最大とするのが正解で、rsyslogでは転送用templateで32文字の制限が行われています。
なので、ログの転送元で新しく”32文字の制限を行わない”templateを定義すれば、TAG部分が欠けてしまう現象は回避できます。
具体的には、下記のようにします。
# 以下は改行されていますが、1行で記述する必要があります
template(name="ForwardFullTag" type="string" string="<%PRI%>%TIMESTAMP:::date-rfc3339%
%HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%")
# 以下は無理に一行にまとめる必要はありません
# (転送先のTargetは環境に合わせて変更してください)
*.* action(type="omfwd"
Target="192.168.233.14"
Port="514"
Protocol="tcp"
Template="ForwardFullTag"
)
0 件のコメント:
コメントを投稿