使用logrotate对nginx/php-fpm做日志转储

  • 2016-12-23
  • 1378
  • 0

230942matkx93adpo3osp6

logrotate是linux系统日志的管理工具,目前主流的Linux发行版上都默认安装有logrotate包。他可以轮换,压缩,邮件系统日志文件。对于Linux 的系统安全来说,日志文件是极其重要的工具。日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。
logrotate可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。本文主要介绍使用logrotate对nginx/php-fpm等日志进行切割转储。

一:logrotate配置文件
/etc/logrotate.conf, 通常不需要对它进行修改。
/etc/logrotate.d/,该目录里的所有文件都会被主动的读入 /etc/logrotate.conf 中执行。另外,如果 /etc/logrotate.d/ 里面的文件中没有设定一些细节,则会以 /etc/logrotate.conf 这个文件的设定来作为默认值。

二:配置nginx

三:配置php-fpm

四:logrotate字段详解

  • daily: 日志文件将按日轮循。其它可用值为‘monthly’,‘weekly’或者‘yearly’。
  • rotate 10: 一次将存储10个归档日志。对于第11个归档,时间最久的归档将被删除。
  • compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。不需要压缩时,用nocompress 参数。
  • sharedscripts:只为整个日志组运行一次的脚本。
  • delaycompress: 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。
  • missingok: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
  • notifempty: 如果日志文件为空,轮循不会进行。
  • create 644 root root: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。
  • postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。
  • size size: 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).
  • errors address: 专储时的错误信息发送到指定的Email 地址。
  • ifempty: 即使是空文件也转储,这个是 logrotate 的缺省选项。notifempty 如果是空文件的话,不转储
  • mail address: 把转储的日志文件发送到指定的E-mail 地址,nomail 转储时不发送日志文件
  • dateext:日志rotate后再后面加日期,例如:access.log轮转后会变为access.log-20130803

五:执行logrotate

1,手动执行

满足转储条件时:

没有满足条件时,如果文件的时间小于一天,则用上面的命令无法生效,此时需要用”-f”强制执行:

2,crond执行
系统默认会自动创建logrotate文件在# /etc/cron.daily/ 下日常执行。

参考链接:

Linux日志文件总管——logrotate

Linux — logrotate 切割 Nginx


上一篇:  下一篇:

评论

还没有任何评论,你来说两句吧

Copyright © 2014-2016 lxlxw All Right Reserved