日志管理
一、日志进程rsyslog
1、rsyslog:系统专职日志程序,处理绝大部分日志记录,系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息等(systemctl status rsyslog.service 查看状态必须是开启的,否则是关闭的不能记录日志信息)。
2、处理日志的进程
观察rsyslog进程:ps aux | grep rsyslog
ls /var/log 内容全是日志文件
boot 启动日志
cron 计划日志
dmesg 系统启动
wtmp 当前登录用户
btmp 最近登录用户
3、常见的日志文件
①、系统主日志
查看系统的主日志:ls /var/log/messages
对主日志计数:cat /var/log/messages |wc -l
找错用tail 看后10行:tail -10 /var/log/messages
tailf /var/log/messages = tail -f /var/log/messages (锁在屏幕,多窗口查看)
②、安全日志
tailf /var/log/secure 认证、安全
③、安装日志
tailf /var/log/yum.log
④、邮件日志
tailf /var/log/maillog
⑤、计划任务日志
tail /var/log/cron
⑥、系统启动日志
tail /var/log/dmesg
4、rsyslog配置:
(1)、相关程序:yum -y install rsyslog 默认已安装
(2)、启动程序:systemctl start rsyslog.service
(3)、相关文件:rpm -qc rysylog
(4)、查看日志管理配置文件:ls /etc/rsyslog*
/etc/rsyslog.conf rsyslog的主配置文件
/etc/rsyslog.d rsyslog 的子配置文件
vim /etc/rsyslog.conf (告诉rsyslog进程什么日志应该存在哪里)
RULES:即规则,是一套生成日志及存储日志的策,有三部分组成,(设备+级别+存放位置)
示例:authpriv.* /var/log/secure SSH信息(同步方式存储---慢)
mail.* -/var/log/maillog 发邮件(异步方式存储----快)
cron.* /var/log/cron 创建任务(同步方式存储---慢)
facility(设备)
1、是系统对某种类型APP事件的定义,如authpriv 是安全事件,cron是计划任务事件。
2、帮助手册 man 3 syslog
设备类型:LOG_SYSLOG syslog自身产生的日志
LOG_AUTHPRIV 安全认证日志
LOG_USER(defaults) 用户相关的日志
程序类型示例:
grep facility /etc/ssh/sshd_config
级别(level)
LOG_INFO 标准信息 次 (信息量大)
LOG_ERR 错误行为 高 (信息量小)
二、日志轮转 logrotate
将大量的日志,分割管理,删除旧日志。
1、工作原理:按照配置进行轮转
主配置文件:/etc/logrotate.conf (决定每个日志文件如何轮转)
子配置文件夹:/etc/logrotate.d/* 自定义配置,便于管理
2、主配置文件介绍
vim /etc/logrotate.conf 主配置文件
weekly 轮转的周期,一周轮转
rotate 4 保留4份(保留的是一个月)
create 轮转后创建新日志文件
dateext 使用日期作为后缀
#compress 是否压缩
include /etc/logrotate 包含该目录下的子配置文件
/var/log/wtmp { 对某日志设置轮转方法
monthly 一个月轮转一次
minsize 1M 最小达到1M才轮转,monthly和minsize要同时达到两个条件
maxsize 与日期异或,达到一个或两个条件
create 0664 root utmp 轮转后创建新文件,并设置权限
rotate 1 保留一份
}
3、yum日志轮转实例
vim /etc/logrotate.d/yum 进入子配置文件,改写规则
/var/log/yum.log {
missingok 丢失不执行
#notitempty 空文件不轮转
#maxsize 30K 达到30k轮转,daily或size
#yearly 一年轮转一次
daily 缩小周期到一天
rotate 3 轮转保留三次
create 0777 root root
}
错误示范:
没有设置日期,即使轮转多次也只有一个新的文件
正确示范:修改时间,手动触发轮转