flume

                    flume原官方本就没实现支持k8s或者其他容器部署,虽然能找到一些镜像,但没啥人用,因为坑就在这里

                    flume最常用的source类型,taildir,可以监控指定的多个文件,一旦文件内有新写入的数据,就会将其写入到指定的sink内,但如果部署到容器上,flume就必须通过挂载监听文件,但这样就会有问题。小丑竟是我自己,如果用另外的pod往挂载的文件写日志,没问题,如果收动修改文件就有问题。。。还有待研究

           fluent

                    这个官方确实是支持k8s以及容器部署,应该说支持的不错,但如果你安照fluent官方和k8s官方的文档来操作,会坑死你。比如,fluent官方的实例,让你挂载的配置文件是fluentd.conf,但对应给你的镜像确是要读取fluent.conf的,不然就报错。又比如,如果你按k8s官方文档用ConfigMap配置,你也会得到解析报错,因为即使你在ConfigMap这样写

                    

apiVersion: v1
kind: ConfigMap
metadata:
  name: fluentd-config-1
data:
  fluent.conf:
    <source>
      @type http
      port 9880
      bind 0.0.0.0
    </source>

    <match **>
      @type stdout
    </match>

最终被挂载进去,生成的文件是这样的

 <source>@type http port 9880 bind 0.0.0.0</source>
 <match **>@type stdout</match>

 

然而,就是这个鬼东西,标签的一行是不允许有别的东西的,只能是一个标签!!!!!!!!!!!!!!!!!!!!!!!!!

 

       

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐