编程技术分享平台

网站首页 > 技术教程 正文

5、Nginx的日志文件配置与切割(nginx日志字段说明)

xnh888 2024-09-16 07:26:28 技术教程 22 ℃ 0 评论

1、 简介

生产环境中的服务器,由于访问日志文件增长速度非常快,日志太大会严重影响服务器效率,同时,为了方便对日志进行分析计算,须对日志文件进行定时切割。定时切割的方式有按月切割、按天切割、按小时切割等。最常用的是按天切割。

2、 Nginx不支持想Apache一样使用cronlog来轮转日志,但是可以采用以下方式来实现日志文件的切割。

注:kill -user1 信号给Nginx注进程号,让Nginx重新生成一个新的日志文件/data/logs/access.log ,如果nginx.conf配置文件中使用了"pid /usr/local/nginx/nginx.pid"文件的存放路径,我们可以通过这个pid文件获得Nginx的主进程号:

Kill -USER1 `cat /usr/local/nginx/nginx.pid`

如果想每天定时切割日志,还需要借助crontab。我们可以写一个按天切割的日志,然后按年、月份目录存放日志爱 的shell脚本:

Vim /usr/local/nginx/sbin/cur_nginx_log.sh

输入以下内容并保存

另外配置crontab每天凌晨00:00定时执行这个脚本:

Crontab -e

输入以下内容并保存

00 00 * * * /bin/bash /usr/local/nginx/sbin/cur_nginx_log.sh

这个shell脚本和crontab配置主要实现的功能为:

假设今天的日期是2018-1-25,Nginx当前的日志文件为/data/logs/access.log,2018-1-25的00:00会执行cut_nginx_log.sh脚本,cut_nginx_log.sh脚本首先创建一个目录/data/logs/2018/01/,然后将/data/logs/access.log文件移动并重命名为/data/logs/2018/01/access_20180125.log ,在发送kill USER1 信号给Nginx主进程号,告诉Nginx重新生成一个/data/logs/access.log文件。2018-1-26日的日志记录在这个新生成的日志文件中,而/data/logs/2018/01/access_20180125.log 文件,就是2018-01-25的日志文件。

3、 喜欢的可以关注我哦,会持续分享的,下一章《6、log_format和access_log详解》

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表