iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
IT管理

Rocky Linux 8:系統管理與維運實戰系列 第 19

第13章:分析、儲存與存取系統日誌介紹(二)

前言

繼上次介紹了系統日誌與相關的介紹後,接下來介紹該如何使用journalctl將日誌檔案永久的儲存下來。

持久儲存journal

系統的journal是有一個背景服務在開機的時候會自動啟動,換句話說,journal在重新開機之後之前的日誌檔案就會不見,若要保留之前的日誌則上述的這個預設設定上會有問題,因此若要把日誌檔案給保存下來的話,則需要修改/etc/systemd/journald.conf檔案,並找到有關於Storage之設定,相關尋找此設定的指令方式如下:

[rockylinux@workstation ~]$ cat /etc/systemd/journald.conf | grep auto
#Storage=auto

從上述的指令執行與輸出的訊息可以得知,預設是不會將任何的日誌檔案給儲存下來的,若要儲存的話,則需要將此行設定的註解拿掉,並進行相關設定值的設定:有關於儲存設定的方式如下:

  • persistent:將journal相關的檔案儲存到/var/log/journal目錄底下,當主機重新啟動之後仍會存在,若是此目錄不存在的話,systemd-journald則會自動去建立這個目錄。
  • volatile,將相關journal檔案儲存到/run/log/journal目錄底下,當主機啟動的時候,相關的檔案就會放到上述的目錄,由於這個目錄相關檔案都是在作業系統執行期存放在記憶體的,所以當主機重新啟動之後,裡面這些資料就會不見,也就是揮發掉的意思,意思就是當主機重新啟動的時候,不要將舊的journal相關檔案給保留下來。
  • auto:這個模式是讓rsyslog決定使用persistent或是vilatile模式的儲存,若/var/log/journal檔案存在的話,
    則rsyslog則會執行persistent模式將相關的日誌檔案都儲存下來;反之,則使用violatile模式在每次主機重新開機都將不保留先前的日誌檔案。

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日誌檔案儲存

為了要設定成可以持久性的儲存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的日誌。

課後練習

  • 請開啟VirtualBox並啟動「workstation」虛擬機,並使用rockylinux使用登入到桌面環境並開啟終端機。
  • 將journal日誌儲存方式改成persistent。
  • 驗證並確定上述設定有修改成功。
  • 將journal日誌儲存方式改成volatile。
  • 驗證並確定上述設定有修改成功。

上一篇
第13章:分析、儲存與存取系統日誌介紹(一)
下一篇
第14章:設定系統時區與時間
系列文
Rocky Linux 8:系統管理與維運實戰23

尚未有邦友留言

立即登入留言