将fluentd配置为在kubernetes群集中选择Jenkins作业/应用程序日志

qlvxas9a  于 2022-11-21  发布在  Jenkins
关注(0)|答案(3)|浏览(163)

我 有 一 个 kubernetes 集群 , 其中 安装 并 运行 了 jenkins 和 spinnaker pod 。 我 需要 实现 一 个 日志 记录 机制 来 收集 日志 并 将 其 发送 到 splunk 服务 器 。 我 选择 使用 fluentd 来 完成 此 操作 。 我 * * 部署 了 一 个 fluentd 守护 程序 集 * * , 以 在 每个 节点 上 运行 , 并 从 每个 节点 收集 日志 并 将 其 发送 到 splunk 服务 器 。
对于 我们 看到 的 使用 " kubectl 日志 " 的 日志 或 进入 stdout 的 日志 , 它 工作 正常 。 但是 , 我 需要 * * 从 jenkins 作业 中 选择 日志 * *( jenkins 作业 构建 的 控制 台 输出 ) 。 这些 日志 不会 从 节点 输出 ,并 存储 在 * */var/jenkins _ home/jobs/XXX/builds/〈 buildno * * 〉 中 的 容器 存储 中 , 该 容器 存储 * * 不可 直接 访问 * *以 进行 日志 收集 。
我 愿意 接受 任何 解决 这个 问题 的 方法 。 请 提出 建议 。

8wtpewkr

8wtpewkr1#

Fluentd在kubernetes的情况下没有任何类似的功能,因为kubernetes不允许直接访问任何第三方插件来读取容器中的数据。对于STDOUT日志,也首先由kubernetes处理并保存在节点级别。之后您将能够看到。
作为一种解决办法,您可以按照以下链接。
Kubernetes - How to read logs that are written to files in pods instead of stdout/stderr?

u4vypkhs

u4vypkhs2#

道长道:

1.将hostpath目录卷添加到Jenkins部署:https://kubernetes.io/docs/concepts/storage/volumes/#hostpath
1.运行单独的FluentBit/Fluentd从该目录收集日志。它们都支持将路径放在日志的专用字段或标记中:https://docs.fluentbit.io/manual/pipeline/inputs/tail
1.使用path/tag解析出作业名称并相应地组织目标存储。或者仅保留原样并在视图上进行筛选。

**捷径:**使用jenkins kubernetes插件将每个作业作为单独的单元运行:https://plugins.jenkins.io/kubernetes/。然后,它将被一个daemonset单独收集和标记。

bihw5rsg

bihw5rsg3#

关于 Cloud Native Jenkins 日志 管理

  • 管道 日志 存储 API 和 引用 实现 可 供 预览 , 仅 支持 Jenkins 管道 作业 类型 。JEP - 210 。 可用 插件 有 AWS CloudWatch 和 Elasticsearch
  • Jenkins 核心 API 和 参考 实现 尚未 合并/发布 , 但 原型 可 供 评估 。JEP - 207 、 JEP - 212 。 可用 插件 包括 外部 日志 API 和 Elasticsearch

参考 : https://www.jenkins.io/sigs/cloud-native/pluggable-storage/

相关问题