我需要从我的ECS instances
和documentation收集自定义指标
这些是我需要遵循的步骤
看来我可以
对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建议的唯一解决方案是将colletd
与curl plugin和cloud watch agent
一起使用。
由于某些缩放问题,因此请勿在实例中运行cloudwatch agent
和collectd
。我想将它们作为容器运行。
问题:
有什么方法可以运行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
};
};
在不同的容器中但在同一台机器上运行?
答案 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"
}
}