前言在网上查了很多期刊文章,但都是零散的,整理一下,总结一下,以备日后参考。什么是期刊?Journal是centos7中systemd的一个组件,由journald处理。捕获系统日志消息、内核日志消息和来自原始RAM磁盘的消息、早期启动消息以及从所有服务写入STDOUT和STDERR流的消息。可以说是为Linux服务器创造的一种新的系统日志方式。这些日志信息被写入二进制文件,使用journalctl读取,默认存储在/run/log/下。这个和之前的rsyslog有什么区别或者关系?systemd-journald.service:最重要的消息接收者,由systemd提供;rsyslog.service:主要记录系统和网络服务的消息;CentOS7不仅保留了现有的rsyslog.service,其实最上游还使用了Systemd自带的登录文件日志管理功能!他使用服务systemd-journald.service来支持它。基本上系统是由systemd管理的,所有的服务都是由systemd启动的,如果在启动或者结束的过程中出现了一些问题或者正常的消息,这些消息会被systemd-journald.service以二进制的形式记录下来,然后将此消息发送到rsyslog.service以获取进一步记录。systemd-journald.service的记录主要放在内存中,因此在访问方面性能较好。我们还可以通过journalctl和systemctlstatusunit.service查看各种服务的登录文件!这样做的好处是日志文件可以和单个服务一起查看,单个服务的处理要比去/var/log/messages大海捞针容易得多!在使用journalctl理解了上面的概念之后,记录一下journalctl的使用方法。日志记录在/run/log/journal/,下面常用的命令是journalctl#查看所有日志journalctl-n5#查看最近5条日志journalctl-perr#查看err类型日志journalctl-f#连续输出last10logsjournalctl--sincetoday#查看今天的日志journalctl--since"2020-05-1208:00:00"--until"2020-05-1209:00:00"journalctl-overbose#查看日志detailsjournalctl--disk-usage#查看当前日志使用的磁盘量journalctl--vacuum-time=2d#只保存2天的日志journalctl--vacuum-size=500M#最大500Mjournalctl--verify#查看是否日志运行正常,日志文件是否完整无损?由于日志默认保存在内存中,一旦服务器重启就会丢失。作为生产环境,管理员必须保证系统中的任何日志都不能丢失,并通过修改配置文件的方式进行持久化保存。同时systemd-journald.service的配置文件主要参考了/etc/systemd/journald.conf的内容。详细参数请参考man5journald.conf的资料。下面介绍存储参数。“`volatile`”表示只保存In-memory,即只保存在`/run/log/journal`目录下(会按需自动创建)。“`persistent`”表示先保存在磁盘上,即先保存在`/var/log/journal`目录下(会按需自动创建),但如果失败(例如,在系统启动初期“/var”还未挂载),而是存放在`/run/log/journal`目录下(会按需自动创建)。"`auto`"(默认值)类似于"`persistent`",但不会自动创建`/var/log/journal`目录,所以可以根据这个目录的存在来确定日志的位置."`none`"表示不保存任何日志(直接丢弃所有收集到的日志),但不影响日志转发。默认值为"`auto`"综上所述,看了鸟哥写的,我也是这个想法。既然有rsyslog.service和logrotate(本版不介绍,可以看看鸟哥写的),最好把这个systemd-journald.service产生的日志文件放在/run/log的内存中加快访问速度!则无需再向系统保存另一个日志日志文件。第一次写,不是很详细,其他细节就不一一解释了,下次争取写的更好~
