一、rsyslog系统日志管理
1、处理日志的进程
第一类:rsyslogd: 系统专职日志程序。绝大部分日志记录,系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息。
第二类:httpd/nginx/mysql: 各类应用程序,可以以自己的方式记录日志。
2、常见的日志文件(系统、进程、应用程序)
# tail -f /var/log/messages //动态查看日志文件的尾部
# tailf /var/log/secure //认证、安全
# tailf /var/log/yum.log //yum
# tailf /var/log/maillog //跟邮件postfix相关
# tailf /var/log/cron //crond、at进程产生的日志
# tailf /var/log/dmesg //和系统启动相关
tail -f 可以简写为tailf
3、rsyslog配置
相关程序
yum -y install rsyslog logrotate (默认已安装)
启动程序
systemctl start rsyslog
观察日志的配置文件
rpm -qc rsyslog (可以看到一下三个文件)
/etc/rsyslog.conf rsyslogd的主配置文件
/etc/sysconfig/rsyslog rsyslogd相关文件,定义级别
etc/logrotate.d/syslog 和日志轮转(切割)相关
4、主配置文件
告诉rsyslogd进程什么日志,应该存到哪里。
打开主配置文件:
vim /etc/rsyslog.conf
打开主配置文件,找到里面的RULES那一条,RULES:即规则,是一套生成日志,以及存储日志的策略。
RULES即规则,有三部分组成(由设备+级别+存放位置) RULES由FACILITY+LEVEL+FILE组成。下面是RULES里包含的一些规则,在 .的左侧是设备名称,右侧是级别(一般都是 * ‘所有级别’) 最右侧就是日志文件的位置。
authpriv.* /var/log/secure(SSH信息)
mail.* -/var/log/maillog(发邮件) 这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大
cron.* /var/log/cron(创建任务)
*.info;mail.none;authpriv.none;cron.none /var/log/messages 系统日志排除了邮件,认证,计划日志。
下面的图可以清晰的反映三者之间的关系:
二、logrotate日志轮转
1、简介
日志 记录了程序运行时各种信息。通过日志可以分析用户行为,记录运行轨迹,查找程序问题。可惜磁盘的空间是有限的。日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。为了节省空间和整理方便,日志文件经常需要按时间或大小等维度分成多份,删除时间久远的日志文件。
2、工作原理
按照配置进行轮转
配置文件种类
① 主配置文件
/etc/logrotate.conf (决定每个日志文件如何轮转)
vim /etc/logrotate.conf //查看logrotate主配置文件中的信息
# see "man logrotate" for details
# rotate log files weekly
weekly //每周切割一次
# keep 4 weeks worth of backlogs
rotate 4 //保留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 //轮转最小大小为1M,如果时间已经过了一个月但是大小小于1M是不能切割的
rotate 1 //保留一份
}
/var/log/btmp {
missingok //丢失不提示
monthly
create 0600 root utmp //轮转后创建新文件并设置权限
rotate 1
}
# system-specific logs may be also be configured here.
② 子配置文件夹
/etc/logrotate.d/*
用户自定义配置,方便管理。在这里设置的轮转规则只适用于设置的一个或几个程序。如果没有单独设置,则程序遵循主配置文件的轮转规则。
③ yum日志轮转示例
轮转的目标文件
/var/log/yum.log 在这里查看轮转的信息
vim /etc/logrotate.d/yum //配置yum的轮转规则
/var/log/yum.log {
missingok //丢失不用找回
#notifempty //空文件不轮转
#maxsize 30k //达到30k就轮转,date or size 任意一个达到就可以轮转
#yearly //每年轮转一次
daily //每日轮转
rotate 3 //保留3份
create 0777 root root //
}