具有 Tomcat 日志的 Fluentbit
Fluentbit with Tomcat logs
我使用的是 fluent-bit 版本 1.4.6,我正在尝试从 tomcat/logs 文件夹中收集日志,但我收到:
[error] [input:tail:tail.0] read error, check permissions
logs文件夹里面的这些文件都是“rw-r-----”(640).
我试图通过更改日志文件夹中文件的权限来确认它是否可以读取它并且它有效,但这并没有解决整体问题。
我的问题是,这是应该在 tomcat 级别设置的东西还是可以通过 fluent-bit 完成?我可以以不同的用户身份开始吗?
提前致谢!
您没有指定如何部署 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
...
✌️
感谢所有提示,我尝试了所有提示,并且有效,但不幸的是,在我们的部署中它没有,因为我们有一些自定义用户。
需要做的是将 UMASK 设置为值为“111”的环境变量,这将更改日志文件的权限,以便 fluent-bit.[=10 可以获取它们=]
我使用的是 fluent-bit 版本 1.4.6,我正在尝试从 tomcat/logs 文件夹中收集日志,但我收到:
[error] [input:tail:tail.0] read error, check permissions
logs文件夹里面的这些文件都是“rw-r-----”(640).
我试图通过更改日志文件夹中文件的权限来确认它是否可以读取它并且它有效,但这并没有解决整体问题。
我的问题是,这是应该在 tomcat 级别设置的东西还是可以通过 fluent-bit 完成?我可以以不同的用户身份开始吗?
提前致谢!
您没有指定如何部署 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
...
✌️
感谢所有提示,我尝试了所有提示,并且有效,但不幸的是,在我们的部署中它没有,因为我们有一些自定义用户。
需要做的是将 UMASK 设置为值为“111”的环境变量,这将更改日志文件的权限,以便 fluent-bit.[=10 可以获取它们=]