logrotate切割nginx日志

简介: 链接配置测试添加定时任务1 链接个人博客: alex-my.xyzCSDN: blog.csdn.net/alex_my2 配置使用系统自带的logrorate来切个nginx日志,位于/usr/sbin/logrotate假设服务器上有两个网站的nginx配置分别如下:去除其它配置信息,只保留了日志相关A网站


1 链接

个人博客: alex-my.xyz

CSDN: blog.csdn.net/alex_my

2 配置

  • 使用系统自带的logrorate来切个nginx日志,位于/usr/sbin/logrotate
  • 假设服务器上有两个网站的nginx配置分别如下:

    • 去除其它配置信息,只保留了日志相关
    • A网站
    ...
    access_log  /data/logs/a.com/access.log;
    error_log   /data/logs/a.com/error.log;
    ...
    • B网站
    ...
    access_log  /data/logs/b.com/access.log;
    error_log   /data/logs/b.com/error.log;
    ...
  • /etc/logrotate.d/下创建一个配置文件 nginx, 内容如下:

    
    # 这里可以添加你想切个的目录,也可以直接使用正则表达式
    
    /data/logs/a.com/*.log
    /data/logs/b.com/*.log
    {
        daily
        rotate 30
        missingok
        dateext
        compress
        delaycompress
        notifempty
        sharedscripts
        postrotate
            if [ -f /usr/local/nginx/nginx.pid ]; then
                kill -USR1 `cat /usr/local/nginx/nginx.pid`
            fi
        endscript
    }
    • 需要注意的是你们的nginx.pid位置,不一定是在/usr/local/nginx/nginx.pid
  • 配置说明

    配置 说明
    daily 指定转储周期为每天
    weekly 指定转储周期为每周
    monthly 指定转储周期为每月
    rotate 转储次数,超过将会删除最老的那一个
    missingok 忽略错误,如“日志文件无法找到”的错误提示
    dateext 切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期
    compress 通过gzip 压缩转储旧的日志
    delaycompress 当前转储的日志文件到下一次转储时才压缩
    notifempty 如果日志文件为空,不执行切割
    sharedscripts 只为整个日志组运行一次的脚本
    prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
    postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

3 测试

  • 执行以下命令进行测试
logrotate -vf /etc/logrotate.d/nginx 
  • 然后到相应的日志目录下查看 (/data/logs/a.com/, /data/logs/b.com/)
  • 应该会有类似以下的文件:
    • access.log
    • access.log-20170626
    • error.log
    • error.log-20170626

4 添加定时任务

  • 每日0点执行脚本

    • 在终端运行 crontab -e
    • 插入以下语句
    0 0 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/nginx
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
运维 监控 应用服务中间件
LNMP详解(十五)——Nginx日志分析实战
LNMP详解(十五)——Nginx日志分析实战
34 0
|
1月前
|
运维 应用服务中间件 Shell
LNMP详解(十六)——Nginx日志切割
LNMP详解(十六)——Nginx日志切割
26 5
|
13天前
|
弹性计算 应用服务中间件 Shell
切割 Nginx 日志文件
【4月更文挑战第28天】
21 0
|
12天前
|
弹性计算 应用服务中间件 Shell
切割Nginx 日志文件
【4月更文挑战第29天】
21 1
|
1月前
|
存储 应用服务中间件 nginx
nginx日志定时切割 按年月日
nginx日志定时切割 按年月日
18 0
|
1月前
|
网络协议 应用服务中间件 Linux
centos7 Nginx Log日志统计分析 常用命令
centos7 Nginx Log日志统计分析 常用命令
152 2
|
1月前
|
运维 监控 应用服务中间件
LNMP详解(十四)——Nginx日志详解
LNMP详解(十四)——Nginx日志详解
30 2
|
4天前
|
C++
JNI Log 日志输出
JNI Log 日志输出
12 1
|
4天前
|
存储 运维 大数据
聊聊日志硬扫描,阿里 Log Scan 的设计与实践
泛日志(Log/Trace/Metric)是大数据的重要组成,伴随着每一年业务峰值的新脉冲,日志数据量在快速增长。同时,业务数字化运营、软件可观测性等浪潮又在对日志的存储、计算提出更高的要求。
|
11天前
|
XML Java Maven
Springboot整合与使用log4j2日志框架【详解版】
该文介绍了如何在Spring Boot中切换默认的LogBack日志系统至Log4j2。首先,需要在Maven依赖中排除`spring-boot-starter-logging`并引入`spring-boot-starter-log4j2`。其次,创建`log4j2-spring.xml`配置文件放在`src/main/resources`下,配置包括控制台和文件的日志输出、日志格式和文件切分策略。此外,可通过在不同环境的`application.yml`中指定不同的log4j2配置文件。最后,文章提到通过示例代码解释了日志格式中的各种占位符含义。