我想创造两个东西的新标准:
我的应用程序生成的日志将会生成多长时间并被轮转?
作为备份服务器如何将日志传输到Amazon S3?
我在使用logrotate,以这种方式旋转和压缩我的日常文件:
{filename}-{year}-{month}-{day}-{r-months}.gz
r-monthsvariables意味着remain-months ,文件应保留在S3中多less个月,应该删除比这个更早的文件。
我的一位朋友提出,我应该compress the logs daily (采用上面提出的新格式),然后将这些文件发送到Amazon S3中的存储桶中。 然后, files older than 7 days should be removed by logrotate (因为它们已经在S3中)。
现在,我们的应用程序使用log4j和其他来生成日志。
1)我们是否应该禁用版本日志,由我们的应用程序生成,只处理logrotate?
2)在你看来,你认为这可能会导致一些应用程序崩溃?
3)这种新的日志格式是好的吗?
4)以及如何发送文件到S3? 现在,我正在使用s3cmd ,你推荐我另一个工具吗?
关于你的问题#4:
您可以将S3存储区挂载为本地分区,并可以像在服务器的文件系统上一样使用S3文件。 有很多 很好的开源工具可用。
但是从我的angular度来看,我build议你看一下我的项目: RioFS ,一个用于安装Amazon S3存储桶的用户空间文件系统。 与其他类似工具相比,项目的目标和主要优势是:简单性,操作速度和无错代码。
目前该项目处于“testing”状态,但已经在一些高负载的文件服务器上运行了相当长的一段时间( RioFS提供了对位于S3处的文件到ftp / sftp服务器的访问)。
我们正在围绕我们的项目build立一个社区,并正在寻求更多的人join我们的项目,讨论未来的计划和帮助进行testing。 从我们这边,我们提供了一个快速的错误修复,并会听取您的要求,添加新的function。
一个快速的方法:
您可以使用以下命令装载存储桶(假设您已经安装了RioFS并导出了AWSACCESSKEYID和AWSSECRETACCESSKEY环境variables):
riofs http://s3.amazonaws.com your_bucket_name /path/to/localfolder
(请参阅项目描述并运行riofs --help帮助获得命令行参数的帮助)
请注意,这个项目还在开发当中,可能还有一些漏洞。 如果您发现某些function无法正常工作,请填写项目GitHub页面上的问题报告。
希望它有帮助,我们期待着看到你join我们的社区!