前言
什么是日志?日志就是历史事件。历史事件包括时间、地点、人物、时间。这个是生活中所说的日志很好理解。
在Linux中也有类似的服务,它主要作用就是记录Linux系统的历史事件,包括什么时间什么服务或者那个进程或者pid发生的一些事件,通过记录发生的事件,我们可以查看日志来了解在过去的一段时间Linux系统发生了什么事,从而可以帮助我们解决一些问题。
在Linux系统里日志是有级别的,也就是说事件的关键程度,比如说有些事件只是警告,需要我们注意,起个提醒我们的目的,可以后面去处理,也可以不处理,但是有些事件比较紧急,它不仅仅只是提示我们的作用,很有可能这一秒发生了这样的事件,下一秒Linux系统就挂了,所以在Linux系统里事件的关键性程度非常重要。
rsyslogd
rsyslogd 专职管理系统日志的工具,它生产着用户的登录信息、系统的启动信息、系统的安全信息、邮寄相关信息、各种服务相关信息文件,这些文件都存储在/var/log目录下。
在centos 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务。rsyslogd日志服务更加先进,功能更多。但是不论该服务的使用,还是日志文件的格式其实都是和syslogd服务相兼容的,所以学习起来基本和syslogd服务一致。
相关术语
以/etc/rsyslog.conf中的authpriv字段进行举例:下图表示:认证相关服务的所有日志等级,都记录到/var/log/secure日志中;
其中我们可以看到在这个字段中,存在一些必要的术语,我们先来看一下这些术语:
常用日志文件
日志规则
rsyslog 配置文件为主配置文件和子配置文件;
1、主配置文件:/etc/rsyslog.conf
2、子配置文件:通过 $IncludeConfig 选项在主配置文件中指定,一般默认定义的是:/etc/rsyslog.d/下以.conf结尾的文件
配置文件的内容有三大块组成,模块配置、全局配置和规则配置
- 模块配置:rsyslog是基于模块设计的,使用不同的功能就需要加载不同的模块。
- 全局配置:用于设置整个 rsyslog 服务的基本操作参数和行为。
- 规则配置:rsyslog收集到日志信息后,通过定义的规则对这些日志数据进行处理。
由上图可以看到,rsyslog的每条日志管理规则都是由两大部分组成:
- 选择器:定义哪些日志消息应该被处理。
- 动作:定义了对匹配选择器的日志消息要执行的操作。
例1:如选择器为:*.*,第一个 * 代表着日志的设备类型,第二个 * 代表着日志的级别。如果为* 代表包括所有日志类型或级别。
例2:如规则为:*.*;auth,authpriv.none -/var/log/syslog,除了auth和authpriv的消息,都异步写入/var/log/syslog;
日志信息组成
日志信息分别是4个字段信息组成
- 第一个字段信息:产生日志的时间;
- 第二个字段信息:产生日志的主机名;
- 第三个字段信息:产生日志的程序或服务和进程号;
- 第四个字段信息:产生日志的程序或服务的具体操作;
日志设备类型:每个程序在被设计时,都已经被作者定义好了设备类型,例如 ssh服务;
可以根据设备类型,得知日志存储位置。例如:ssh的登录安全验证日志存储路径为 /var/log/secure;同样可以根据需求,设置需要的级别,例如,要求日志只记录警告信息,就将日志级别设置为warning。
日志轮替
日志信息存储在一个文本中,当一个纯日志文件大小上G之后,就很难正常读取里面的日志信息,如果设备配置、性能不是很好,就有可能造成设备死机,此时就需要日志轮替处理:logrotate;
日志轮替包含切割和轮换:
- 切割:将大的日志按照固定的大小分为多个小的日志文本,一般会采取按日期分割;按照日期,每天的日志存放在一个文本当中,便于管理员查看。
- 轮换:把旧的日志删除,轮换新的日志内容;(比如:超过30天的日志就会删除,然后留出空间将新的日志写入)
日志切割的命名
如果对于切割后的日志没有命令规则,每天都是相同的文件名,那么今天所保存的日志文件就会覆盖前一天的日志文件。
- 规则一:如果配置文件中拥有“dateext”参数,那么日志会用日期来作为日志文件的后缀;
-
如“secure-20220211”.这样的话日志文件名不会重叠,所以也就不需要日志文件的改名,只需要保存指定的日志个数,删除多余的日志文件即可。
- 规则二:如果配置文件中没有“dateext”参数,那么日志文件需要进行改名
-
如第一次进行日志轮替时,当前的“secure”日志会自动改名为“secuer.1”,然后新建“secure”日志,用来保存新的日志。当第二次进行日志轮替时,“sucure.1”会自动改名为“secure.2”,当前的“secure”日志会自动改名为“sucure.1”,然后也会新建“secure”日志,用来保存新的日志,以此类推。
配置文件
主配置文件/etc/logrotate.conf信息如下:
代码中参数的解释:
子配置文件夹 /etc/logrotate.d/;该目录下的所有文件都可以自定义轮换规则。