我正在尝试将我的 ECS Fargate 日志发送到 Datadog。为此,我需要将 Datadog API_KEY 作为logConfiguration
对象中的字段传递。我需要保护我的 API_KEY,因此我通过secretOptions
以下密钥使用 AWS Secrets ManagerlogConfiguration
使用 AWS Secrets Manager 。
我正在按照此处列出的 AWS 步骤进行操作。Datadog 网站的完整步骤可在此处找到
由于某种原因,我没有看到日志显示在 datadog 中。container_definitions
这是资源对象下我的 Terraform 代码的日志配置部分aws_ecs_task_definition
:
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"Name": "datadog",
"Host": "http-intake.logs.datadoghq.com",
"dd_service": "myservice",
"dd_source": "mysource",
"dd_message_key": "log",
"dd_tags": "env:dev",
"TLS": "on",
"provider": "ecs"
},
"secretOptions": [{
"name": "apikey",
"valueFrom": "arn:aws:secretsmanager:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:secret:mysecret"
}]
}
Run Code Online (Sandbox Code Playgroud)
如果我取出secretOptions
并以纯文本形式添加 apikey,日志将显示在 datadog 控制台上:
"logConfiguration": {
"logDriver": "awsfirelens",
"options": …
Run Code Online (Sandbox Code Playgroud) 我计划将我们的应用程序迁移到 AWS Fargate,因此也想为其设置日志记录并将所有日志存储在 cloudwatch 中。我可以看到 Fargate 中有两个选项 - 要么使用默认awslogs
日志驱动程序,要么用于AWS Firelens
收集日志。我阅读了 AWS 文档,但不幸的是仍然无法弄清楚要使用哪个选项以及何时使用。另外,有人还可以就成本方面提出建议吗?使用 awslogs 驱动程序与 aws firelens 将日志发送到同一帐户中的 cloudwatch 之间,哪个选项的成本是多少?[我正在寻找简单、高效且具有成本效益的选择]
公平地说,当您想要将日志数据发送到非AWS工具(例如elastic stack或datadog等)时,我们使用AWS Firelnes,而当您将日志发送到cloudwatch时,我们使用awslogs驱动程序
有人可以建议吗?