Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services docker容器中的AWS Cloudwatch代理_Amazon Web Services_Docker_Amazon Cloudwatch - Fatal编程技术网

Amazon web services docker容器中的AWS Cloudwatch代理

Amazon web services docker容器中的AWS Cloudwatch代理,amazon-web-services,docker,amazon-cloudwatch,Amazon Web Services,Docker,Amazon Cloudwatch,我正在尝试将Amazon Cloudwatch代理作为容器安装到我的docker。这是一个内置安装,所以它在本地运行,而不是在AWS Kubernetes或任何类似的系统中运行 我已经为凭据设置了一个基本dockerfile、agent.json和.aws/文件夹,并使用docker compose build实际设置它,然后启动它,但我遇到了一些问题,因为docker不包含或运行systemctl,所以我无法使用aws自己的文档命令运行服务: /opt/aws/amazon-cloudwatc

我正在尝试将Amazon Cloudwatch代理作为容器安装到我的docker。这是一个内置安装,所以它在本地运行,而不是在AWS Kubernetes或任何类似的系统中运行

我已经为凭据设置了一个基本dockerfile、agent.json和.aws/文件夹,并使用
docker compose build
实际设置它,然后启动它,但我遇到了一些问题,因为docker不包含或运行
systemctl
,所以我无法使用aws自己的文档命令运行服务:

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m onPremise -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json -s
当我尝试运行容器时,如果出现错误,此操作将失败:

cloudwatch_1  | /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl: line 262: systemctl: command not found
cloudwatch_1  | unknown init system
我也尝试在/bin内运行/start amazon cloudwatch代理,但没有成功。没有这方面的文件

基本上,问题是如何在前台将其作为服务或流程运行?有人有任何线索吗?否则容器就撑不住了。下面是我的代码:

dockerfile

FROM amazonlinux:2.0.20190508
RUN yum -y install https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
COPY agent.json /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
CMD /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m onPremise -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
agent.json

{
    "agent": {
        "metrics_collection_interval": 60,
        "region": "eu-west-1",
        "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log",
        "debug": true
    }
}

.aws/folder包含配置和凭据,但我从未让代理实际尝试建立连接。

只需使用官方图像
docker pull amazon/cloudwatch代理
它将为您处理所有事情

如果您坚持使用自己的,请尝试以下方法:

FROM amazonlinux:2.0.20190508
RUN yum -y install https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
COPY agent.json  /opt/aws/amazon-cloudwatch-agent/bin/default_linux_config.json
ENV RUN_IN_CONTAINER=True
ENTRYPOINT ["/opt/aws/amazon-cloudwatch-agent/bin/start-amazon-cloudwatch-agent"]

你能提供文件吗?关于如何使用它,docker Hub上似乎没有提供任何文档,您只需要映射您的conf文件`-v/path/config.json:/opt/aws/amazon cloudwatch agent/bin/default\u linux\u config.json`这在docker上不起作用,只在Kubernetes上。它假定您是在EC2实例中启动的。