Fluentbit с журналами Tomcat - PullRequest
       112

Fluentbit с журналами Tomcat

1 голос
/ 04 августа 2020

Я использую бесплатную версию 1.4.6 и пытаюсь собрать журналы из папки tomcat / logs, но получаю:

[error] [input:tail:tail.0] read error, check permissions Все эти файлы внутри папки журналов имеют вид "rw -r ----- "(640).

Я попытался проверить, может ли он вообще его прочитать, изменив права доступа к файлу внутри папки журналов, и он работает, но это не решает общая проблема.

Мой вопрос: это то, что должно быть установлено на уровне tomcat, или это можно сделать через fluent-bit? Могу ли я начать это как другой пользователь?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 05 августа 2020

спасибо за все советы, я перепробовал их все, и это работает, но, к сожалению, в наших развертываниях этого не происходит, поскольку у нас есть несколько пользовательских пользователей.

Что нужно было сделать, так это установить UMASK как переменная env со значением «111», которое изменит права доступа к файлам журнала, чтобы они могли быть получены с помощью fluent-bit.

1 голос
/ 05 августа 2020

Вы не указали, как вы развернули fluent-bit.

Но да, вы можете запустить его от имени другого пользователя, указав SecurityContext в Kubernetes.

Например:

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
...

✌️

...