我希望将运行在EKS集群上的选择服务的日志转发给CloudWatch,以实现与集群无关的存储和更好的可观察性。
在https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-quickstart.html概述的快速启动之后,我成功地通过Fluent位服务转发了日志,但这也产生了170个Container度量通道。不仅这些指标是不需要的,而且它们的成本似乎也相当高。
如何禁用集群度量的集合,如cpu / memory / network /等,并且只将容器日志转发到CloudWatch?我很难找到这方面的任何文件。
发布于 2022-03-03 15:57:57
我想我想明白了--快速启动指南中的cloudwatch-agent守护进程是发送度量的标准,但它并不是日志转发所必需的。在快速启动cloudwatch-agent文件中具有与yaml相关名称的所有对象都不需要进行日志转发。
发布于 2022-07-06 08:12:23
正如Toms Mikoss建议的那样,您需要删除配置文件中的metrics对象。此文件是在启动时传递给代理的文件。
这适用于“就地”"linux“安装。我还没有在windows上测试过这一点,也没有在EC2上进行测试,但我想它也会类似的。这里的AWS文档说,您也可以通过SSM分发配置,但我仍然认为这里的答案仍然适用。
具有度量的文件示例:
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/nginx.log",
"log_group_name": "nginx",
"log_stream_name": "{hostname}"
}
]
}
}
},
"metrics": {
"metrics_collected": {
"cpu": {
"measurement": [
"cpu_usage_idle",
"cpu_usage_iowait"
],
"metrics_collection_interval": 60,
"totalcpu": true
}
}
}
}没有度量的文件示例:
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/nginx.log",
"log_group_name": "nginx",
"log_stream_name": "{hostname}"
}
]
}
}
}
}作为参考,要为linux服务器启动的命令:
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config \
-m onPremise -s -c file:configuration-file-path这里的AWS文档中的更多细节
https://stackoverflow.com/questions/71339035
复制相似问题