系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,得知谁进行了某些违规操作。
日志主要有两类,一类是系统专职日志程序,与系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息,处理绝大部分日志记录;还有一类是httpd/nginx/mysql: 各类应用程序,可以以自己的方式记录日志。
.rsyslog就是记录日志的程序,我们可以通过systemctl status rsyslog 来查看rsyslog程序是否在运行,默认情况下它是开启自启的,并且正在运行。
常见的日志文件:# tail /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 //和系统启动相关日志
rsyslog配置:
1:首先安装rsyslog,和logroate yum -y install rsyslog logrotate
2:启动程序:systemctl start rsyslog.service 查看rsyslog状态 systemctl status rsyslog
3:观察相关的配置文件:rpm -qc rsyslog 其中/etc/rsyslog.conf 是rsyslogd的主配置文件,/etc/sysconfig/rsyslog 是rsyslogd相关文件,定义级别 /etc/logrotate.d/syslog和日志办轮转相关;
/etc/rsyslog.conf中有一个RULES:即规则,是一套生成日志,以及存储日志的策略。在/etc/rsyslog.conf中我们可以对日志存放文件进行修改,修改之后原来的日志存放文件将不再存放文件,而是由新改的文件进行日志存储,一般不建议修改。RULES即规则,有三部分组成(由设备+级别+存放位置);例如:cron(设备).*(级别) /var/log/cron(存放位置),更改这里的存放位置就能够更改日志存放。级别*意思是不区分级别,所有cron设备的日志都存放在后面的目录里。设备是系统对某种类型APP事件的定义。如AUTHPRIV是安全事件,CRON是计划任务事件。用来收集同类程序日志。关于程序和设备的联系问题,程序自身会决定将日志交给哪类设备。如SSH程序会选择安全类设备。
设备类型: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 打印机设备 LOG_LOCAL0 through LOG_LOCAL(1-7) 用户自定义设备
级别:LOG_EMERG 紧急,致命,服务无法继续运行,如配置文件丢失
LOG_ALERT 报警,需要立即处理,如磁盘空使用95%
LOG_CRIT 致命行为 LOG_ERR 错误行为
LOG_WARNING 警告信息 LOG_NOTICE 普通,重要的标准信息
LOG_INFO 标准信息 LOG_DEBUG 调试信息,排错所需,一般不建议使用
日志 记录了程序运行时各种信息。通过日志可以分析用户行为,记录运行轨迹,查找程序问题。可惜磁盘的空间是有限的,日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。为了节省空间和整理方便,日志文件经常需要按!时间或!大小等维度分成多份,删除时间久远的日志文件。
配置文件种类:主配置文件:/etc/logrotate.conf, 决定每个日志文件如何轮转,子配置文件夹:/etc/logrotate.d/*自定义配置,便于管理。
主配置文件介绍:weekly //轮转的周期,一周轮转 rotate 4 //保留4份
create //轮转后创建新文件 dateext //使用日期作为后缀
#compress //是否压缩 include /etc/logrotate.d //包含该目录下的子配置文件
对某日志文件设置轮转的方法
/var/log/wtmp { //对wtmp日志文件设置轮转的方法
monthly //一月轮转一次
minsize 1M //最小达到1M才轮转,monthly and minsize(同时达到两个条件)
create 0664 root utmp //轮转后创建新文件,并设置权限
rotate 1 //保留一份
}
日志轮转实例:/var/log/yum.log
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
}