目录
简介
任务一:rsyslog 系统日志管理 :哪类程序---生的什么日志----放到什么地方
任务二:logrotate日志轮转 将大量的日志,分割管理,删除旧日志。
任务一详解rsyslog
一、处理日志的进程
第一类:rsyslogd: 系统专职日志程序。rsyslogd: 系统专职日志程序。系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息
第二类:httpd/nginx/mysql: 各类应用程序,可以以自己的方式记录日志. 讲解对应程序时会逐步介绍
观察 rsyslogd程序
[root@localhost ~]# ps aux |grep rsyslog
二、常见的日志文件(系统、进程、应用程序)
# 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 //和系统启动相关
网站日志管理
1.安装 httpd
[root@localhost ~]# yum install httpd
[root@localhost ~]# systemctl start httpd //启动httpd
[root@localhost ~]# systemctl stop firewalld //关闭网络防火墙
2.调整网络
一定要网络桥接
[root@localhost ~]# systemctl start network //启动网络
[root@localhost ~]# ip a // 查看IP地址
3.邀请同学或其他人访问你的IP
同学打开真机浏览器,输入你的服务器IP进行浏览
出现这样的页面就成功了
这个时候观察日志:[root@localhost ~]# tailf /var/httpd/access_log
三、rsyslogd配置
1.相关程序
[root@localhost ~]# yum install rsyslog logrotate
2.启动程序
[root@localhost ~]# systemctl start rsyslog.service
3.相关文件
[root@localhost ~]# rpm -qc rsyslog //观察日志程序的配置文件
/etc/rsyslog.conf //rsyslogd的主配置文件(关键)
/etc/sysconfig/rsyslog //rsyslogd相关文件,定义级别(了解一下)
/etc/logrotate.d/syslog 和日志轮转(切割)相关(任务二)
四、主配置文件 /etc/rsyslog.conf
告诉rsyslogd进程什么日志,应该存到哪里。
RULES
[root@localhost ~]# vim /etc/rsyslog.conf
RULES:即规则,是一套生成日志,以及存储日志的策略。
RULES即规则,有三部分组成(由设备+级别+存放位置) RULES由FACILITY+LEVEL+FILE组成。
authpriv.* /var/log/secure(SSH信息)
mail.* -/var/log/maillog(发邮件)
cron.* /var/log/cron(创建任务)
FACILITY&LEVEL
facility设备是系统对某种类型APP事件的定义。如AUTHPRIV是安全事件,CRON是计划任务事件。用来收集同类程序日志。
设备类型:
LOG_SYSLOG //syslogd自身产生的日志
LOG_CRON //调度程序(cron and at)
LOG_MAIL //邮件系统mail subsystem
LOG_AUTHPRIV //安全认证
level级别
LOG_EMERG 紧急,致命,服务无法继续运行,如配置文件丢失
LOG_ALERT 报警,需要立即处理,如磁盘空使用95%
LOG_ERR 错误行为
LOG_INFO 标准信息
LOG_NOTICE 普通,重要的标准信息
LOG_CRIT 致命行为
程序类型示例
关于程序和设备的联系问题,程序自身会决定将日志交给哪类设备。
如SSH程序会选择安全类设备。这一点由开发者定义。
1.修改ssh程序的设备类型
[root@localhost ~]# vim /etc/ssh/sshd_config
#SyslogFacility AUTHPRIV
SyslogFacility LOCAL5
2.修改rsyslog程序的规则
[root@localhost ~]# vim /etc/rsyslog.conf
[root@localhost ~]# vim /etc/ssh/sshd_config
[root@localhost ~]# vim /etc/rsyslog.conf
3.重启rsyslog程序和ssh程序
[root@localhost ~]# systemctl restart rsyslog.service //
[root@localhost ~]# systemctl restart sshd
4.使用其他终端,登录服务器,观察新日志文件。
[root@localhost ~]# tailf /var/log/secure
任务二详解
logrotate日志轮转:
简介
日志 记录了程序运行时各种信息。
通过日志可以分析用户行为,记录运行轨迹,查找程序问题。
可惜磁盘的空间是有限的,日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。
为了节省空间和整理方便,日志文件经常需要按!时间或!大小等维度分成多份,删除时间久远的日志文件。
工作原理
按照配置文件种类配置进行轮转
配置文件种类
主配置文件:/etc/logrotate.conf // (决定每个日志文件如何轮转)
子配置文件夹:/etc/logrotate.d/* //自定义配置便于管理
观察主文件和子文件
[root@localhost ~]# ls /etc/logrotate.conf /etc/logrotate.d/
主配置文件介绍
[root@localhost ~]# 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 //保留一份
}
yum日志轮转实例
轮转的目标文件/var/log/yum.log
配置轮转规则
[root@localhost ~]# vim /etc/logrotate.d/yum
写入图中的内容
missingok //丢失不执行
# notifempty //空文件不论转
# maxsize 30k //达到30k轮转, daily or size
# yearly //或者一年一轮转
daily //缩小周期到1天
rotate 3 //轮转保留3次
create 0777 root root
测试
修改时间,手动触发轮转
正确示范
修改时间
[root@localhost ~]# date 08100101 //date 月日时分
把时间向未来推移
手动触发轮转
[root@localhost ~]# /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
[root@localhost ~]# ls /var/log/yum* //日志文件已经出现多个
[root@localhost ~]# cat /var/lib/logrotate/logrotate.status /记录所有日志文件最近轮转的时间