MySQL日志切割工具logrotate
2017-04-18 00:00
1126 查看
背景:
对于MySQL的日志,如果不做处理的话,时间长了会很大,不利于分析问题。比如说错误日志或者慢日志,经过半年一年可能已经很大了,你要想查看内容会很慢,搞不好把系统都可能跑挂。或者当你监控报警的时候提示磁盘空间不足,你登陆服务器发现都是log占用,我想这时候你也是崩溃的。这时候日志的切割和保留就显得比较重要了
操作:
结果:
思考:
对于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。喜欢技术的一起来交流吧
对于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。喜欢技术的一起来交流吧
相关文章推荐
- 使用logrotate工具切割MySQL日志与慢日志分析发送到邮箱
- MySQL日志切割工具logrotate
- 利用logrotate系统工具切割tomcat日志
- Linux的日志文件管理工具——logrotate(linux日志切割与轮循)
- 日志切割工具logrotate解决Tomcat catalina.out日志过大的问题
- logrotate 切割 nginx php mysql 日志
- Apache自带日志切割工具Logrotate和maxage
- 切割日志(mysql,nginx,php tomcat)使用logrotate
- nginx日志切割工具logrotate若干问题
- 利用logrotate系统工具切割tomcat日志
- centos自带的日志切割工具 --- logrotate
- mysqlsla慢查询日志分析工具
- mysql慢查询日志报表工具mysqlsla
- MySQL日志分析工具
- mysql慢日志分析工具之mysqlsla学习笔记
- 5种mysql日志分析工具比拼
- linux系统日志管理工具logrotate之批量部署脚本
- MYSQL启用日志,查看日志,利用mysqlbinlog工具恢复MySQL数据库
- 用 Java 实现的日志切割清理工具
- linux系统日志管理工具logrotate之原理详述