CentOS日志配置简述

AdminPi, 运维, 2021-04-22 21:25:00

日志文件记录着系统运行的各种消息,如果系统出现故障,通过日志可以很方便的排查和诊断,亦或是当系统被入侵时,日志也可以拿来定位攻击者的行踪。

目前常见的Linux发行版都自带了rsyslog日志管理软件,其主程序为:/sbin/rsyslogd,rsyslog服务所使用的配置文件为:/etc/rsyslog.conf。

日志文件默认存放在/var/log/目录下。

一些常见的日志文件说明:

boot.log(boot.log-xxxxxxxx):记录系统启动和关闭的事件信息;
btmp(btmp-xxxxxxxx):记录失败的登录事件信息;
cron(cron-xxxxxxxx):记录定时任务产生的事件信息;
dmesg(dmesg-xxxxxxxx):记录操作系统在引导过程中的各种事件信息;
lastlog(lastlog-xxxxxxxx):记录用户最近的登录事件信息;
maillog(maillog-xxxxxxxx):记录系统中电子邮件活动的信息;
messages(messages-xxxxxxxx):记录系统内核消息及各种应用程序的公共日志信息。未使用独立日志文件的应用程序或服务,也可以从该文件中获得相关的事件记录信息;
secure(secure-xxxxxxxx):记录用户认证相关的安全事件信息;
spooler(spooler-xxxxxxxx):用来记录系统新闻群组方面的信息;
wtmp(wtmp-xxxxxxxx):记录用户登录、注销及系统启动和停机事件信息。

配置文件格式:

日志设备(类型).(连接符号)日志级别 日志处理方式(action)

日志设备(类型):

auth:pam产生的日志;
authpriv:ssh、ftp等的验证信息;
cron:定时任务相关信息;
kern:内核相关;
lpr:打印相关;
mail:邮件相关;
mark(syslog)–rsyslog:服务内部的信息;
news:新闻组;
user:用户程序产生的相关信息;
uucp:unix主机之间相关的通讯信息;
local 1-7:自定义的日志类型。

日志级别:

debug:调式信息;
info:一般信息;
notice:重要的信息;
warning:警告;
err:错误信息(功能或模块的错误信息);
crit:严重信息(影响系统运行的信息);
alert:需要立刻修正的信息;
emerg:内核崩溃等严重信息;
none:什么信息都不记录。

连接符号:

.x: 表示大于等于x级别的信息;
.=x:表示等于x级别的信息;
.!x:表示在x之外的等级的信息。

举个例子:

mail.debug  /var/log/maillog
说明:将mail的debug日志保存到/var/log/maillog。

熟悉了日志的配置,那么日志应该保留多久呢?

保留的太久磁盘会吃不消,保留的太短似乎又起不到作用。

根据经验和相关规定,建议日志保留6-12个月,特殊行业请参考相关行业规定。

说到日志保留时长,就需要了解一下logrotate,logrotate的主要作用是对日志进行切割轮循,有点行车记录仪的感觉,新视频自动覆盖旧视频。

logrotate的执行文件:/usr/sbin/logrotate;主配置文件:/etc/logrotate.conf;自定义配置文件:/etc/logrotate.d/*.conf;修改配置文件后,不需要重启服务,因为logrotate是一个基于crontab运行的应用程序。

默认配置文件如下:

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

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

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
    minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

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

默认日志保留时长为四周或一个月,建议修改为6个月以上:

rotate 4改为:rotate 28;
rotate 1改为:rotate 6。

常见配置参数说明:

daily:转储周期为按天;
weekly:转储周期为按周;
monthly:转储周期为按月;
rotate n:转储的次数,rotate 5及保留5份,旧日志会依次删除;
missingok:忽略错误;
size nK:日志文件到达指定的大小后才转储,缺省单位为bytes,可选:KB (nK) 或 MB (nM);
compress:压缩日志;
nocompress:不压缩;
copytruncate:备份并截断;
nocopytruncate:备份不截断;
create mode owner group, create owner group:指定用户和权限创建新的日志文件;
nocreate:不创建新的日志文件;
delaycompress:和compress一起使用时,下一次转储时压缩;
nodelaycompress:覆盖delaycompress选项,转储同时压缩;
ifempty:空文件也转储;
notifempty:空文件不转储;
prerotate/endscript:转储前,postrotate和endscript里面指定的命令将被执行。

不是所有的参数都是必须的。

通过熟练掌握rsyslog和logrotate便可以对Linux系统日志进行合理的设置。

© 2024