nginx实现日志分割及备份

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

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

2、日志分割的原理

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

2、日志分割如何操作?

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

日志名称 日志类型
access.log 存放成功访问nginx服务器的日志信息
error.log 存放访问nginx服务器失败的日志信息
nginx.pid 严格来说这个不算日志,里面存放的是nginx进程的pid

nginx实现日志分割及备份_第1张图片
nginx实现日志分割及备份_第2张图片
只有这个服务开启时,该文件才存在:
在这里插入图片描述
第二步:查看当前时刻nginx服务器日志的大小,进行压力测试,增大访问日志文件

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

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

关于压力测试命令ab使用方法,可以点击这里
nginx实现日志分割及备份_第3张图片
####查看日志文件大小:

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

在这里插入图片描述

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

[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实现日志分割及备份_第4张图片
时间节点为10:00,所有的日志放进了access.log日志文件中
nginx实现日志分割及备份_第5张图片
(2)对nginx服务器上面的日志进行日志切割(脚本方式)
第一步:在nginx服务的日志目录下面编写脚本,给权限

nginx实现日志分割及备份_第6张图片
第二步:建立目录
nginx实现日志分割及备份_第7张图片
执行脚本,查看日志是否自动切割备份
nginx实现日志分割及备份_第8张图片
编写定时任务,使实际企业当中的服务器每天晚上的24:00准时去进行日志切割
nginx实现日志分割及备份_第9张图片

你可能感兴趣的:(nginx实现日志分割及备份)