

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 第 1 步：设置 Amazon S3 存储桶和 Fluent Bit 配置
<a name="batch-host-logs-s3-setup"></a>

创建 Amazon S3 存储桶来存储上传的日志文件和每个实例在启动时下载的Fluent Bit配置。Amazon S3 存储桶在两个前缀下组织内容。前`ecs-logs/`缀存储每个实例上传的压缩日志文件，按实例 ID 整理。前`fluent-bit/`缀存储每个实例在启动时下载的配置文件。

您将Fluent Bit配置文件上传到前`fluent-bit/`缀。其中包括主配置、解析器定义和 Lua 编辑脚本。

示例配置文件可在[配套 GitHub 存储库中找到](https://github.com/aws-samples/sample-batch-host-level-logs)。我们建议您为工作负载自定义这些示例。查看和调整输入来源、编辑模式和上传间隔以满足您的要求。

------
#### [ Amazon Console ]

1. 打开 Amazon S3 控制台，网址为 [https://console.aws.amazon.com/s3/](https://console.amazonaws.cn/s3/)。

1. 选择 **创建存储桶 **。

1. 在**存储桶名称中**，输入存储桶的唯一名称（例如，{{host-level-logs-bucket}}）。

1. 保持**屏蔽所有公共访问权限**处于启用状态。

1. 在 “**默认加密” 下**，保留默认设置或选择您的首选加密类型。

1. 创建存储桶。

1. 打开您创建的存储桶并选择**创建文件夹**。输入`fluent-bit`作为文件夹名称，然后选择**创建文件夹**。

1. 打开`fluent-bit/`文件夹，选择 ** Upload**，然后从示例存储库上传以下配置文件：
   + `fluent-bit.conf`
   + `parsers.conf`
   + `redact_secret_vars.lua`
   + `redact_ecs_config.lua`
   + `redact_docker_env.lua`

------
#### [ Amazon CLI ]

运行以下命令创建存储桶并上传配置文件：

```
aws s3 mb s3://{{host-level-logs-bucket}}

aws s3api put-public-access-block \
    --bucket {{host-level-logs-bucket}} \
    --public-access-block-configuration \
    "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"

aws s3 cp fluent-bit.conf s3://{{host-level-logs-bucket}}/fluent-bit/
aws s3 cp parsers.conf s3://{{host-level-logs-bucket}}/fluent-bit/
aws s3 cp redact_secret_vars.lua s3://{{host-level-logs-bucket}}/fluent-bit/
aws s3 cp redact_ecs_config.lua s3://{{host-level-logs-bucket}}/fluent-bit/
aws s3 cp redact_docker_env.lua s3://{{host-level-logs-bucket}}/fluent-bit/
```

------

上传配置后，使用以下 Amazon S3 密钥结构Fluent Bit组织日志输出：

```
s3://{{host-level-logs-bucket}}/ecs-logs/{{instance-id}}/{{source-tag}}/YYYY/MM/DD/HHMM-{{uuid}}.log.gz
```

每个实例写入一个由其实例 ID 标识的文件夹。在该文件夹中，日志按源标签（例如、`ecs-agent`、`kernel`）进行组织`docker`，并按日期和时间进一步分区。

通过删除不需要的输入部分或调整收集间隔以满足您的要求来自定义配置。