我有一个kubernetes集群,其中有jenkins和大三角帆吊舱正在运行。我需要实现一种日志记录机制,该机制可以收集日志并将日志发送到splunk服务器。我选择使用fluentd。我已经部署了一套流利的守护程序,以便在每个节点上运行并从每个节点收集日志并发送到splunk服务器。
对于我们使用“ kubectl日志”看到的日志或进入stdout的日志,它运行良好。但是,我需要从詹金斯工作中拾取日志(詹金斯工作构建的控制台输出)。这些日志不会从节点输出到std,而是存储在不可直接访问的容器存储内的 / var / jenkins_home / jobs / XXX / builds /
我愿意为该问题提供任何解决方案。请提出建议。
答案 0 :(得分:0)
在kubernetes的情况下,Fluentd没有任何类似功能,因为kubernetes不允许直接访问任何第三方插件来从容器读取数据。对于STDOUT日志,也首先由kubernetes处理,并保存在节点级别。之后,您将能够看到。
作为解决方法,您可以点击以下链接。
Kubernetes - How to read logs that are written to files in pods instead of stdout/stderr?
答案 1 :(得分:0)
很长距离:
hostpath
目录卷添加到jenkins部署中:
https://kubernetes.io/docs/concepts/storage/volumes/#hostpath 快捷方式: 使用jenkins kubernetes插件将每个作业作为单独的pod运行: https://plugins.jenkins.io/kubernetes/。 然后它将由守护程序分别收集和标记。