零基础学习Linux系统日志管理记录
rsyslog系统日志管理
关心问题:那类程序 --> 产生的什么日志---> 放到什么地方
处理日志的进程
分类:
第一类:
rsyslog:系统专职日志程序
处理绝大部分日志记录
系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息
第二类:
各类应用程序,可以以自己的方式记录日志
常见的日志文件(系统、进程、应用程序)
系统主日志文件:/var/log/messages
认证、安全:/var/log/secure
跟邮件postfix相关:/var/log/maillog
cron、at进程产生的日志:/var/log/cron
和系统启动相关的:/var/log/dmesg
系统审计日志:/var/log/audit/audit.log
yum:/var/log/yum.log
和访问 FTP 服务器相关:/var/log/xferlog
当前登录的用户: /var/log/wtmp
最近登录的用户: /var/log/btmp
所有用户的登录情况: /var/log/lastlog
rsyslogd配置
相关程序:yum isntall logrotate
默认安装
启动程序:systemctl start rsyslog.service
相关文件:rpm -qc rsyslog :
rsyslog的主配置文件:/etc/rsyslog.conf
rsyslog相关文件,定义级别:/etc/sysconfig/rsyslog
和日志轮转相关:/etc/logrotate.d/syslog
主配置文件
告诉rsyslogd进程说明日志应该存放在哪里
/etc/rsyslog.conf:
RULES:
RULES:规则,是一套生成日志、以及存储日志的策略
规则由设备+级别+存储位置组成
RULES由ACILITY+LEVEL+FILE组成
FACILITY&LEVEL:
level级别:
LOG_EMERG:紧急,致命,服务无法继续运行,如配置文件丢失
LOG_ALERT:报警,需要处理,如磁盘空间使用95%
LOG_CRIT:致命行为
LOG_ERR:错误行为
LOG_WARNING:警告信息
LOG_NOTICE:普通,重要的标准信息
LOG_INFO:标准信息
LOG_DEBUG:调试信息,排除所需,一般不建议使用
logrotate 日志轮转
将大量的日志,分割管理,删除旧日志
日志,记录了程序运行时各种信息
通过日志可以分析用户行为,记录运行轨迹,查找程序问题
日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事情。
为了节省空间和整理方便,日志文件经常需要按照!时间或者!大小等维度进行划分为多份,删除时间久远的日志文件
工作原理
按照配置进行轮转:
主配置文件:/etc/logrotate.conf (决定每个日志文件如何轮转)
子文件夹:/etc/logrotate.d/*
主配置文件
/etc/logrotate.conf :
===============全局设置=============
weekly // 轮转周期,一周轮转
rotate 4 // 保留4份
create // 轮转后创建新文件
dateext // 使用日期作为后缀
# compress // 是否压缩
include /etc/logrotate.d // 包含该目录的子配置文件
/var/log/wtmp{ // 对某日志文件设置轮转的方法
monthly // 一月轮转一次
minszie 1M // 最小达到1M才轮转
create 0664 root utmp // 轮转后创建文件,并设置权限
rotate 1 // 保留1份
}
/var/log/btmp{
misksingok // 丢失不提示
monthly // 每月轮转一次
create 0600 root utmp // 轮转后创建文件,并设置权限
rotate 1 // 保留一份
}