文档章节

使用logrotate配置Nginx日志轮替

prpr
 prpr
发布于 2015/08/27 19:06
字数 795
阅读 489
收藏 13

使用logrotate配置Nginx日志轮替

Nginx作为HTTP服务器,每天记录的日志很多,如果不善加管理,没用多久就会把磁盘充满。Apache有rotatelogs程序帮助轮替,而Nginx没有。好在我们的Linux带了logrotate程序帮助我们完成这个任务。

一、实验环境

  1. 操作系统:CentOS 6.6 x64 ( Linux 2.6.32-431.23.3.el6.x86_64 )

  2. logrotate版本:3.7.8-17.el6.x86_64

  3. Nginx版本:nginx/1.6.2

二、logrotate介绍

logrotate是一款专门用来管理日志轮替的程序,各大Linux发行版在安装的时候就已经内置了此程序。

使用方法:

logrotate [OPTION...] <configfile>
    -d, --debug            测试,但不会真正运行(已包含-v选项)
    -f, --force            强制对文件轮替
    -m, --mail=command     后接参数,参数是发邮件命令(替代`/bin/mail`)
    -s, --state=statefile  状态文件的路径
    -v, --verbose          输出轮替过程中的信息到标准输出

三、操作步骤

  1. 创建/etc/logrotate.d/nginx配置文件,写入配置。这里我们nginx日志是位于/data/logs/nginx_access.log/data/logs/nginx_error.log

    shell$ sudo vim /etc/logrotate.d/nginx /data/logs/nginx_access.log /data/logs/nginx_error.log { missingok #如果日志文件不存在,则不报错,直接忽略 notifempty #如果日志文件为空则不执行轮替操作 daily #频次为每天运行 rotate 30 #保留30天的日志 sharedscripts #日志共享脚本,也就是说等access和error两个日志都rotate之后再执行下面的脚本 postrotate #设置脚本在rotate之后执行,对应的有一个选项是prerotate if [ -f /service/nginx/logs/nginx.pid ]; then #设置rotate之后nginx需重新载入配置文件,否则nginx不会将日志写入新的日志文件中 /service/nginx/sbin/nginx -s reload fi endscript }

  2. 测试是否成功。

    shell$ sudo logrotate -vf /etc/logrotate.conf #logrotate.conf中有include /etc/logrotate.d reading config file /etc/logrotate.conf including /etc/logrotate.d reading config file dracut reading config info for /var/log/dracut.log reading config file nginx reading config info for /data/logs/nginx_access.log /data/logs/nginx_error.log reading config file psacct reading config info for /var/account/pacct reading config file syslog reading config info for /var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler

    reading config file yum reading config info for /var/log/yum.log reading config info for /var/log/wtmp reading config info for /var/log/btmp

    Handling 7 logs ...... rotating pattern: /data/logs/nginx_access.log /data/logs/nginx_error.log forced from command line (30 rotations) empty log files are not rotated, old logs are removed considering log /data/logs/nginx_access.log log needs rotating considering log /data/logs/nginx_error.log log needs rotating rotating log /data/logs/nginx_access.log, log->rotateCount is 30 dateext suffix '-20150827' glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' glob finding old rotated logs failed rotating log /data/logs/nginx_error.log, log->rotateCount is 30 dateext suffix '-20150827' glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' glob finding old rotated logs failed renaming /data/logs/nginx_access.log to /data/logs/nginx_access.log-20150827 creating new /data/logs/nginx_access.log mode = 0644 uid = 0 gid = 0 renaming /data/logs/nginx_error.log to /data/logs/nginx_error.log-20150827 creating new /data/logs/nginx_error.log mode = 0644 uid = 0 gid = 0 running postrotate script ......

从以上输出中我们可以看出,两个日志都得到了rotate。

© 著作权归作者所有

共有 人打赏支持
prpr
粉丝 4
博文 17
码字总数 20237
作品 0
南京
系统管理员
私信 提问
Linux学习记录--日志系统

日志系统 日志系统对于一个系统来说是非常重要的,从日志文件我们可以获取到系统的运行状况,协助我们排查问题。 对于CentOs来说,日志系统主要包含2个服务与1个程序 syslogd:记录系统与网络...

tiankefeng0520
2014/03/28
0
0
使用logrotate轮替MySQL的mysql-audit审计日志

最近一段时间发现在一台服务器上的MySQL的audit(http://jim123.blog.51cto.com/4763600/1955487)插件日志没有数据,刚开始以为是配置出问题就进数据库检查了一下发现没有问题,后来发现在M...

往事_Jim_遗
2017/10/06
0
0
linux日志轮替

logrotate日志轮替 logrotate日志切割: 1.防止日志文件过大 2.定期删除旧日志文件 配置文件:rpm -qc logrotate 文件如下 /etc/cron.daily/logrotate /etc/logrotate.conf /etc/rwtab.d/logro...

虚拟化王浩
2017/11/22
0
0
linux 开启独立iptables日志

iptables的日志(log)由syslogd纪录和管理。初始存放在 /var/log/messages里面。自动采取循环纪录(rotation)的方式记录。但是由于混在 messages中,对于管理和监视产生了不便。 由于iptab...

baby神啊
2017/09/17
0
0
使用logrotate切割nginx日志

配置: 1、在/etc/logrotate.d目录下创建一个nginx的配置文件"nginx"配置内容如下 #vim /etc/logrotate.d/nginx /usr/local/nginx/logs/*.log { daily rotate 5 missingok notifempty shared......

技术小胖子
2017/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

AWS自动部署工具codedeploy的部署概述

1)在AWS lambda平台上部署: 三大部分:要部署的内容 --> 部署的配置 --> 更新的lambda函数版本 部署的流程:上传修订的应用程序-->创建一个应用程序-->指定部署组-->指定部署的配置-->指定...

守护-创造
9分钟前
0
0
好程序员教程分享Javascript设计模式

好程序员教程分享Javascript设计模式 方法一 对象字面量表示法   在对象字面量表示法中,一个对象被描述为一组包含在大括号中,以逗号分隔的 name/value 对。对象内的名称可以是字符串或标...

好程序员IT
15分钟前
1
0
fail-fast和fail-safe的介绍和区别

fail-fast和fail-safe 前言 前段时间公司招的实习生在使用迭代器遍历的时候,对集合内容进行了修改,从而抛出ConcurrentModificationException. 然后给他讲解之余也整理了这一篇文章. fail-fa...

群星纪元
17分钟前
0
0
控制反转 IOC

控制反转(Inversion of Control,缩写为IoC)面向对象设计原则,降低代码耦合度 依赖注入(Dependency Injection,简称DI) 依赖查找(Dependency Lookup):容器提供回调接口和上下文条件给...

SibylY
28分钟前
1
0
网络介绍:Kubernetes设计文档

模型和动机 Kubernetes从Docker默认的网络模型中独立出来形成一套自己的网络模型。该网络模型的目标是:每一个pod都拥有一个扁平化共享网络命名空间的IP,通过该IP,pod就能够跨网络与其它物...

xiangyunyan
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部