1、为什么要进行日志分割?

nginx默认将日志信息写在一个文件中,时间一久日志文件中条目越来越多,文件越来越大,不方便查看,备份的时候也不需要备份重复的信息,故需分割日志,将日志按小时,天,周…分割,写到不同的日志文件中。

2、日志分割的原理

通过linux自定义脚本,完成日志的分割和备份,使用定时任务,实现自动备份。

2、日志分割如何操作?

(1)对nginx服务器上面的日志进行日志切割(手动方式)
第一步:查看nginx服务器的日志都有哪些类型

日志名称

日志类型

access.log

存放成功访问nginx服务器的日志信息

error.log

存放访问nginx服务器失败的日志信息

nginx.pid

严格来说这个不算日志,里面存放的是nginx进程的pid

nginx 配置日志按天切割 nginx日志自动切割_日志文件


nginx 配置日志按天切割 nginx日志自动切割_nginx_02


只有这个服务开启时,该文件才存在:

nginx 配置日志按天切割 nginx日志自动切割_日志文件_03


第二步:查看当前时刻nginx服务器日志的大小,进行压力测试,增大访问日志文件

nginx 配置日志按天切割 nginx日志自动切割_nginx服务器_04


里面的内容太少了,因为我的nginx服务器是实验才搭建起来的,只测试过几次,因此内容少,实际企业当中日志的信息量是非常大的。

[root@server2 httpd]# ab -c 1000 -n 1000 http://192.168.13.134:8080/index.html     //-c表示访问并发量,-n表示访问次数

关于压力测试命令ab使用方法,可以点击这里

nginx 配置日志按天切割 nginx日志自动切割_日志文件_05


####查看日志文件大小:

[root@server2 logs]# du -sh access.log 
320K	access.log

nginx 配置日志按天切割 nginx日志自动切割_nginx 配置日志按天切割_06

第三步:进行手动日志切割

[root@server2 logs]# mv access.log `date +%F -d -1day`_access.log
mv: overwrite ‘2020-10-29_access.log’? y
[root@server2 logs]# ls
2020-10-29_access.log   error.log  nginx.pid
[root@server2 logs]# /usr/local/nginx/sbin/nginx -s reopen   //重新生成一个日志文件来存放今天的日志
[root@server2 logs]# ls
2020-10-29_access.log  access.log  error.log  nginx.pid
[root@server2 logs]# cat access.log 
[root@server2 logs]# ab -c 1000 -n 1000 http://192.168.13.134:8080/index.html

时间节点是9:59分钟,所有日志分割进了自定义 的时间日志文件

nginx 配置日志按天切割 nginx日志自动切割_nginx 配置日志按天切割_07


时间节点为10:00,所有的日志放进了access.log日志文件中

nginx 配置日志按天切割 nginx日志自动切割_nginx服务器_08


(2)对nginx服务器上面的日志进行日志切割(脚本方式)

第一步:在nginx服务的日志目录下面编写脚本,给权限

nginx 配置日志按天切割 nginx日志自动切割_nginx服务器_09


第二步:建立目录

nginx 配置日志按天切割 nginx日志自动切割_nginx_10


执行脚本,查看日志是否自动切割备份

nginx 配置日志按天切割 nginx日志自动切割_日志文件_11


编写定时任务,使实际企业当中的服务器每天晚上的24:00准时去进行日志切割

nginx 配置日志按天切割 nginx日志自动切割_nginx 配置日志按天切割_12