【linux】系統日誌的管理之journalctl

1.journalctl命令的使用

在對系統日誌的管理中,現在使用journal這個工具也比較多。但要注意的是,journalctl是直接對內存中的日誌查詢命令,如果系統重啓,原來的日誌都會被清除。也就是說開機之後找不到之前的日誌,無法查看。

journalctl		        ##日誌查看工具
		    -n 3	    ##查看最近3條日誌
		    -p err	    ##查看錯誤日誌
		    -o verbose	##查看日誌的詳細參數
		    --since		##查看從什麼時間開始的日誌
		    --until		##查看到什麼時間爲止的日誌

在這裏插入圖片描述
在這裏插入圖片描述顯示最近5條日誌
在這裏插入圖片描述顯示報錯日誌
在這裏插入圖片描述顯示從2019-04-16 08:00開始採集的日誌。在這裏插入圖片描述
顯示從2019-04-16 08:00到08:01採集到的日誌
但是這些日誌都不夠指向性,能幫助我們快速定位到想查詢的服務日誌,可以在jounralctl後加上詳細的日誌參數,如果不知道加什麼參數,我們可以使用下面命令查詢。
在這裏插入圖片描述
我們看到,可以在journalctl後加_PID、_UID等參數,下面就用ssh服務舉個例子,如何指向具體服務甚至具體到PID查詢日誌。

在這裏插入圖片描述我們可以看到正在開啓的ssh這個服務的PID是1180
在這裏插入圖片描述重啓sshd服務後,新的ssh服務的PID是5070
現在我們想要查詢PIDWEI 5070的ssh服務的日誌,就用下面的命令

在這裏插入圖片描述指明PID以及命令名稱。

2.使用systemd-journal保存系統日誌

在這裏插入圖片描述
新建一個/var/log/journal目錄,更改該目錄的屬組爲systemd-journal,並給這個目錄加上強制位,使在此目錄下產生的文件都屬於該目錄的屬組
在這裏插入圖片描述
過濾出進程名中含有systemd-journal的進程,並重新加載這個進程
在這裏插入圖片描述 查看到/var/log/journal這個目錄下有什麼文件,這個文件名其實爲本機機器碼。並進入到這個目錄中,ll查看這個文件的時間,顯示的時間就是關機之後再次打開機器日誌採集的時間伊始。這樣就可以查看到關機前的進程日誌信息。但由於這個方法會不停寫入到文件裏,所以存儲的信息會越來越多,對硬件造成很大的影響,所以儘量不要使用,使用rsyslog即可。