如何在 Fargate 上使用 Splunk 日志驱动程序执行 Amazon ECS 任务?
2 分钟阅读
0
我想在 AWS Fargate 上使用 Splunk 日志驱动程序执行 Amazon Elastic Container Service(Amazon ECS)任务
简述
您可以使用 Fargate 中来自 Docker 的 Splunk 日志驱动程序,也称为“日志驱动程序”,将你的容器日志发送到企业 Splunk 日志收集器或 Splunk Cloud。
解决方法
设置您的 Splunk Cloud 环境以接收 Fargate 日志
- 使用“免费 Splunk”选项创建 Splunk Cloud 账户。如果您已经有 Splunk 云账户,请跳到步骤 2。有关更多信息,请参阅 Splunk 网站上的 Free Splunk。
- 登录您的 Splunk Cloud 账户。
**注意:**创建账户后,使用您的 Splunk 云 URL、用户名和密码登录。 - 在导航窗格中,选择设置。
- 在数据部分中,选择数据输入。
- 在本地输入部分的操作列中,选择新增。
**注意:**您可以创建 HTTP 事件收集器(HEC)令牌,这样您就可以通过 HTTP 和安全 HTTP(HTTPS)协议向 Splunk 部署发送数据和应用程序事件。 - 在名称中,输入令牌的名称,然后选择下一步。
- 逐步浏览安装向导中的其余页面,然后选择提交来创建 HEC 令牌。
**注意:**您可以保留默认值。 - 使用 curl 或 Docker 测试新令牌。
**注意:**默认情况下,Splunk 监听端口 8088 并接受 /services/collector 路径上的事件。
Curl:
**注意:**将 splunk-token 替换为您之前创建的 HEC 令牌。curl -k https://prd-p-9l79p.splunkcloud.com:8088/services/collector -H "Authorization: Splunk splunk-token" -d '{"event": "Put this message in Splunk"}'
Docker:docker run --publish 80:80 --log-driver=splunk --log-opt splunk-token=splunk token --log-opt splunk-url=https://prd-p-u7z1u.splunkcloud.com:8088 --log-opt splunk-insecureskipverify=true --log-opt splunk-sourcetype=docker-test --log-opt splunk-index=main nginx
**注意:**将 splunk-token 替换为您之前创建的 HEC 令牌。
配置 AWS Secrets Manager 以使用您的 HEC 令牌
**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请参阅 Troubleshoot AWS CLI errors。此外,确保您使用的是最新版本的 AWS CLI。
要将您的 HEC 令牌存储在 Secrets Manager 中,以便 Fargate 可以安全地使用您的令牌,请运行以下命令:
aws secretsmanager create-secret --name splunk-token --secret-string token-value
**注意:**将 splunk-token 替换为您的 HEC 令牌。将 token-value 替换为您的令牌值。
配置具有访问密钥权限的任务执行角色
- 打开 AWS Identity and Access Management(IAM)控制台。
- 在导航窗格中,选择角色。
- 从角色列表中搜索并选择 ecsTaskExecutionRole。
- 选择添加内联策略。
- 选择编辑器的 JSON 选项卡,然后输入以下策略:
注意:如果您使用自定义 AWS Key Management Service(AWS KMS)密钥来加密您的机密,请为您的 KMS 密钥提供kms:Decrypt 权限和 Amazon 资源名称(ARN)。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>", "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>" ] } ] }
- 选择查看策略。
- 对于名称,输入您的策略的名称。
- 选择创建策略。
在 Fargate 上为 Amazon ECS 任务配置任务定义
- 打开 Amazon ECS 控制台。
- 在导航窗格的 Amazon ECS 部分,选择任务定义。
- 选择新建任务定义。
- 选择 Fargate,然后选择下一步。
- 在配置任务和容器定义部分,在任务定义名称中输入任务定义的名称。
- 对于任务角色,选择您之前配置的角色。
- 在任务大小部分中,为任务内存 (GB) 和任务 CPU (vCPU) 输入相应的任务值。
- 在容器定义部分,选择添加容器。
- 根据您的容器需求选择适当的选项。
- 在下拉菜单的日志记录部分,选择将日志导出到 Splunk。
- 对于日志选项中的键和值选项,请输入以下内容:
**键:**splunk-url
**值:**您 splunk 端点(例如:https://prd-p-9l79p.splunkcloud.com:8088/)
**键:**splunk-insecureskipverify
**值:**TRUE
**键:**splunk-token
**ValueFrom:**您之前创建的秘密 ARN - 选择添加。
**注意:**有关 Splunk 代码和配置的更多详细信息,请参阅 GitHub 上的 splunk.go 和 Docker 网站上的 Splunk options。 - 要创建任务定义,请选择创建。
- 创建 Amazon ECS 服务或使用您之前创建的任务定义运行任务。
在 Splunk Cloud 中查看您的日志
在 Splunk Cloud 中检查日志之前,请确保您的任务正在运行。
注意:由于您没有在日志配置中指定 splunk-index,因此默认情况下,您的日志会进入主索引中的 splunk-index。
- 连接到您的 Splunk Cloud 账户。
- 在导航菜单中,选择搜索。
- 在搜索框中输入 index="main"。
**注意:**您可以按照前面的步骤在 Amazon ECS 中为 Amazon Elastic Compute Cloud(Amazon EC2)启动类型创建任务定义。然后,您可以使用任何 ECS 任务中的 Splunk 日志驱动程序将日志发送到 Splunk 日志收集器。
相关信息
AWS 官方已更新 7 个月前
没有评论
相关内容
- AWS 官方已更新 8 个月前
- AWS 官方已更新 7 个月前
- AWS 官方已更新 2 年前
- AWS 官方已更新 4 年前