Skip to content

Latest commit

 

History

History
258 lines (117 loc) · 7.67 KB

File metadata and controls

258 lines (117 loc) · 7.67 KB

日志交替

日志轮替是指把旧的日志文件移动并且改名,同时建立新的日志文件,当旧的日志文件超出范围之后,就会被删除

/etc/logrotate.conf : 全局的日志轮替策略,当然也可以单独给某个日志文件指定策略

logrotate配置文件

img

# rotate log files weekly :每周对日志进行一次轮替

# keep 4 weeks worth of backlogs  :共保存四分日志文件

# create new (empty) log files after rotating old ones :

# use date as a suffix of the rotated file :将时间日期作为日志轮替后缀

# uncomment this if you want your log files compressed

#compress

# RPM packages drop log rotation information into this directory

# system-specific logs may be also be configured here.

补充

Linux日志管理

  对运维人员来说,无论管理什么系统,对日志文件的监控、调用、管理都是其中重要的一部分。服务器问题的解决都是从查看系统(错误)日志开始的。本篇文章,我们就来了解一下Linux系统中的日志管理。

日志管理简介

 日志简介

  系统日志是记录系统硬件检查、内核动作、软件启动、用户动作等各项信息的文件。通过系统日志可以判断系统健康状态、检测系统问题、查找攻击证据等。

Linux系统中的日志服务

  较老的系统日志主要由syslog服务完成,较新的系统中由功能更强的rsyslog服务代替了syslog,但两者的操作方法基本相同。

查看日志服务是否开启,使用systemctl命令查看并启动服务

#查看服务是否启动

systemctl list-units | grep rsyslog

\#若没有启动,则启动服务

systemctl start rsyslog.service

常见日志及其作用

Linux的系统日志主要保存在/var/log目录中,各个主要文件及其作用在下表中列出,

日志文件名 作用

cron 系统定时任务相关日志

cups 打印信息日志

dmesg 记录系统开机内核自检的信息,使用dmesg命令查看

btmp 记录登录错误信息的日志(二进制文件不能用vim查看,使用lastb命令)

wtmp 记录登录注销以及关机信息的日志(同样不能用vim查看,使用last命令)

lastlog 记录每个用户最后一次登录时间,使用lastlog命令查看

maillog 记录邮件信息

massages 记录系统的绝大多数重要信息,出现问题主要检查这个文件(记录等级info,在下面讲到)

secure 记录验证和授权相关信息,主要与用户账户与授权相关

另外,某些系统安装的应用服务默认将日志记录在这个目录下,但不是使用rsyslog服务管理,应用有自己的日志管理服务。通过源码包安装的应用服务日志记录在其安装目录下

 日志文件格式

基本日志格式主要包含四种内容

事件发生时间

发生事件的主机名

发生事件的服务或程序(或内核),包含进程PID

事件内容

日志管理服务 rsyslog 配置

 日志管理服务的配置格式

rsyslog服务的配置文件为/etc/rsyslog.conf

配置文件格式:服务名称[连接符号]日志等级 日志记录位置

其中

服务名称为系统安装的服务的名称,多个服务名称如果使用同一等级,可用逗号分隔

两个规则之间(主要用于排除情况),使用分号分隔,详见样例

连接符号在下面给出,日志等级也在下面给出

日志记录位置不只是文件绝对路径,有以下方式

日志记录位置 样例说明

绝对文件路径 /var/log/messages

系统设备文件 /dev/lp0 (使用打印机输出)

转发给远程主机 @192.168.0.2:123

用户名 root 或*(表示所有用户)

忽略日志(不记录) ~

 日志服务管理的主要服务名称

服务名称 说明

auth 用户账户安全和认证信息(与authpriv不同)

authpriv 用户账户安全和认证信息(私有的)

cron 系统定时任务

daemon 各种守护进程

ftp ftp守护进程相关日志

kern 内核产生日志

lpr 打印日志

mail 邮件收发日志

news 新闻服务器相关日志

syslog rsyslog服务产生的日志

user 用户类别的日志

 日志服务配置文件的连接符

连接符 说明

* 代表所有用户等级

. 等级比后面给出的日志等级高(包含)的会记录

.= 等级与后面给出的相等的

.! 等级与后面给出的不等的

 日志等级

日志等级从上到下依次变高

日志等级 说明

debug 一般的调试信息

info 基本通知信息

notice 普通的注意信息

warning 一般警告信息,目前对系统运行没有影响但以后可能出现问题

err 错误信息,可能影响一部分系统功能

crit critical致命错误,较错误信息更加严重

alert 警告状态信息,如果不处理可能造成系统损坏

emerg 系统无法使用

另外,.none表示不记录日志,一般在排除情况下使用

 日志服务配置举例

auth,authpriv.* /var/log/auth.log #逗号分隔表示两个服务同样等级,都为所有

.;auth,authpriv.none -/var/log/syslog #所有服务的所有信息,但排除了上面两个服务

日志轮替

  如果从一开始的所有记录都记录在一个文件中,势必会造成读写变慢、占用增加,甚至增加由于单个文件损坏导致所有日志丢失的风险。为了解决这个问题,Linux系统采用日志轮替方式,将一段时间以前的记录切割打包到另外的存档文件中,而主日志文件从全新重新开始记录。

 日志文件的命名(轮替)规则

如果配置文件中有"dateext"参数,那么日志会用日期来作为文件后缀,日志文件名不会重叠,就不会发生旧文件改名

当没有这个参数,日志文件会发生改名。当启用新的文件时例如messages,旧的文件会改为messages.1,原来的messages.1文件会变为messages.2,以此类推,过早的文件可能会被压缩,超过最大序号的旧文件会被删除。

日志轮替的配置文件为**/etc/logrotate.conf**,同时具体信息也可以保存在**/etc/logrotate.d**目录中,在其中可以设置日志轮替信息,参数具体man logrotate查看帮助

参数 说明
daily 按日轮替
weekly 按天轮替
monthly 按月轮替
rotate n n为数字,为保留的日志文件的个数,0指不备份
compress 对旧的日志进行压缩
create [mode] [owner] [group] 建立新日志的权限模式,所有者和所属组,如create 0640 root adm

END 链接