Debian 12 bookworm
Sponsored Link

Journald : 基本操作2023/07/17

 
ログ管理サービス Journald の基本操作です。
[1] システム デフォルトで Journald が稼働し、システムの多くのログは、まず最初に Journald によって保管されます。
よって、[Journald (systemd-journald.service systemd-journald.socket systemd-journald-dev-log.socket)] が停止した場合は、システムの主要なログの記録も停止します。
root@dlp:~#
systemctl status systemd-journald.service

*  systemd-journald.service - Journal Service
     Loaded: loaded (/lib/systemd/system/systemd-journald.service; static)
     Active: active (running) since Sun 2023-07-16 21:33:17 CDT; 1min 9s ago
TriggeredBy: *  systemd-journald-dev-log.socket
             *  systemd-journald.socket
             *  systemd-journald-audit.socket
       Docs: man:systemd-journald.service(8)
             man:journald.conf(5)
   Main PID: 247 (systemd-journal)
     Status: "Processing requests..."
      Tasks: 1 (limit: 4639)
     Memory: 12.5M
        CPU: 64ms
     CGroup: /system.slice/systemd-journald.service
             +-- 247 /lib/systemd/systemd-journald
.....
.....
[2] Journald の設定は [/etc/systemd/journald.conf] で変更可能です。
デフォルトでは全てコメントとなっていますが、記載の値がデフォルト値となっています。
root@dlp:~#
cat /etc/systemd/journald.conf

[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=10000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K
#ReadKMsg=yes
#Audit=no
[3] Journald のログの保管場所は [Storage=***] で設定されています。
ログの保管場所については、[ForwardToSyslog=yes] の設定により、ログは syslog に転送されるため、Rsyslog 等のシスログサービスがインストールされ、稼働している場合には、従来の [/var/log/syslog] ファイル等々にも保管されます。
# [Storage=***] の設定値
#
# volatile   : メモリーに保管 : [/run/log/journal] 配下
# persistent : ディスクに保管 : [/var/log/journal] 配下
#              システム起動時等、ディスク書き込み不可な場合はメモリー
# auto       : [/var/log/journal] が存在する場合はディスク
#              存在しない場合はメモリー
# none       : ログを保管しない
#              ただし、コンソールや Syslog サービス等、他の設定済み保管ターゲットにはログは転送される
#
# * メモリー保管は永続的ではない (システム再起動時に過去ログは消去)

# Ubuntu のデフォルトは [auto] 且つ 
# デフォルトでは [/var/log/journal] が存在するため [/var/log/journal] に保管

root@dlp:~#
grep Storage /etc/systemd/journald.conf

#Storage=auto
root@dlp:~#
ll -d /var/log/journal

drwxr-sr-x+ 3 root systemd-journal 4096 Jun 11 19:31 /var/log/journal

root@dlp:~#
ll -Rh /var/log/journal

/var/log/journal:
total 4.0K
drwxr-sr-x+ 2 root systemd-journal 4.0K Jul 16 21:33 43401112bd4a4907802ec262beae4c1e

/var/log/journal/43401112bd4a4907802ec262beae4c1e:
total 24M
-rw-r-----+ 1 root systemd-journal 7.8M Jul 16 21:31 system@d67bec8e5dce448da411f7cecbff0bc4-0000000000000001-0005fde3d7d21d0b.journal
-rw-r-----+ 1 root systemd-journal 4.4M Jul 16 21:33 system@d67bec8e5dce448da411f7cecbff0bc4-0000000000002870-000600a59826d27a.journal
-rw-r-----+ 1 root systemd-journal 8.0M Jul 16 21:41 system.journal
-rw-r-----+ 1 root systemd-journal 3.6M Jul 16 21:31 user-1000@c9a3774ace2e4c27a815b13353f78599-0000000000000869-0005fde58282409c.journal
[4] Journald のログは [journalctl] コマンドで表示可能です。
# 引数なしで全ログを表示 : 結果は [less] コマンドに渡される
# [less] に渡さない場合は [--no-pager] オプション付加

root@dlp:~#
journalctl

Jun 11 19:31:43 debian kernel: Linux version 6.1.0-9-amd64 (debian-kernel@lists>
Jun 11 19:31:43 debian kernel: Command line: BOOT_IMAGE=/vmlinuz-6.1.0-9-amd64 >
Jun 11 19:31:43 debian kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 fl>
Jun 11 19:31:43 debian kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE re>
Jun 11 19:31:43 debian kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX re>
Jun 11 19:31:43 debian kernel: x86/fpu: Supporting XSAVE feature 0x020: 'AVX-51>
Jun 11 19:31:43 debian kernel: x86/fpu: Supporting XSAVE feature 0x040: 'AVX-51>
Jun 11 19:31:43 debian kernel: x86/fpu: Supporting XSAVE feature 0x080: 'AVX-51>
Jun 11 19:31:43 debian kernel: x86/fpu: Supporting XSAVE feature 0x200: 'Protec>
Jun 11 19:31:43 debian kernel: x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]>
.....
.....

# [-u UNIT] : 特定の UNIT のログを表示

root@dlp:~#
journalctl -u cron.service

Jun 11 19:31:45 debian systemd[1]: Started cron.service - Regular background pr>
Jun 11 19:31:45 debian cron[430]: (CRON) INFO (pidfile fd = 3)
Jun 11 19:31:45 debian cron[430]: (CRON) INFO (Running @reboot jobs)
Jun 11 19:31:56 debian systemd[1]: Stopping cron.service - Regular background p>
Jun 11 19:31:56 debian systemd[1]: cron.service: Deactivated successfully.
Jun 11 19:31:56 debian systemd[1]: Stopped cron.service - Regular background pr>
-- Boot 779ed26ef6764403be0149fac47542de --
Jun 11 21:30:43 debian systemd[1]: Started cron.service - Regular background pr>
Jun 11 21:30:43 debian cron[432]: (CRON) INFO (pidfile fd = 3)
.....
.....

root@dlp:~#
journalctl -u systemd-tmpfiles-clean.timer

Jun 11 19:31:45 debian systemd[1]: Started systemd-tmpfiles-clean.timer - Daily>
Jun 11 19:31:56 debian systemd[1]: systemd-tmpfiles-clean.timer: Deactivated su>
Jun 11 19:31:56 debian systemd[1]: Stopped systemd-tmpfiles-clean.timer - Daily>
-- Boot 779ed26ef6764403be0149fac47542de --
Jun 11 21:30:43 debian systemd[1]: Started systemd-tmpfiles-clean.timer - Daily>
Jun 11 21:46:58 debian systemd[1]: systemd-tmpfiles-clean.timer: Deactivated su>
.....
.....

# [-k] : 起動時のカーネルメッセージを表示

root@dlp:~#
journalctl -k

Jul 16 21:33:17 dlp.srv.world kernel: Linux version 6.1.0-9-amd64 (debian-kerne>
Jul 16 21:33:17 dlp.srv.world kernel: Command line: BOOT_IMAGE=/vmlinuz-6.1.0-9>
Jul 16 21:33:17 dlp.srv.world kernel: x86/fpu: Supporting XSAVE feature 0x001: >
Jul 16 21:33:17 dlp.srv.world kernel: x86/fpu: Supporting XSAVE feature 0x002: >
Jul 16 21:33:17 dlp.srv.world kernel: x86/fpu: Supporting XSAVE feature 0x004: >
Jul 16 21:33:17 dlp.srv.world kernel: x86/fpu: Supporting XSAVE feature 0x020: >
Jul 16 21:33:17 dlp.srv.world kernel: x86/fpu: Supporting XSAVE feature 0x040: >
.....
.....

# [-p Priority] : 特定のプライオリティのログを表示

root@dlp:~#
journalctl -p err

Jul 02 19:16:21 debian kernel: watchdog: watchdog0: watchdog did not stop!
-- Boot 9f58482cc1cd4a4fa315738ad62f9c70 --
Jul 16 21:33:07 dlp.srv.world dhclient[463]: receive_packet failed on enp1s0: N>
Jul 16 21:33:07 dlp.srv.world kernel: watchdog: watchdog0: watchdog did not sto>
.....
.....

# [-g PATTERN] : [MESSAGE] フィールドから特定のワード [PATTERN] を含むログを表示

root@dlp:~#
journalctl -g "apparmor"

Jun 11 19:31:43 debian kernel: AppArmor: AppArmor initialized
Jun 11 19:31:43 debian kernel: AppArmor: AppArmor Filesystem Enabled
Jun 11 19:31:43 debian kernel: AppArmor: AppArmor sha1 policy hashing enabled
Jun 11 19:31:43 debian kernel: evm: security.apparmor
Jun 11 19:31:43 debian systemd[1]: systemd 252.6-1 running in system mode (+PAM>
Jun 11 19:31:44 debian systemd[1]: Starting apparmor.service - Load AppArmor pr>
Jun 11 19:31:44 debian apparmor.systemd[405]: Restarting AppArmor
Jun 11 19:31:44 debian apparmor.systemd[405]: Reloading AppArmor profiles
Jun 11 19:31:44 debian audit[421]: AVC apparmor="STATUS" operation="profile_loa>
Jun 11 19:31:44 debian kernel: audit: type=1400 audit(1686529904.888:2): apparm>
.....
.....

# [-S DATE] : 特定の DATE 以降のログを表示
# [-U DATE] : 特定の DATE までのログを表示

root@dlp:~#
journalctl -S "2023-07-16 00:00:00" -U "2023-07-17 23:59:59"

Jul 16 21:31:22 debian kernel: Linux version 6.1.0-9-amd64 (debian-kernel@lists>
Jul 16 21:31:22 debian kernel: Command line: BOOT_IMAGE=/vmlinuz-6.1.0-9-amd64 >
Jul 16 21:31:22 debian kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 fl>
Jul 16 21:31:22 debian kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE re>
Jul 16 21:31:22 debian kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX re>
Jul 16 21:31:22 debian kernel: x86/fpu: Supporting XSAVE feature 0x020: 'AVX-51>
Jul 16 21:31:22 debian kernel: x86/fpu: Supporting XSAVE feature 0x040: 'AVX-51>
.....
.....

# その他オプションを表示

root@dlp:~#
journalctl --help

journalctl [OPTIONS...] [MATCHES...]

Query the journal.

Options:
     --system                Show the system journal
     --user                  Show the user journal for the current user
  -M --machine=CONTAINER     Operate on local container
  -S --since=DATE            Show entries not older than the specified date
.....
.....
関連コンテンツ