MySQL日志切割工具logrotate

背景:

对于MySQL的日志,如果不做处理的话,时间长了会很大,不利于分析问题。比如说错误日志或者慢日志,经过半年一年可能已经很大了,你要想查看内容会很慢,搞不好把系统都可能跑挂。或者当你监控报警的时候提示磁盘空间不足,你登陆服务器发现都是log占用,我想这时候你也是崩溃的。这时候日志的切割和保留就显得比较重要了

 

操作:

root@rpc0804:/etc/logrotate.d# cat /etc/logrotate.conf 
......
include /etc/logrotate.d
......
root@rpc0804:/home/worker/mysql/log# cd /etc/logrotate.d/
root@rpc0804:/etc/logrotate.d# cat mysql-slow-logs 
/home/worker/mysql/log/mysql-slow.log {
     daily
     dateext
     compress
     missingok
     notifempty
     sharedscripts
     create 640 mysql mysql
     postrotate
        /bin/mysql -e 'select @@global.slow_query_log into @sq_log_save; set global slow_query_log=off; select sleep(5); FLUSH SLOW LOGS; select sleep(10); set global slow_query_log=@sq_log_save;' 
     endscript
     rotate 10
root@rpc0804:/etc/logrotate.d# cd /etc/cron.daily/
root@rpc0804:/etc/cron.daily# ls
0yum-daily.cron*  certwatch*  logrotate*  man-db.cron*  mlocate*  rhsmd*  rkhunter*
root@rpc0804:/etc/cron.daily# cat logrotate 
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

 

结果:

root@rpc0804:/home/worker/mysql/log# ll mysql-slow.log*
-rw-r----- 1 mysql mysql 206087 Apr 18 11:12 mysql-slow.log
-rw-r----- 1 mysql mysql 382418 Apr 14 03:26 mysql-slow.log-20170414
-rw-r----- 1 mysql mysql  37606 Apr 15 03:28 mysql-slow.log-20170415.gz
-rw-r----- 1 mysql mysql  32419 Apr 16 03:44 mysql-slow.log-20170416.gz
-rw-r----- 1 mysql mysql  31344 Apr 17 03:09 mysql-slow.log-20170417.gz
-rw-r----- 1 mysql mysql  32242 Apr 18 03:13 mysql-slow.log-20170418.gz

 

思考:

对于MySQL的error log可以这样搞,但是对于slow log这样搞有点不合适,不利于分析和优化,比较好的措施是对于slow log 用脚本进行按天切割,然后再用pt-query-digest对慢日志进行分析,把分析结果邮件发给DBA和对应的开发。

 

参考:

https://oguya.ch/posts/2016-04-13-safely-rotating-mysql-slow-logs/ 

http://www.linuxcommand.org/man_pages/logrotate8.html

为了方便大家交流,本人开通了微信公众号,和QQ群291519319。喜欢技术的一起来交流吧

转载于:https://my.oschina.net/u/3023401/blog/881769

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值