繼上次介紹了系統日誌與相關的介紹後,接下來介紹該如何使用journalctl將日誌檔案永久的儲存下來。
系統的journal是有一個背景服務在開機的時候會自動啟動,換句話說,journal在重新開機之後之前的日誌檔案就會不見,若要保留之前的日誌則上述的這個預設設定上會有問題,因此若要把日誌檔案給保存下來的話,則需要修改 /etc/systemd/journald.conf
檔案,並找到有關於Storage之設定,相關尋找此設定的指令方式如下:
[rockylinux@workstation ~]$ cat /etc/systemd/journald.conf | grep auto
#Storage=auto
從上述的指令執行與輸出的訊息可以得知,預設是不會將任何的日誌檔案給儲存下來的,若要儲存的話,則需要將此行設定的註解拿掉,並進行相關設定值的設定:有關於儲存設定的方式如下:
systemd-journald
則會自動去建立這個目錄。joirnal所存取的日誌檔案為一個日誌資料庫,而這個日誌資料庫是一個二進制的檔案,即binart檔,可以使用file指令來驗證這件事情,相關的指令執行輸出的訊息如下:
[rockylinux@workstation ~]$ ls -al /run/log/journal/
total 0
drwxr-sr-x. 3 root systemd-journal 60 Oct 4 20:51 .
drwxr-xr-x. 3 root root 60 Oct 4 20:51 ..
drwxr-s---+ 2 root systemd-journal 60 Oct 4 20:51 efa711973c694923969a64fd32220e6d
[rockylinux@workstation ~]$
[rockylinux@workstation ~]$ file -i /run/log/journal/
/run/log/journal/: inode/directory; charset=binary
為了要設定成可以持久性的儲存journal相關的日誌檔案,則需要先修改/etc/systemd/journald.conf
之設定檔案,可以使用vim指令進行設定檔案的編輯,相關執行指令如下:
[rockylinux@workstation ~]$ sudo vim /etc/systemd/journald.conf
接著在上述的設定檔中找到下列這一行:
......
[Journal]
#Storage=auto
大概在第15行之位置,接著將此行設定改成:
Storage=persistent
接著存檔離開vim,之後將systemd-journald之背景服務重新啟動,相關的指令執行與輸出的訊息如下:
[rockylinux@workstation ~]$ sudo systemctl restart systemd-journald
[rockylinux@workstation ~]$
接著,就可以看到相關的日誌資料就移到下列的路徑了:
[rockylinux@workstation ~]$ ls /var/log/journal/
efa711973c694923969a64fd32220e6d
[rockylinux@workstation ~]$
若要看一直到現在產生的日誌有哪些的話,可以使用-b
參數並加上數字id值查看編號第幾個啟動的日誌,相關指令執行所輸出的訊息如下:
[rockylinux@workstation ~]$ sudo journalctl -b 1
[sudo] password for rockylinux:
-- Logs begin at Mon 2021-10-04 20:51:42 CST, end at Mon 2021-10-04 23:17:45 CST. --
Oct 04 20:51:42 workstation kernel: Linux version 4.18.0-305.19.1.el8_4.x86_64 (mockbuild@ord1-prod-x86buil>
Oct 04 20:51:42 workstation kernel: Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-305.19.1.el8_4.x86>
Oct 04 20:51:42 workstation kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
Oct 04 20:51:42 workstation kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
Oct 04 20:51:42 workstation kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
Oct 04 20:51:42 workstation kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
Oct 04 20:51:42 workstation kernel: x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using >
Oct 04 20:51:42 workstation kernel: BIOS-provided physical RAM map:
Oct 04 20:51:42 workstation kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
Oct 04 20:51:42 workstation kernel: BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
......
從上面的執行指令輸出的訊息可以得知,設定1表示顯示啟動編號(boot id)是1的日誌,若不加任何參數的話,則觀看確切boot id的日誌。