如何通过docker化cloudwatch代理并收集来收集指标?

时间:2019-09-26 16:12:18

标签: amazon-web-services docker amazon-cloudwatch

我需要从我的ECS instancesdocumentation收集自定义指标 enter image description here

这些是我需要遵循的步骤

看来我可以

  • 对cloudwatch代理进行Docker化(似乎是already done,但缺少文档)

  • Dockerize收集的守护程序

为什么要通过dockerize或不使用awslogs驱动程序来收集指标?

当前,我们已经有一些services作为由amazon ecs管理的docker实例运行,并配置为使用awslog driver将日志发送到amazon cloudwatch logs

但是为了从服务中收集更多的自定义指标,例如number of requests per particular user from service a,aws建议的唯一解决方案是将colletdcurl plugincloud watch agent一起使用。

由于某些缩放问题,因此请勿在实例中运行cloudwatch agentcollectd。我想将它们作为容器运行。

问题:

有什么方法可以运行cloudwatch agent in docker container来读取collectd daemon的度量标准,而var func_1 = function func_1(){ // 300 lines of code var func_2 = function func_2(){ // few lines of code }; }; 在不同的容器中但在同一台机器上运行?

1 个答案:

答案 0 :(得分:1)

您不需要在容器中运行cloudwatch代理,不要忘记经验法则,每个容器一个进程。

将应用程序日志推送到容器的stdout或stderr所需要的所有操作,而docker守护程序将负责处理它。

重要配置:

您需要在任务定义中将日志驱动程序设置为AWS日志驱动程序。

Amazon CloudWatch Logs日志记录驱动程序

  

awslogs日志记录驱动程序将容器日志发送到Amazon CloudWatch Logs。可以通过AWS管理控制台检索日志条目   或AWS开发工具包和命令行工具。

在任务定义中指定日志配置

  

在您的容器可以将日志发送到 CloudWatch 之前,您必须   在任务定义中为容器指定awslogs日志驱动程序。   本节介绍了要使用的容器的日志配置   awslogs日志驱动程序。有关更多信息,请参见创建任务。   定义。

   "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-group": "awslogs-mysql",
                    "awslogs-region": "us-west-2",
                    "awslogs-stream-prefix": "awslogs-example"
                }
            }

enter image description here

AmazonECS-using_awslogs

enter image description here