Nginx日志按天分割实战

 更新时间:2024年05月20日 11:42:15   作者:龙叔运维  
本文主要介绍了Nginx日志按天分割实战,方便快速按照天的维度分析以及查找报错定位,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

nginx日志文件建议按照天的维度进行分割,方便快速按照天的维度分析以及查找报错定位

一、方式1:定时任务执行分割脚本

1.分割日志脚本

创建一个sh文件,写入以下内容(个别内容根据自己nginx的情况修改)

我这里的文件为 /usr/local/nginx/log_bak.sh

#/bin/bash 
 
yesterday=$(date +%Y-%m-%d)  #取得服务器当前时间
 
savepath_log=' /var/log/nginx_bak'#分割后的日志文件保存目录(注意结尾目录斜杠去掉)
 
nglogs='/usr/local/nginx/logs'  #nginx日志文件目录,具体根据实际地址替换(结尾目录斜杠去掉 以免与下面路径中的"/"重复)
 
 
 
#判断分割日志保存目录是否存在不存在则创建 
 
if [ ! -d ${savepath_log} ]   # 注意 语句之间 空格不可省略,这是bash脚本 不是php脚本那样随和 
 
then
 
mkdir -p ${savepath_log}
 
fi 
 
#通过mv命令将日志移动到分割后的日志目录里,然后发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件。
 
mv ${nglogs}/access.log  ${savepath_log}/access_${yesterday}.log  #具体根据你的实际日志文件名路径 进行修改access.log名字
 
mv ${nglogs}/error.log  ${savepath_log}/error_${yesterday}.log  #具体根据实际日志文件名地址 修改error.log名字
 
mv ${nglogs}/host.access.log  ${savepath_log}/host.access_${yesterday}.log 
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)  #通知nginx重新生成新的日志

2.添加定时任务

crontab -e 后添加下面内容

59  23  * * * /usr/local/nginx/log_bak.sh(自己写的脚本的路径)

这样每天的23点59就会将当天的日志进行备份,并生成新的日志文件继续记录访问日志

二、方式2:logrotate配置分割

1.logrotate简单介绍

logrotate 是一个 Linux系统日志的管理工具。可以对单个日志文件或者某个目录下的文件按时间 / 大小进行切割,压缩操作;指定日志保存数量;还可以在切割之后运行自定义命令。

主流 Linux 发行版上都默认安装有 logrotate 包,如果你的 Linux 系统中找不到 logrotate, 可以使用 apt-get 或 yum 命令来安装。

yum install -y logrotate

下面命令可以查看是否安装了

rpm -ql logrotate

/etc/logrotate.conf是主配置文件,/etc/logrotate.d 文件夹下面是自定义的配置文件

2.新增切割nginx日志的配置文件

在/etc/logrotate.d目录下新增nginx文件 

vi nginx 写入下面内容(我的日志文件目录是/data/wxl/nginx/logs/)

/data/wxl/nginx/logs/

/data/nginx/logs/*.log {
    daily        # 按天分割              
    rotate 30    #保留30个文件 
    create
    sharedscripts   # 所有的文件切割之后只执行一次下面脚本,通知nginx重新打开新的日志文件进行后续写入
    postrotate
        if [ -f /data/nginx/logs/nginx.pid ]; then
            kill -USR1 `cat /data/nginx/logs/nginx.pid`  # 通过USER1信号通知nginx重新打开日志文件
        fi
    endscript
}

这样就会每天定时分割日志了

也可以手动执行命令测试一下能否正常分割日志

logrotate -f /etc/logrotate.d/nginx

3.备份日志压缩

如果分割后的日志想要压缩进行空间节约

可以加上下面配置

    compress           # 以gzip方式压缩
    nodelaycompress    # 所有分割后的文件都进行压缩

 推荐将 nodelaycompress 改为 delaycompress,这样分割后对最新的序号为1的文件不会进行压缩,对其他序号的文件进行压缩,这样可以方便我们查看最新的分割日志。

4.分割日志后缀改为日期

如果想要分割后的日志后缀为当天日志的日期,可以加上下面的配置

    dateext  # 切割后的文件添加日期作为后缀
    dateyesterday # 配合dateext使用,添加前一天的日期作为分割后日志的后缀
    dateformat -%Y-%m-%d  # 格式为2022-02-08

到此这篇关于Nginx日志按天分割实战的文章就介绍到这了,更多相关Nginx日志按天分割内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • CentOS 7下编译安装Nginx 1.11.10教程

    CentOS 7下编译安装Nginx 1.11.10教程

    这篇文章主要介绍了在CentOS 7下编译安装Nginx 1.11.10的方法,文中给出了详细的安装步骤,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • Nginx之location匹配和Rewrite重写跳转方式

    Nginx之location匹配和Rewrite重写跳转方式

    这篇文章主要介绍了Nginx之location匹配和Rewrite重写跳转方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Nginx轻松解决跨域问题的过程详解

    Nginx轻松解决跨域问题的过程详解

    当你遇到跨域问题,不要立刻就选择复制去尝试,请详细看完这篇文章再处理 ,本文给大家详细介绍了Nginx如何轻松搞定跨域问题,文中通过代码示例额和图文介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • nginx 解决首页跳转问题详解

    nginx 解决首页跳转问题详解

    这篇文章主要介绍了nginx 解决首页跳转问题详解的相关资料,需要的朋友可以参考下
    2016-12-12
  • Nginx一键安装部署静态网页的过程详解

    Nginx一键安装部署静态网页的过程详解

    这篇文章主要介绍了Nginx一键安装部署静态网页,主要介绍nginx安装和部署,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2022-06-06
  • Nginx实现动静分离的示例代码

    Nginx实现动静分离的示例代码

    Nginx动静分离是旨在将静态页面与动态页面或静态内容接口与动态内容接口分开,本文主要介绍了Nginx实现动静分离的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 把ImageMagic库编译进nginx服务器的一些必要配置

    把ImageMagic库编译进nginx服务器的一些必要配置

    这篇文章主要介绍了把ImageMagic库编译进nginx服务器的一些必要配置,本文给出了操作步骤和配置参数示例,需要的朋友可以参考下
    2015-06-06
  • Mac M1 Nginx 配置多站点的实现

    Mac M1 Nginx 配置多站点的实现

    这篇文章主要介绍了Mac M1 Nginx 配置多站点的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • CentOS6.6 安装 Tengine 笔记

    CentOS6.6 安装 Tengine 笔记

    这篇文章主要介绍了CentOS6.6 安装 Tengine 笔记,本文讲解了安装必要的编译环境好、安装需要的组件、安装Tengine等步骤,需要的朋友可以参考下
    2015-03-03
  • 关于nginx报错405 not allowed解决方法总结

    关于nginx报错405 not allowed解决方法总结

    这篇文章主要给大家介绍了关于nginx报错405 not allowed解决方法的相关资料,nginx遇到post请求静态文件会得到405错误,文中通过代码介绍的非常详细,也给出了推荐方法,需要的朋友可以参考下
    2023-10-10

最新评论