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即可。