amazon-web-services - 使用 .ebextensions 记录流式传输和权限
问题描述
我正在尝试流式传输我的应用程序写入的日志文件。我使用https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/instance-configuration/logs-streamtocloudwatch-linux.config作为起点。不幸的是,这似乎/etc/awslogs
不再是添加额外 CloudWatch 配置的正确路径。
我发现我可以将文件放入/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/my.json
以使其工作。但我无法创建此文件并使 CloudWatch 使用.ebextensions
. 我尝试使用具有以下内容的文件来执行此操作。部署后文件不存在。如果我使用 awsdocs 建议的文件名,则该文件已创建。
.ebextensions/02-logs-streamtocloudwatch.config
:
files:
"/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/my.json" :
mode: "000644"
owner: root
group: root
content: |
{
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/eb-docker/containers/eb-current-app/my.log",
"log_group_name": "/aws/elasticbeanstalk/my-env/var/log/eb-docker/containers/eb-current-app/my.log",
"log_stream_name": "{instance_id}"
}
]
}
}
}
}
另外,我的日志文件现在应该具有666
权限(我知道这不是想法)。使用创建/opt/elasticbeanstalk/hooks/appdeploy/post/99_permissions.sh
包含以下内容的文件.ebextensions
似乎也不起作用。
.ebextensions/04-permissions.config
:
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_dbg_permissions.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
chmod 666 /var/log/eb-docker/containers/eb-current-app/dbg.log
关于如何在 Beanstalk 中使用 .ebextensions 和/或 CloudWatch 配置,我缺少什么?
我不仅想解决这个问题,还想了解问题(何时/如何创建/修改文件)。我很感激任何帮助...
解决方案
感谢@Marcin 的回答,我能够将我的日志文件添加到日志流配置中:
.platform/hooks/postdeploy/02-logs-streamtocloudwatch.sh
#!/bin/bash
echo '{
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/eb-docker/containers/eb-current-app/my.log",
"log_group_name": "/aws/elasticbeanstalk/my-env/var/log/eb-docker/containers/eb-current-app/my.log",
"log_stream_name": "{instance_id}"
}
]
}
}
}
}' > "/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/my.json"
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a stop
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a start
推荐阅读
- c# - C# Razor 重定向到 .NetCore 5 中具有自定义路由的页面
- post - 如果登录 POST 请求中的凭据在没有加密的情况下可见,是否可以?
- jenkins - 如何从jenkins构建参数groovy设置环境变量
- python - 在几次错误猜测后,如何添加提示以显示?
- javascript - 选中单选按钮时不显示 Div
- r - 如何链接浏览器中上传的 Shiny App 和 Rmd?
- typescript - 如何在嵌套对象字段上使用三元运算符来验证我的打字稿类型
- mysql - MySQL大用户数据存储
- c++ - c ++将应用程序窗口保存到文件产生“不正确”区域?
- nextflow - RNA-seq 示例工作流程中的 nextflow .collect() 方法