【linux】系统日志的管理之journalctl

时间:2024-04-09 09:52:33

1.journalctl命令的使用

在对系统日志的管理中,现在使用journal这个工具也比较多。但要注意的是,journalctl是直接对内存中的日志查询命令,如果系统重启,原来的日志都会被清除。也就是说开机之后找不到之前的日志,无法查看。

journalctl		        ##日志查看工具
		    -n 3	    ##查看最近3条日志
		    -p err	    ##查看错误日志
		    -o verbose	##查看日志的详细参数
		    --since		##查看从什么时间开始的日志
		    --until		##查看到什么时间为止的日志

【linux】系统日志的管理之journalctl
【linux】系统日志的管理之journalctl显示最近5条日志
【linux】系统日志的管理之journalctl显示报错日志
【linux】系统日志的管理之journalctl显示从2019-04-16 08:00开始采集的日志。【linux】系统日志的管理之journalctl
显示从2019-04-16 08:00到08:01采集到的日志
但是这些日志都不够指向性,能帮助我们快速定位到想查询的服务日志,可以在jounralctl后加上详细的日志参数,如果不知道加什么参数,我们可以使用下面命令查询。
【linux】系统日志的管理之journalctl
我们看到,可以在journalctl后加_PID、_UID等参数,下面就用ssh服务举个例子,如何指向具体服务甚至具体到PID查询日志。

【linux】系统日志的管理之journalctl我们可以看到正在开启的ssh这个服务的PID是1180
【linux】系统日志的管理之journalctl重启sshd服务后,新的ssh服务的PID是5070
现在我们想要查询PIDWEI 5070的ssh服务的日志,就用下面的命令

【linux】系统日志的管理之journalctl指明PID以及命令名称。

2.使用systemd-journal保存系统日志

【linux】系统日志的管理之journalctl
新建一个/var/log/journal目录,更改该目录的属组为systemd-journal,并给这个目录加上强制位,使在此目录下产生的文件都属于该目录的属组
【linux】系统日志的管理之journalctl
过滤出进程名中含有systemd-journal的进程,并重新加载这个进程
【linux】系统日志的管理之journalctl
查看到/var/log/journal这个目录下有什么文件,这个文件名其实为本机机器码。并进入到这个目录中,ll查看这个文件的时间,显示的时间就是关机之后再次打开机器日志采集的时间伊始。这样就可以查看到关机前的进程日志信息。但由于这个方法会不停写入到文件里,所以存储的信息会越来越多,对硬件造成很大的影响,所以尽量不要使用,使用rsyslog即可。