只有rsylogd的时候,rsylogd必须要开机完成并执行了rsyslogd这个daemon之后,登录文件才会开始记录。
现在有了systemd之后,它可以主动调用systemd-journald来协助记载登录文件,因此在开机过程中的所有信息,包括启动服务与服务若启动失败的情况等等,都可以直接被记录到 systemd-journald 里头去。
不过 systemd-journald 由于是使用于内存的登录文件记录方式,因此重新开机过后,开机前的登录文件信息当然就不会被记载了。 为此,我们还是建议启动 rsyslogd 来协助分类记录!也就是说, systemd-journald 用来管理与查询这次开机后的登录信息,而 rsyslogd 可以用来记录以前及现在的所以数据到磁盘文件中,方便未来进行查询。
18.4.1 使用 journalctl 观察登录信息
如果你有一些必须要侦测的行为,可以使用这种方式来实时了解到系统出现的讯息。
18.4.2 logger 指令的应用
我们之前写的 backup.service 服务中,如果使用手动的方式来备份,亦即是使用 "/backups/backup.sh log" 来执行备份时, 那么就通过 logger 来记录备份的开始与结束的时间。
通过这个,我们能够将数据自行处置到登录文件当中。
18.4.3 保存 journal 的方式
基本上,systemd-journald.service 的配置文件主要参考 /etc/systemd/journald.conf 的内容,默认的情况下面,配置文件的内容应该已经符合我们的需求,如果想要保存你的journalctl 所读取的登录文件, 那么就得要创建一个 /var/log/journal 的目录,并且处理一下该目录的权限,那么未来重新启动 systemd-journald.service 之后, 日志登录文件就会主动的复制一份到 /var/log/journal 目录下。
18.5 分析登录文件
我们可以自行以 vim 或者是 journalctl 进入登录文件去查阅相关的信息。
18.5.1 CentOS 默认提供的 logwatch
虽然有一些有用的系统指令,不过,要了解系统的状态,还是得要分析整个登录文件才行~事实上,目前已经有相当多的登录文件分析工具,例如 CentOS 7.x 上面默认的 logwatch 这个套件所提供的分析工具, 他会每天分析一次登录文件,并且将数据以 email 的格式寄送给root 呢! 你也可以直接到 logwatch 的官方网站上面看看:
เว็บบอลออนไลน์ UFABET เว็บพนันที่ดีที่สุดในเอเชีย เดิมพันแบบครบวงจร
安装logwatch这套软件,假设已经将 CentOS 7.1 的原版光盘挂载在 /mnt 当中了,那使用下面的方式来处理即可:
安装完毕以后,logwatch 就已经写入 cron 的运行当中了!详细的执行方式你可以参考上表中0logwatch 文件内容来处理,未来则每天会送出一封 email 给 root 查阅就是了。
18.6 重点回顾
登录文件可以记录一个事件的何时、何地、何人、何事等四大信息,故系统有问题时务必查询登录文件;
系统的登录文件默认都集中放置到 /var/log/ 目录内,其中又以 messages 记录的信息最多!
登录文件记录的主要服务与程序为: systemd-journald.service, rsyslog.service, rsyslogd
rsyslogd 的配置文件在 /etc/rsyslog.conf ,内容语法为:“ 服务名称.等级 记载设备或文件”
通过 linux 的 syslog 函数查询,了解上述服务名称有 kernel, user, mail...从 0 到 23 的服务序号
承上,等级从不严重到严重依序有 info, notice, warning, error, critical, alert, emergency等
rsyslogd 本身有提供登录文件服务器的功能,通过修改 /etc/rsyslog.conf 内容即可达成;
logrotate 程序利用 crontab 来进行登录文件的轮替功能;
logrotate 的配置文件为 /etc/logrotate.conf ,而额外的设置则可写入 /etc/logrotate.d/*内;
新的 CentOS 7 由于内置 systemd-journald.service 的功能,可以使用 journalctl 直接从内存读出登录文件,查询性能较佳
logwatch 为 CentOS 7 默认提供的一个登录文件分析软件。