我如何过滤kubernetes上的fluentD日志?

问题描述

我的kubernetes启用了活动功能,并像这样登录应用程序:

kubectl logs -n example-namespace example-app node-app
::ffff:127.0.0.1 - - [17/Sep/2020:14:12:19 +0000] "GET /docs HTTP/1.1" 301 175
::ffff:127.0.0.1 - - [17/Sep/2020:14:13:19 +0000] "GET /docs/ HTTP/1.1" 200 3104
::192.168.0.1    - - [17/Sep/2020:14:13:19 +0000] "GET /home-page HTTP/1.1" 200 3104
::ffff:127.0.0.1 - - [17/Sep/2020:14:13:19 +0000] "GET /docs HTTP/1.1" 301 175
::ffff:127.0.0.1 - - [17/Sep/2020:14:13:22 +0000] "GET /docs/ HTTP/1.1" 200 3104

我使用fluentD将日志发送到ClowdWatch。 我的fluentD配置:

https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/quickstart/cwagent-fluentd-quickstart.yaml

如何过滤只匹配fluentD

:: 192.168.0.1--[17 / Sep / 2020:14:13:19 +0000]“ GET / home-page HTTP / 1.1” 200 3104

忽略

:: ffff:127.0.0.1--[17 / Sep / 2020:14:13:19 +0000]“ GET / docs HTTP / 1.1” 301175

谢谢!

解决方法

经过研究,我找到了这个解决方案:

<match kubernetes.var.log.containers.**_kube-system_**>
  @type null
</match>

还有这个

  <filter **>
   @type grep
   exclude1 log docs
  </filter>

参考:

https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter/issues/91

https://docs.fluentd.org/filter/grep

编辑

或添加:

      exclude_path ["/var/log/containers/cloudwatch-agent*","/var/log/containers/fluentd*","/var/log/containers/*istio*"]    

此配置忽略模式为 istio 的源文件。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...