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
コメント