日志数据是软件开发人员的数据故障排除数据的有价值且通常不可授权的源,尤其适用于类似的复杂平台Kubernetes.。New Relic提供了一个流利一些输出插件-你可以部署为一个头盔图表-使New Relic的日志Kubernetes收集集群日志数据。

最近,一个客户询问是否可以在为Kubernetes启用NR logging后禁用集装箱或吊舱的日志记录。他们想要禁用来自NGINX服务器的访问日志,以及来自app pods的Node.js日志——因为这些日志对他们来说没有那么有用,也因为他们想通过不向New Relic发送不必要的日志数据来优化成本。

通过这个例子,我们可以讨论两种不同的策略来指示Fluent Bit应该收集哪些日志,应该忽略哪些日志。这两种方法都可以完成任务,但我们将解释为什么第二种策略通常是更好的选择。

策略1:编辑解析器配置

此方法会更改Fluentd的Parser配置,以指定它应收集的日志文件。一旦你有安装配置流畅的位插件,您可以配置插件解析日志数据的方式。

当你安装头盔插件时,configmap.yml设置变量{PATH}:

该路径用于new-relic-fluent-plugin.yml为所有豆荚设置日志尾部/var/log/containers/*.log.。不要使用*.log来跟踪所有的日志,将这个默认路径替换为您的首选路径,如下所示:

这是一个集中的、简单的配置更改,但是在以后的管理中可能会变得复杂。例如,如果开发人员添加了一个新pod或需要新的日志,该怎么办?他们可能无法改变中央配置;或者,如果他们确实有访问权限,这可能会成为一个混乱的情况,人们改变插件的解析器配置。

有关Fluent Bit解析器配置的更多信息,看他们的文件

策略2:使用Kubernetes注释

流利的,Kubernetes注释本质上是过滤器,您可以设置来控制pod发送到Fluent Bit日志处理器管道的日志。更具体地说,当您定义pod的配置时,您可以添加fluentbit。io/exclude,它告诉Fluent Bit,“嘿,不要记录我。”注释值可以表示为“true”或“false”,并且必须包含引号。

重要的:此设置仅在您首先启用时才会被处理K8S-Logging。排除在Fluent Bit Kubernetes过滤器中,该过滤器默认是禁用的。请参考Fluent Bit文档完整列表配置参数选项。

以下是使用的示例POD定义fluentbit.io /排除请求Fluent Bit处理器跳过apache日志:

此时,您已经分散了要处理的日志的配置。这使开发人员在向集群添加新pod时能够更灵活地调整他们的日志需求。

从新的遗物日志获取您需要的Kubernetes

一旦你为Kubernetes启用了New Relic Logs,以下是一些可能的下一步: