那么这些登录档是怎么产生的呢?基本上有两种方式,一种是由软件开发商自行定义写入的登录档与
相关格式,
例如
WWW
软件
apache
就是这样处理的。另一种则是由
Linux distribution
提供的登
录档管理服务来统一管理。
你只要½讯息丢给这个服务后,他就会自己分门别类的½各种讯息放置
到相关的登录档去!
CentOS
提供
rsyslog.service
这个服务来统一管理登录档喔!
不过要注意的是,如果你任凭登录文件持续记录的话,由于系统产生的信息天天都有,那么你的登录
文件的容量½会长大到无法无天~
如果你的登录文件容量太大时,可能会导致大文件读写效率不佳
的问题
(
因为要从磁盘读入内存,越大的文件消耗内存量越多
)
所以啰,你需要对登录档备份与更
新。那
...
需要手动处理喔?当然不需要,我们可以透过
logrotate (
登录档轮替
)
这玩意儿来自动化处
理登录文件容量与更新的问题喔!
所谓的
logrotate
基本上,就是½旧的登录档更改名称,然后½立一个空的登录档,如此一来,
新的
登录文件½重新开始记录,然后只要½旧的登录档留下一阵子,嗯!那就可以达到½登录档『轮转』
的目的啦!
此外,如果旧的记录
(
大概要保存几个月吧!
)
保存了一段时间没有问题,那么就可以
让系统自动的½他砍掉,
免得占掉很多宝贵的硬盘空间说!
总½一下,针对登录文件所需的功能,我们需要的服务与程序有:
.
systemd-journald.service
:最主要的讯息收受者,由
systemd
提供的;
.
rsyslog.service
:主要登录系统与网络等服务的讯息;
.
logrotate
:主要在½行登录文件的轮替功能。
由于我们着眼点在于想要了½系统上面软件所产生的各项信息,因此本章主要针对
rsyslog.service
logrotate
来½绍。
½着下来我们来谈一谈怎么样规划这两个玩意儿。就由
rsyslog.service
这支程序
先谈起吧!毕竟得先有登录档,才可以½行
logrotate
呀!您说是吧!
.
CentOS 7.x
使用
systemd
提供的
journalctl
日志管理
CentOS 7
除了保有既有的
rsyslog.service
之外,其实最上游还使用了
systemd
自己的登录文件日志
管理功能喔!他使用的是
systemd-journald.service
这个服务来支持的。基本上,系统由
systemd
管理,那所有经由
systemd
启动的服务,如果再启动或½束的过程中发生一些问题或者是正常的讯
息,
就会½该讯息由
systemd-journald.service
以二½制的方式记录下来,之后再½这个讯息发送给
rsyslog.service
作½一步的记载。
systemd-journald.service
的记录主要都放置于内存中,因此在存取方面效能比½好~我们也能够透过
journalctl
以及
systemctl status unit.service
来查看各个不同服务的登录档!
这有个好处,就是登录档
可以随着个别服务让你查阅,在单一服务的处理上面,要比跑到
/var/log/messages
去大海捞针来的
简易很多!
不过,因为
system-journald.service
里面的很多观念还是沿用
rsyslog.service
相关的信息,
所以,本章还是先从
rsyslog.service
先谈起,
谈完之后再以
journalctl
½一步了½
systemd
是怎么
去记录登录文件日志功能的呦!
18.1.2
登录档内容的一般格式
一般来说,系统产生的讯息经过记录下来的数据中,每条讯息均会记录底下的几个重要数据:
.
事件发生的日期与时间;