没有在/fluentd/etc/fluent.conf文件中添加fluentd的configmap中的配置

时间:2019-09-12 08:13:34

标签: elasticsearch kubernetes kubernetes-helm fluentd

我正在尝试使用fluentd作为daemonSet,它将在运行我的应用程序pod的节点上运行,并将应用程序日志转换为stdout,以便可以将其发送到弹性搜索。

我创建了一个configmap来加载/添加fluent.conf中的额外配置,但是当我看到守护程序集的日志时,它会显示配置文件的内容,其中我的configmap条目不存在。

我的配置图如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: fluentd-config
  namespace: kube-system
data:
  fluentd.conf: |
    <source>
      type tail
      format none
      read_from_head true
      path /var/log/node1/app.log
      pos_file /var/log/node1/app.log.pos
      tag noappTag
    </source>
    <match **>
      type stdout
    </match>

但是,仍然看不到我的内容。这是正常行为吗?

如果没有,那么我如何确认fluentd能够将写入文件的应用程序日志转换为STDOUT。

  

/var/log/node1/app.log

可在流利的吊舱内使用。我进去检查。

2 个答案:

答案 0 :(得分:0)

您已在pod设置中配置了此configmap? 如果没有,请在pod.yaml文件中将configmap设置配置为卷或环境变量。

答案 1 :(得分:0)

我不知道您运行的是哪个Kubernetes的“发行版”(AKS,EKS,Minikube,Kind,whatsover ...),但是要检查fluentd是否正常运行,您可以在其中之一中获得“内部”支持您的群集节点(使用ssh,docker exec / bin / bash,如我所说,取决于您的K8s“分布”),然后查看文件夹:

/var/log/containers

您应该在其中找到一些文件,它们的名称与应用程序的Pod相同(当然,如果它们在当前Node上部署)。像这样:

my-app-1.0-5699665dcb-s8zmz_namespace-a77f8bbf35bd91b105eed52b248bd80b6923.log 

而且,您应该检查是否存在以“ fluentd”开头的文件,例如:

fluentd-rzrtl_kube-system_fluentd-a49b6151bee16d4abe5c5f2ea4f1e42bf8.log

然后...如果找到它,则可能是流利的工作,然后是“ tail -f it”,则可能会发现诸如WARNERRORS这样的内容, Fluentd.conf(如缺少匹配项,过滤器等)

祝你好运! ;-)