现在有了 systemd 之后,由于这玩意儿是核心唤醒的,然后又是第一支执行的软件,它可以主动调用 systemd-journald 来协助记载登录文件~ 因此在开机过程中的所有信息,包括启动服务与服务若启动失败的情况等等,都可以直接被记录到 systemd-journald 里头去!

    不过 systemd-journald 由于是使用于内存的登录文件记录方式,因此重新开机过后,开机前的登录文件信息当然就不会被记载了。 为此,我们还是建议启动 rsyslogd 来协助分类记录!也就是说, systemd-journald 用来管理与查询这次开机后的登录信息,而 rsyslogd 可以用来记录以前及现在的所以数据到磁盘文件中,方便未来进行查询喔!

    Tips 虽然 systemd-journald 所记录的数据其实是在内存中,但是系统还是利用文件的型态将它记录到 /run/log/ 下面! 不过我们从前面几章也知道, /run 在 CentOS 7 其实是内存内的数据,所以重新开机过后,这个 /run/log 下面的数据当然就被刷新,旧的当然就不再存在了!

    基本上,有 journalctl 就真的可以搞定你的讯息数据啰!全部的数据都在这里面耶~再来假设一下,你想要了解到登录文件的实时变化, 那又该如何处置呢?现在,请开两个终端机,让我们来处理处理!

    如果你有一些必须要侦测的行为,可以使用这种方式来实时了解到系统出现的讯息~而取消 journalctl -f 的方法,就是 [crtl]+c 啊!

    上面谈到的是叫出登录文件给我们查阅,那换个角度想,“如果你想要让你的数据储存到登录文件当中”呢?那该如何是好? 这时就得要使用 logger 这个好用的家伙了!这个家伙可以传输很多信息,不过,我们只使用最简单的本机信息传递~ 更多的用法就请您自行 man logger 啰!

    现在,让我们来瞧一瞧,如果我们之前写的 backup.service 服务中,如果使用手动的方式来备份,亦即是使用 "/backups/backup.sh log" 来执行备份时, 那么就通过 logger 来记录备份的开始与结束的时间!该如何是好呢?这样作看看!

    再强调一次,这个 systemd-journald.servicd 的讯息是不会放到下一次开机后的,所以,重新开机后,那之前的记录通通会遗失。 虽然我们大概都有启动 rsyslogd 这个服务来进行后续的登录文件放置,不过如果你比较喜欢 journalctl 的存取方式,那么可以将这些数据储存下来喔!

    基本上,systemd-journald.service 的配置文件主要参考 /etc/systemd/journald.conf 的内容,详细的参数你可以参考 man 5 journald.conf 的数据。 因为默认的情况下面,配置文件的内容应该已经符合我们的需求,所以这边鸟哥就不再修改配置文件了。只是如果想要保存你的 journalctl 所读取的登录文件, 那么就得要创建一个 /var/log/journal 的目录,并且处理一下该目录的权限,那么未来重新启动 systemd-journald.service 之后, 日志登录文件就会主动的复制一份到 /var/log/journal 目录下啰!

    你得要注意的是,因为现在整个日志登录文件的容量会持续长大,因此你最好还是观察一下你系统能用的总容量喔!避免不小心文件系统的容量被灌爆! 此外,未来在 /run/log 下面就没有相关的日志可以观察了!因为移动到 /var/log/journal 下面来啰!

    其实鸟哥是这样想的,既然我们还有 rsyslog.service 以及 logrotate 的存在,因此这个 systemd-journald.service 产生的登录文件, 个人建议最好还是放置到 /run/log 的内存当中,以加快存取的速度!而既然 rsyslog.service 可以存放我们的登录文件, 似乎也没有必要再保存一份 journal 登录文件到系统当中就是了。单纯的建议!如何处理,依照您的需求即可喔!