日志管理
一.简介
(1)任务一
Rsyslog系统日志管理:我们需要关心的问题是哪类程序产生了什么日志,放到了什么地方。
(2)任务二
logrotate日志轮转,将大量的日志分割,删除旧日志。
二.任务一实战
(1)处理日志的进程
-
Rsyslogd:系统专职日志程序,处理大部分的日志记录,系统操作相关的信息,如登录信息,程序启动关闭的信息,错误信息。
-
httpd/nginx/mysql: 各类应用程序,可以以自己的方式记录日志。以后详细讲解。
-
观察rsyslogd程序
(2)常见的日志文件系统
(3)rsyslogd配置
- 相关程序
Yum install rsyslog logrotate
一般系统默认安装。
- 启动程序
Systemctl start rsyslog.service
- 相关文件
[root@localhost ~]# rpm -qc rsyslog
/etc/logrotate.d/syslog //日志轮转相关任务
/etc/rsyslog.conf //rsyslogd的主配置文件
/etc/sysconfig/rsyslog //定义级别
列出配置文件(/etc下的文件) 会列出文件的位置 //查看配置文件所在路径
(4)主配置文件
-
RULES:即规则,是一套生成日志,以及存储日志的策略。
-
规则由设备+级别+存放位置组成。RULES由FACILITY+LEVEL+FILE组成。
-
authpriv.* /var/log/secure(SSH信息)
-
mail.* -/var/log/maillog(发邮件)
-
这里有一个-符号, 表示是使用异步的方式记录,
因为日志比较大时,需要此方法防止占用内存 -
cron.* /var/log/cron(创建任务)
-
FACILITY设备
-
LOG_SYSLOG //syslogd自身产生的日志
-
LOG_AUTHPRIV //安全认证
-
LOG_CRON //(cron and at)
-
LOG_MAIL // 邮件系统mail subsystem
-
LOG_USER (default) //用户相关
-
LOG_DAEMON //后台进程
-
LOG_FTP //ftp daemon
-
LOG_KERN //kernel messages
-
LOG_LPR //打印机 printer subsystem
-
LOG_LOCAL0 through LOG_LOCAL7 //用户自定义设备
-
LEVEL级别 (从下到上,级别从低到高,记录的信息越来越少)
-
LOG_EMERG 紧急,致命,服务无法继续运行,如配置文件丢失
-
LOG_ALERT 报警,需要立即处理,如磁盘空使用95%
-
LOG_CRIT 致命行为
-
LOG_ERR 错误行为
-
LOG_WARNING 警告信息
-
LOG_NOTICE 普通,重要的标准信息
-
LOG_INFO 标准信息
-
LOG_DEBUG 调试信息,排错所需,一般不建议使用
三.任务二实战
(1)简介
日志:记录了程序运行时各种信息。通过日志可以分析用户行为,记录运行轨迹,查找程序问题。可惜磁盘的空间是有限的,日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。为了节省空间和整理方便,日志文件经常需要按!时间或!大小等维度分成多份,删除时间久远的日志文件。
(2)工作原理
- 配置种类:
主配置文件:/etc/logrotate.conf// 决定每个日志文件如何轮转
子文件配置:/etc/logrotate.d/* //自定义配置,便宜管理
- 观察主文件和子文件
(3)主配置文件介绍
-
vim /etc/logrotate.conf
-
weekly //轮转的周期,一周轮转
-
rotate 4 //保留4份
-
create //轮转后创建新文件
-
dateext //使用日期作为后缀
-
#compress //是否压缩
-
include /etc/logrotate.d //包含该目录下的子配置文件
-
/var/log/wtmp { //对某日志文件设置轮转的方法
-
monthly //一月轮转一次
-
minsize 1M //最小达到1M才轮转,monthly and minsize(同时达到两个条件)
-
create 0664 root utmp //轮转后创建新文件,并设置权限
-
rotate 1 //保留一份
-
}
-
/var/log/btmp {
-
missingok //丢失不提示
-
monthly //每月轮转一次
-
create 0600 root utmp //轮转后创建新文件,并设置权限
-
rotate 1 //保留一份
-
}
(4)yum日志轮转示例
把未来的时间推移: