2

我正在使用 fluent-bit 版本 1.4.6,我正在尝试从 tomcat/logs 文件夹中收集日志,但我收到:

[error] [input:tail:tail.0] read error, check permissions 日志文件夹中的这些文件都是“rw-r-----”(640)。

我试图通过更改日志文件夹中文件的权限来确认它是否可以读取它并且它可以工作,但这并不能解决整体问题。

我的问题是,这是应该在 tomcat 级别设置的东西还是可以通过 fluent-bit 来完成?我可以以其他用户身份开始吗?

提前致谢!

4

2 回答 2

1

您没有指定如何部署 fluent-bit。

但是是的,您可以在 Kubernetes 中以指定SecurityContext的不同用户身份运行它。

例如:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluent-bit
  namespace: logging
  labels:
    k8s-app: fluent-bit-logging
    version: v1
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    matchLabels:
      k8s-app: fluent-bit-logging
  template:
    metadata:
      labels:
        k8s-app: fluent-bit-logging
        version: v1
        kubernetes.io/cluster-service: "true"
      annotations:
        prometheus.io/scrape: "true"
        prometheus.io/port: "2020"
        prometheus.io/path: /api/v1/metrics/prometheus
    spec:
      securityContext:
        runAsUser: 1000  user id that you want to run the containers in the pod as
      containers:
      - name: fluent-bit
        image: fluent/fluent-bit:1.3.11
        imagePullPolicy: Always
        ports:
          - containerPort: 2020
        volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
        - name: fluent-bit-config
          mountPath: /fluent-bit/etc/
        - name: mnt
          mountPath: /mnt
          readOnly: true
...

✌️

于 2020-08-04T22:47:37.180 回答
1

感谢所有提示,我尝试了所有提示,并且它有效,但不幸的是,在我们的部署中它没有,因为我们有一些自定义用户。

需要做的是将 UMASK 设置为 env 变量,其值为“111”,这将更改日志文件的权限,以便它们可以被 fluent-bit 拾取。

于 2020-08-05T07:32:54.997 回答