一、rsyslog 系统日志管理
1、关心问题:哪类程序---》 产生的什么日志----》 放到什么地方
2、处理日志的进程
(1) 第一类:
rsyslogd: 系统专职日志程序。 处理绝大部分日志记录,
系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息
(2) 第二类:
httpd/nginx/mysql: 各类应用程序,可以以自己的方式记录日志.
3、观察 rsyslogd程序
[root@localhost ~]# ps aux |grep rsyslogd
root 717 0.0 0.0 219752 3880 ? Ssl 09:05 0:00 /usr/sbin/rsyslogd -n
4、常见的日志文件(系统、进程、应用程序)
# tail -10 /var/log/messages //系统主日志文件
# tail -f /var/log/messages //动态查看日志文件的尾部
# tailf /var/log/secure //认证、安全
# tail /var/log/yum.log //yum
# tail /var/log/maillog //跟邮件postfix相关
# tail /var/log/cron //crond、at进程产生的日志
# tail /var/log/dmesg //和系统启动相关
5、rsyslogd 配置
(1)相关程序
yum install rsyslog logrotate 默认已安装
(2)启动程序
systemctl start rsyslog.service
(3)相关文件
rpm -qc rsyslog
/etc/rsyslog.conf rsyslogd的主配置文件(关键)
/etc/sysconfig/rsyslog rsyslogd相关文件,定义级别(了解一下)
/etc/logrotate.d/syslog 和日志办轮转(切割)相关(任务二)
6、主配置文件——告诉rsyslogd进程什么日志,应该存到哪里。
# vim /etc/rsyslog.conf
RULES
RULES:即规则,是一套生成日志,以及存储日志的策略。
RULES即规则,有三部分组成( 由设备+级别+存放位置 )
RULES由FACILITY+LEVEL+FILE组成。
authpriv.* /var/log/secure(SSH信息)
mail.* -/var/log/maillog(发邮件)这里有一个 - 符号, 表示是使用异步的方式记录, 因为日志一般会比较大
cron.* /var/log/cron(创建任务)
*.info;mail.none;authpriv.none;cron.none /var/log/messages
系统日志排除了邮件,认证,计划日志。
关于程序和设备的联系问题,程序自身会决定将日志交给哪类设备。如SSH程序会选择安全类设备。这一点由开发者定义。
规则示意图——目的:通过绘图形式来理解日志工作机制。
二、logrotate 日志轮转
1、将大量的日志,分割管理,删除旧日志。、
2、简介
日志 记录了程序运行时各种信息。
通过日志可以分析用户行为,记录运行轨迹,查找程序问题。
可惜磁盘的空间是有限的
日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。
为了节省空间和整理方便,日志文件经常需要按!时间或!大小等维度分成多份,删除时间久远的日志文件。
3、工作原理 —— 按照配置进行轮转
配置文件种类
主配置文件:/etc/logrotate.conf ( 决定每个日志文件如何轮转 )
子配置文件夹:/etc/logrotate.d/* 自定义配置 便于管理
观察主文件和子文件
[root@qianfeng ~]# ls /etc/logrotate.conf /etc/logrotate.d/
/etc/logrotate.conf
/etc/logrotate.d/:
acpid cups iscsiuiolog ppp rpm subscription-manager up2date wpa_supplicant
conman httpd mgetty psacct setroubleshoot syslog vsftpd.log yum
4、主配置文件介绍
5、yum日志轮转实例
(1)轮转的目标文件 /var/log/yum.log
(2)配置轮转规则
# vim /etc/logrotate.d/yum
/var/log/yum.log {
missingok //丢失不执行
# notifempty //空文件不论转
# maxsize 30k //达到30k轮转, daily or size
# yearly //或者一年一轮转
daily //缩小周期到1天
rotate 3 //轮转保留3次
create 0777 root root
}
(3)测试
错误示范
# /usr/sbin/logrotate /etc/logrotate.conf //手动轮转
# ls /var/log/yum*
/var/log/yum.log 文件只有一个。因为日期没变
正确示范
修改时间,手动触发轮转
# date 04011000
date 月日时分
把时间向未来推移
# /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
# ls /var/log/yum* 日志文件已经出现多个
关于时间
# grep 'yum' /var/lib/logrotate/logrotate.status //记录所有日志文件最近轮转的时间
"/var/log/yum.log" 2019-3-31-10:0:23
//如果没有轮转过,第一次只有记录