著者が使用しているメインのLinuxディストリビューションはRockyLinux
シングルボードコンピューター(RaspberryPiやOrangePIなど)は、「Raspberry Pi OS」「Armbian」を使用している。
Armbianの最新OSを使用しだしたら、rsyslogの時刻フォーマットが変更されていた。
まあ、検証や調査等で他のディストリビューションを使用したりしていた時に、チラホラ見かけていたのだが。
(A) Armbian 24.2.1 bookworm で使用されているrsyslogの時刻フォーマット
2024-02-13T03:22:26.022354+00:00 orangepi5 kernel: [ 4.767558] Linux version 5.10.160-legacy-rk35xx (armbian@next) (aarch64-linux-gnu-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #1 SMP Fri Feb 2 07:51:33 UTC 2024
2024-02-13T03:22:26.022358+00:00 orangepi5 kernel: [ 4.778703] Machine model: Orange Pi 5
2024-02-13T03:22:26.022360+00:00 orangepi5 kernel: [ 4.778870] efi: UEFI not found.
(B) よく見る時刻フォーマット
May 12 06:00:48 rocky8 kernel: Linux version 4.18.0-513.18.1.el8_9.x86_64 (mockbuild@iad1-prod-build001.bld.equ.rockylinux.org) (gcc version 8.5.0 20210514 (Red Hat 8.5.0-20) (GCC)) #1 SMP Wed Feb 21 21:34:36 UTC 2024
May 12 06:00:48 rocky8 kernel: Command line: BOOT_IMAGE=(hd0,gpt2)/vmlinuz-4.18.0-513.18.1.el8_9.x86_64 root=UUID=bad16281-a882-42c0-aec0-d7e2d5e712d6 ro crashkernel=auto resume=UUID=4912a5e2-2ddd-4121-8164-a44ebf092b2b
May 12 06:00:48 rocky8 kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
今回は(諸事情により)、時刻フォーマットを(A) から (B)に変更します
〇 rsyslogでロギングされる全てのファイルの時刻フォーマットを変更する場合
rsyslog.conf に、
$ActionFileDefaultTemplate RSYSLOG_SysklogdFileFormat
を追加してrsyslogを再起動する
〇 任意のログファイルのみ変更する
(例) /var/log/syslog に定義部分を変更
rsyslog.confにて、
*.*;auth,authpriv.none -/var/log/syslog
を
*.*;auth,authpriv.none -/var/log/syslog;RSYSLOG_SysklogdFileFormat
に変更(赤文字を追記)して、rsyslogを再起動する
【補足】
rsyslogでは、出力フォーマットをカスタマイズできる機能がある。
自分で定義しても良いが、rsyslog本体に予め定義されている形式を使用した。
「RSYSLOG_」で始まるテンプレート名である。
定義済みテンプレートの種類については、本家ドキュメントを参照して欲しい。
https://www.rsyslog.com/doc/configuration/templates.html
著者が参考にしたサイト
・ rsyslog のログフォーマットを変更する
https://tech-lab.sios.jp/archives/37409
【本番運用では】
後々の事を考えて、rsyslogで定義されているルールは変更せずに、ルールを追加する事になるだろう。
*.*;auth,authpriv.none -/var/log/syslog
*.*;auth,authpriv.none /var/log/syslog_kanshi;RSYSLOG_SysklogdFileFormat # この行を追加
logrotateの設定も忘れずに!
# /etc/logrotate.d/kanshi
/var/log/syslog_kanshi
{
missingok
sharedscripts
postrotate
/usr/bin/systemctl -s HUP kill rsyslog.service >/dev/null 2>&1 || true
endscript
}