我司IAC-IMX8MP-Kit開發(fā)板搭載NXP i.MX8M Plus SOC,該芯片采用4顆Arm Cortex-A53核心以及1顆Arm Cortex-M7核心。目前開發(fā)板默認(rèn)搭載Yocto文件系統(tǒng),該文件系統(tǒng)雖然不如Ubuntu等安裝第三方軟件包方便,但勝在足夠精簡且運行穩(wěn)定,今天主要分享其中運行的一種日志管理系統(tǒng),Journal。
Journal日志管理系統(tǒng)基于systemd文件系統(tǒng),由systemd-journald服務(wù)控制啟動,用于收集、存儲和管理系統(tǒng)及服務(wù)的日志。主要特點在于二進(jìn)制結(jié)構(gòu)存儲、集中管理且支持持久化等,相比較傳統(tǒng)/var/log下的syslog更易于存儲和管理。我司IAC-IMX8MP-Kit開發(fā)板默認(rèn)并沒有持久化journal的日志,導(dǎo)致重啟就會丟失日志文件,同時也無法追蹤系統(tǒng)開機(jī)重啟時間,下面就介紹如何持久化日志,并且一些查看日志等操作。
首先,查看/etc/fstab文件,這里是將/var目錄掛載為tmp文件系統(tǒng)的地方,需要將其注釋,否則每次重啟就會清空文件內(nèi)容,如下圖所示:
其次修改配置文件,將其存儲方式改為在磁盤里,并且配置相關(guān)參數(shù)如,同步時間、日志最大占用空間等,如下圖所示(/etc/systemd/journald.conf):
其中Storage是存儲方式,persistent代表磁盤,SyncIntervalSec為同步時間,單位是秒,而SystemMaxUse就是最大磁盤占用了。
文件類的修改如上所述,還需要專門創(chuàng)建一個文件夾,用于放置保存下來的日志用于后期查看和整理。具體命令如下:
mkdir -p /var/log/journal
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal
隨后重啟服務(wù),systemd restart systemd-journal,刷新一下緩存就可在/var/log/journal目錄下出現(xiàn)一個新的當(dāng)前緩存下的日志,如下圖所示:
至此,journal的配置工作全部都已經(jīng)完成??赏ㄟ^不斷操作重啟開發(fā)板判斷持久化是否成功,如下圖所示,journal會記錄所有重啟的時間以及l(fā)og:
因為篇幅的原因這里就不再過多介紹journal日志系統(tǒng)其他的操作,該日志系統(tǒng)功能強(qiáng)大,能夠很好的分析重要重啟的log,為診斷問題提供了強(qiáng)有力的手段。