mysql日志 logrotate_用 logrotate 切割 nginx 、php-fpm、mysql 慢日志

本文介绍了如何使用logrotate工具来有效地切割和管理nginx、php-fpm和mysql的日志文件。logrotate是基于crontab实现的,它会根据预设的规则(如日志大小、日期等)进行日志轮换,并支持压缩和权限设置。对于mysql慢日志,文章提供了一个安全的旋转策略,确保在切换日志时不中断服务。此外,还提到了php-fpm日志的切割方法。
摘要由CSDN通过智能技术生成

logrotate 用于切割日志非常方便。

logrotate 是基于 crontab 实现的。无需守护进程。

安装完定时任务配置在 /etc/crontab.daily/logrotate 文件中,crontab 服务启动的情况下每天会执行一次。

具体 daily 目录的执行时间 CentOS 下在 /etc/anacrontab 中设置

logrotate 的默认操作方式是 mv + create,执行成本非常低,需要应用支持自动打开新文件写,常见的新软件都支持这种方式。

无注释版本

/var/log/nginx/*/*.log {

create 0644 nginx nginx

daily

rotate 10

missingok

notifempty

compress

delaycompress

size=1000M

dateext

sharedscripts

postrotate

/bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true

endscript

}

意义注释

/var/log/nginx/*/*.log { //nginx 日志下按 vhost 分目录配置了不同项目的日志

create 0644 nginx nginx //nginx 日志所属用户的权限

daily//默认会继承/etc/logrorate.conf的全局变量,是weekly

rotate 10 //切割日志最大保留数量,一般存储容量够的话建议保留 15 天以上

missingok

notifempty

compress //是否通过gzip压缩转储以后的日志文件,如xxx.log-20131216.gz ;如果不需要压缩,注释掉就行

delaycompress //延迟压缩

size=1000M //大小到达size开始转存

dateext //这个参数很重要!就是切割后的日志文件以当前日期为格式结尾,如xxx.log-20131216这样,如果注释掉,切割出来是按数字递增,即前面说的 xxx.log-1这种格式

sharedscripts

postrotate

/bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true

endscript

}

由于 MySQL 的特殊性,需要切割日志后清理日志,最佳实践参考此文Rotating MySQL Slow Logs Safely​engineering.groupon.comb415eff9c018c8a49227524e8d901d31.png

/var/mysql/slow_query.log {

nocompress

create 660 mysql mysql

size 1G

dateext

missingok

notifempty

sharedscripts

postrotate

/usr/local/bin/mysql -e 'select @@global.long_query_time into @lqt_save; set global long_query_time=2000; select sleep(2); FLUSH LOGS; select sleep(2); set global long_query_time=@lqt_save;'

endscript

rotate 150

}

php-fpm日志切割

/var/log/php-fpm/*log {

missingok

notifempty

delaycompress

sharedscripts

postrotate

kill -SIGUSR1 `cat /var/run/php-fpm/php-fpm.pid 2>/dev/null` 2>/dev/null || true

endscript

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值