rsyslog で syslogサーバとログの日付フォーマットを変更

rsyslog で syslogサーバ(UDP:514)を起動させて、ログの日付を yyyy-mm-dd へ
  • syslogサーバを起動させる
  • ログの日付フォーマットを変更
それぞれの記事はあるんだけど、syslogサーバのフォーマット変更に戸惑ったのでメモ
(環境は Centos7 ですが、他でも同じだと思う)

syslogサーバ(UDP514)を起動させる設定
# vi /etc/rsyslog.conf

$ModLoad imudp ←コメントを外す
$UDPServerRun 514 ←コメントを外す
$AllowedSender UDP, 127.0.0.1, IPアドレス, ホスト名 ←送信元を規制する場合追記

ファイル末尾に下記の2行を追加

$template ClinetMessage,"/var/log/rsyslog/%fromhost%/%$year%%$month%%$day%_messages.log"
*.*     -?ClinetMessage


rsyslogを再起動
# systemctl restart rsyslog
syslogサーバが稼働しているのを確認


日付が  Jun  3 11:00:00 なので、2020-06-03 11:00:00 形式へ変更
# vi /etc/rsyslog.d/template.conf を作成して、下記を一行で記述

$template yyyymmdd, "%timegenerated:::date-year%-%timegenerated:::date-month%-%timegenerated:::date-day% %timegenerated:::date-hour%:%timegenerated:::date-minute%:%timegenerated:::date-second% %HOSTNAME% %syslogtag% %msg%\n"

※上は yyyy-mm-dd なので yyyy/mm/dd がお好みな方は書き換えて下さい
※ yyyymmdd が任意のテンプレート名


# vi /etc/rsyslog.conf を開いて
先程、ファイル末尾に追加した

*.*     -?ClinetMessage
*.*     -?ClinetMessage;yyyymmdd

セミコロン以降を追加

rsyslogを再起動
# systemctl restart rsyslog



コメント