EKS Fargate:如何禁用容器日志上传至CloudWatch?
在EKS Fargate上禁用容器日志上传至CloudWatch的方法
Fargate上负责日志上传的FluentBit配置,是通过amazon-cloudwatch命名空间下的aws-logging ConfigMap管理的。下面分两种场景给出具体实现方法:
一、完全禁用所有容器日志上传
要彻底停止所有容器日志往CloudWatch上传,有两种可行方案:
移除CloudWatch输出配置
- 执行命令编辑ConfigMap:
kubectl edit configmap aws-logging -n amazon-cloudwatch - 在配置里找到
outputs区块,删除所有Name cloudwatch的[OUTPUT]配置段,保存退出即可。Fargate会自动加载新配置,后续不再上传任何容器日志。
- 执行命令编辑ConfigMap:
添加全局过滤规则丢弃所有日志
- 同样编辑上述ConfigMap,在
filters区块添加以下规则:[FILTER] Name grep Match * Exclude log *
这个规则会匹配所有日志并直接丢弃,达到完全禁用的效果。
- 同样编辑上述ConfigMap,在
二、按命名空间禁用日志上传
如果只想禁止特定命名空间的日志上传,通过过滤规则精准控制即可:
场景1:只允许指定命名空间的日志上传(排除其他)
编辑aws-logging ConfigMap,在filters区块添加:
[FILTER] Name grep Match * Include kubernetes.namespace_name <允许的命名空间1>,<允许的命名空间2>
示例(仅允许default和kube-system的日志上传):
[FILTER] Name grep Match * Include kubernetes.namespace_name default,kube-system
场景2:排除特定命名空间的日志(其他正常上传)
同样在filters区块添加:
[FILTER] Name grep Match * Exclude kubernetes.namespace_name <要排除的命名空间1>,<要排除的命名空间2>
示例(禁止dev和test命名空间的日志上传):
[FILTER] Name grep Match * Exclude kubernetes.namespace_name dev,test
修改完成保存后,FluentBit会自动应用新规则,对应命名空间的日志就不会再上传到CloudWatch了。
注意:你之前设置的
flb_log_cw: "false"只是禁用FluentBit自身的进程日志上传,和容器日志的控制是分开的,上面的配置专门针对容器日志生效。
内容的提问来源于stack exchange,提问作者Ram's
相关产品推荐
相关产品推荐

