从S3下载云日志并将它们合并成一天的单一日志文件。
项目描述
merges3logs
从S3下载云日志并将它们合并成一天的单一日志文件。
安装
pip install merges3logs
用法
按以下说明设置配置文件。
运行
merges3logs path/to/config.ini
这将获取昨天的日志(UTC)。要运行不同日期,运行
merges3logs path/to/config.ini --date YYYY-MM-DD
运行时间
某些日期的日志行将出现在下一天的日志文件中。这是因为一天的最后部分要直到下一天才会刷新,而写出的文件将带有那天日期。这些日期都在UTC。根据您的日志配置,所有一天的最后日志可能需要数小时才能刷新到S3。
因此,您可能希望在午夜后至少几小时运行此程序。
您下载的下一天的日志将被缓存,并且第二天不会重新下载。
配置
大部分配置通过".ini"风格的配置文件完成。以下是一个示例
[AWS]
AccessKey = XXX
SecretKey = XXX
[S3]
# Bucket to download log files from
BucketName = mylogsbucket
# The prefix of the logfiles to download.
# The "%" must be doubled, strftime format specifiers may be used
Prefix = path/to/logfileprefix_log-%%Y-%%m-%%d-
# Number of parallel downloads to do
MaxWorkers = 10
[Local]
# Directory to write files downloaded from S3
CacheDir = /path/to/mylogsbucketcache
# Directory to write merged logfiles to
DestDir = /path/to/merged-logs
# .gz is added to this logfile name
# The "%" must be doubled, strftime format specifiers may be used
DestFilename = webworkers-cloudfront-%%Y-%%m-%%d.log
# Remove the day's cached logfiles after a successful run?
RemoveFiles = False
详情
- AWS指定了您的访问和密钥。
- S3.BucketName是您的存储桶名称。
- S3.Prefix 是特定日期的日志文件名的“前缀”。S3 前缀是从桶名之后到包括日期在内的所有内容,日期使用 "strftime()" 格式编码,但 "%" 需要加倍(因为 INI 格式否则会解释它们)。
- S3.MaxWorkers 是运行以获取日志的下载作业数量。根据您在 Cloudfront 中的日志配置以及服务的访问范围,这可能是每天成千上万的日志文件。因此,并行运行下载可以真正加快速度。
- Local.CacheDir 是存储已下载日志文件的目录路径。此目录需要设置清理作业以防止其无限制增长。另请参阅 "Local.RemoveFiles"。
- Local.DestDir 是合并日志文件将被写入的目录。
- Local.DestFilename 是将写入 DestDir 的文件名,使用 "strftime()" 格式指定日期。
- Local.RemoveFiles,如果为 "True",将在成功运行后将缓存目录中的日期文件删除。如果为 "False",则保留它们,您需要设置 cron 作业或类似作业来删除它们。这可能主要用于测试,因此重复下载是不必要的。默认为 "True"。
清理
merges3logs 将日志文件下载到缓存目录中,然后从该目录中的文件进行处理。您可以在运行后使用 "Local.RemoveFiles" 删除它们,或设置 cron 作业等。
find /path/to/cachedir -type f -mtime +3 -exec rm {} +
无论如何,设置缓存清理是值得的,因为它们可能很大,并且在程序因任何原因失败时可能会积累文件。
您还需要清理目标日志目录,尽管它的增长速度要慢得多(日志被压缩且每天只有一个文件)。例如,可以使用 logrotate 或
find /path/to/merged-logs -type f -mtime +60 -exec rm {} +
作者
由 Sean Reifschneider 编写,2023 年 10 月。
许可证
CC0 1.0 通用,有关更多信息请参阅 LICENSE 文件。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分发
merges3logs-1.0.1.tar.gz (9.2 kB 查看散列)
构建分发
merges3logs-1.0.1-py3-none-any.whl (11.6 kB 查看散列)
关闭
merges3logs-1.0.1.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | bea61c0b27d8cddcbf1080813044539c216160a409dfa79e710d137884fdfdcc |
|
MD5 | 02b4fdcdd19a590c06e45820e4217d09 |
|
BLAKE2b-256 | 885309b5128a211f77f026aae7ad7b7c829563ddffe5858c018160f707bfea65 |
关闭
merges3logs-1.0.1-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 92283441937a336d0294ed87478761da2e409a375d42ef8bf4fea60c38f03241 |
|
MD5 | c9fbb7e9f1d071be8854d968d34a0243 |
|
BLAKE2b-256 | 698e8e279800c1baee1697b2e5519c71d704778f2e1eb6486126d5259b4757d5 |