#s3 #logging #aws #log-streaming

nightly app stream-logs-to-s3

将文本缓冲到S3,通过大小和/或时间周期进行批量处理。此功能旨在替代在云中运行的(例如)Apache HTTPD服务器上的rotatelogs。

6个版本

0.1.5 2023年3月22日
0.1.4 2021年4月18日
0.1.3 2021年3月25日

78#s3

每月28次下载

MIT/Apache

64KB
1.5K SLoC

描述

将日志缓冲到S3,通过大小和/或时间周期进行批量处理。此功能旨在替代在云中运行的(例如)Apache HTTPD服务器上的rotatelogs

用法

stream-logs-to-s3[options]s3://bucket/path-template

选项

  • -d, --持续时间#<单位>
    在刷新到S3之前缓冲的最大持续时间;默认为1小时。持续时间可以是humantime crate接受的任何字符串,例如,“1小时12分钟5秒”。
  • -t, --tempdir目录
    用于缓冲的临时目录;默认为(如果设置)$TMPDIR,否则为/tmp
  • -s, --大小#<单位>>
    在刷新到S3之前缓冲的最大大小;默认为1MiB。大小可以是byte_unit crate接受的任何字符串,例如,“123KiB”。
  • -i, --输入<文件名>
    从指定的文件(应为FIFO)读取输入,而不是从stdin;这通常用于测试。
  • -z, --gzip
    使用gzip压缩输出。
  • -h, --帮助
    显示此用法信息

环境变量

stream-logs-to-s3 使用标准的 AWS SDK / Rusoto 方法指定AWS凭据。

  • AWS_DEFAULT_REGION / AWS_REGION
    指定要调用S3的区域。默认为us-east-1
  • AWS_PROFILE
    如果指定,则从~/.aws/credentials文件中的此部分读取AWS凭据。
  • AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_SESSION_TOKEN
    如果指定,则使用指定的AWS凭据。

如果没有指定凭据,则从EC2或ECS元数据端点读取。

路径模板

路径模板可以包括以下变量。时间戳以UTC时区生成。

  • {host_id} — EC2 实例 ID、ECS 任务 ID、主机名或 IP 地址。
  • {year} — 当前年份。
  • {month} — 当前月份,为两位数字字符串。
  • {day} — 当前日期,为两位数字字符串。
  • {hour} — 当前小时,为两位数字字符串。
  • {minute} — 当前分钟,为两位数字字符串。
  • {second} — 当前秒,为两位数字字符串。
  • {unique} — 确保文件名唯一性的唯一标识符。

要在输出中包含原始的 {},请将其加倍:{{ / }}

许可

本程序采用 MIT 和 Apache-2.0 许可证的双重许可。

版权所有 © 2021 Ionosphere, LLC。

依赖项

~19–37MB
~584K SLoC