supervisord + logrotate实现程序日志按天备份
2017-06-27 18:58
232 查看
概述
supervisord可以实现对进行的监控,自动重启等功能,而logrotate可以根据用户的配置将文件自动备份。本文档说明如何使用supervisor监控一个进行,并每天将被监控的进程产生的日志进行备份,共保留30天日志。需要说明的是,supervisor默认也提供日志备份,但是它提供的是当日志文件达到一定容量后进行备份,这个很方便,但是当想要将每天的日志单独拿出来放到一个文件来说就不是很方便了。
本文档综合了supervisor的功能和logrotate的功能,最终实现了将程序输出的日志以天为单位进行保存,并且保存指定天数的日志,从而避免日志文件消耗过多磁盘资源的问题。
supervisor配置
# /etc/supervisor/conf.d/my_app.conf [program:my_app] directory=/opt/%(program_name)s command=/opt/%(program_name)s/run stderr_logfile=/var/log/supervisor/%(program_name)s_stderr.log stdout_logfile=/var/log/supervisor/%(program_name)s_stdout.log # no limit on the size stdout_logfile_maxbytes=0 stderr_logfile_maxbytes=0 # no backup with supervisor stdout_logfile_backups=0 stderr_logfile_backups=0
要使用logrotate需要确保在supervisor的配置的配置中
xxx_logfile_maxbytes=0以及
xxx_logfile_backups=0的存在,这样supervisor自己不会进行日志的备份,从而实现用logrotate来进行日志备份的管理。
logrotate配置
# /etc/logrotate.d/my_app /var/log/supervisor/my_app_*.log { daily rotate 30 . # num of backups copytruncate delaycompress # today and yesterday will not compress compress missingok notifempty }
说明: 备份出来的日志名称为
xxx.log.1和
xxx.log.2.gz,如果不需要压缩可以将
compress和
delaycompress选项去掉.
logrotate配置项
copytruncate 首先将目标文件复制一份,然后在做截取(truncate)。这样做就防止了直接将原目标文件重命名引起的问题。rotate 备份的数量
daily, weekly, monthly, or yearly 每天、星期、月或者是年备份一次
size 目标文件达到一定大小后进行备份
参考文献
easy-logging-with-logrotate-and-supervisord/etc/logrotate.conf && /etc/logrotate.d/*
相关文章推荐
- 运维中的日志切割操作梳理(Logrotate/python/shell脚本实现)
- 运维中的日志切割操作梳理(Logrotate/python/shell脚本实现)
- 一个用JAVA实现的日志备份程序
- linux logrotate备份日志
- shell脚本实现:每周 5 使用 tar 命令备份/var/log 下的所有日志文件
- Jakarta Commons Logging(JCL)之应用篇­­——与Log4j/JDK5 log实现日志输出
- Sync Service for ADO.NET 程序调试 - 使用Tracing生成LOG(数据同步的日志) [DEVICE篇]
- 使用Trace实现程序日志
- C# 实现记录每个线程log日志
- Windows平台下程序日志的设计和实现(下:代码)
- 使用Trace实现程序日志
- 安装程序配置服务器失败。参考服务器错误日志和 C:/WINDOWS/SQLSTP.LOG 了解更多信息
- Windows平台下程序日志的设计和实现(上:设计、实现和应用)
- Windows平台下程序日志的设计和实现(上:设计、实现和应用)
- 记录程序日志(日志实现和统一接口)
- 程序log日志 c#
- Python实现博客日志自动提交程序
- Windows平台下程序日志的设计和实现(下:代码)
- 安装sql server 2000时又出现:安装程序配置服务器失败。参考服务器错误日志和 C:/WINNT/sqlstp.log 了解更多信息。
- commons.logging1.1.1源代码研究(3)-- 日志器Log接口,SimpleLog实现