bug: FluentBit pod stops sending logs to the configured outputs without showing any error
Maintainer thường phản hồi trong vòng 2 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 32/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- elasticsearch, go, helm, kubernetes
- Lĩnh vực
- devops, infrastructure, observability-sre
Hướng nghiên cứu
Bắt đầu bằng cách so sánh ConfigMap fluent-bit-config được tạo, các CRD FluentBitConfig và output, cùng hành vi của các pod khỏe mạnh và bị mắc kẹt. Kiểm tra endpoint Prometheus, log của pod và đường dẫn reload cấu hình; được coi là hoàn tất khi xác định được lý do pod trở nên không thể truy cập mà không có lỗi và định nghĩa được một chẩn đoán hoặc bản sửa lỗi có thể tái hiện.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the issue
I noticed this behaviour: sometimes fluentbit pods (usually one) just stop sending logs to the configured outputs (Elasticsearch in this case).
There is no error message or any weird log appearing, besides the logline that informs that the config file changed (level=info time=2024-09-03T09:57:40Z msg="Config file changed, reloading...").
I configured fluentbit via namespace-scoped CRDs (FluentBitConfig, Output, but I have the ClusterFilter, ClusterInput, ClusterFluentBitConfig cluster-wide CRDs as well), and I noticed that the fluent-bit-config configmap changes the order of the configured CRDs (e.g., the order of the configured outputs changes from time to time, although the overall content remains the same).
The underlying idea is to create an elasticsearch index per kubernetes namespace and forward all the namespace's traffic there.
The generated configuration (configured entirely via the operator CRDs) looks like this:
[Service]
Http_Server true
Log_Level debug
Parsers_File /fluent-bit/config/parsers.conf
Parsers_File /fluent-bit/config/parsers_multiline.conf
[Input]
Name tail
Path /var/log/containers/*.log
Read_from_Head false
Refresh_Interval 10
Skip_Long_Lines true
DB /fluent-bit/tail/pos.db
DB.Sync Normal
Mem_Buf_Limit 100MB
Parser cri
Tag kube.*
storage.type memory
[Filter]
Name kubernetes
Match kube.*
Kube_URL https://kubernetes.default.svc:443
Kube_CA_File /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
Kube_Token_File /var/run/secrets/kubernetes.io/serviceaccount/token
Labels false
Annotations false
[Filter]
Name nest
Match kube.*
Operation lift
Nested_under kubernetes
Add_prefix kubernetes_
[Filter]
Name modify
Match kube.*
Remove stream
Remove kubernetes_pod_id
Remove kubernetes_host
Remove kubernetes_container_hash
[Filter]
Name nest
Match kube.*
Operation nest
Wildcard kubernetes_*
Nest_under kubernetes
Remove_prefix kubernetes_
[Filter]
Name rewrite_tag
Match kube.*
Rule $kubernetes['namespace_name'] ^(NAMESPACE1)$ 977c7a0a4554b6071fdf7e33484f3853.$TAG false
Emitter_Name re_emitted_977c7a0a4554b6071fdf7e33484f3853
[Filter]
Name rewrite_tag
Match kube.*
Rule $kubernetes['namespace_name'] ^(NAMESPACE2)$ a692cd3035eea3e14eae8ab89d9aed1b.$TAG false
Emitter_Name re_emitted_a692cd3035eea3e14eae8ab89d9aed1b
...
...
[Output]
Name es
Match_Regex ^977c7a0a4554b6071fdf7e33484f3853\.(?:kube|service)\.(.*)
Host ELASTICSEARCH_HOST
Port 9200
HTTP_User admin
HTTP_Passwd password
Index index-namespace1
Logstash_Format false
Time_Key @timestamp
Generate_ID false
Suppress_Type_Name On
tls On
tls.verify false
[Output]
Name es
Match_Regex ^a692cd3035eea3e14eae8ab89d9aed1b\.(?:kube|service)\.(.*)
Host ELASTICSEARCH_HOST
Port 9200
HTTP_User admin
HTTP_Passwd password
Index index-namespace2
Logstash_Format false
Time_Key @timestamp
Generate_ID false
Suppress_Type_Name On
tls On
tls.verify false
I noticed that if I check the prometheus targets, that pod results in the DOWN state:
Get "http://10.42.139.104:2020/api/v2/metrics/prometheus": context deadline exceeded
I also tried to manually curl the pod (from another pod) and, indeed, it is not reachable (while all the others belonging to the same daemonset are reachable and they keep sending the logs to the intended outputs).
Any idea about what is going on? I also tried to check whether there could be resources (in terms of cpu/ram) issues (via kubectl describe and kubectl get pods -o yaml) but nothing obvious appeared. The pod is not failing nor getting restarted.
Once the pod is restarted, everything works again as intended.
To Reproduce
I can't really reproduce the issue, since it happens randomly and it's "solved" once the pod is killed (and a new one is created)
Expected behavior
The logs are sent to the intended output or at least there is a "talking" error message that highlights the cause of this behavior.
Your Environment
- Fluent Operator version: 2.9.0
- Container Runtime: containerd://1.7.17-k3s1
- Operating system: SUSE Linux Enterprise Server 15 SP4
- Kernel version: 5.14.21-150400.24.74-default
How did you install fluent operator?
Via helm chart (with argocd, from the https://fluent.github.io/helm-charts/ repository), with the following parameters:
containerRuntime: containerd
# fluentd:
# crdsEnable: false
fluentbit:
logLevel: debug
resources:
limits:
cpu: 1500m
memory: 1000Mi
requests:
cpu: 500m
memory: 201Mi
serviceMonitor:
enable: true
input:
tail:
enable: false
systemd:
enable: false
filter:
kubernetes:
enable: false
containerd:
enable: false
systemd:
enable: false
operator:
resources:
limits:
cpu: 500m
memory: 600Mi
requests:
cpu: 100m
memory: 20Mi
I disabled the inputs and filter because I configured them by myself in order to use namespace-wide CRDs.
Additional context
No response
- Ngôn ngữ chính
- Go
- Star
- 689
- Fork
- 333
- Merge trung bình
- 2 ngày 14 giờ
- Pull request đã merge (30 ngày)
- 41
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của fluent/fluent-operator
-
feat: support storage.total_limit_size for the fluent-bit forward outputCó thể đã có người làm @cvas22 đã nhận 1 ngày trước. Đang mở
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 30/100
fluent/fluent-operator#2126 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
bug: fluent-bit image still ships vulnerable libbrotli1 (CVE-2026-111497)Có thể đã có người làm @joshuabaird đã nhận 9 ngày trước. Đang mởfluent-bit security
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 55/100
fluent/fluent-operator#2082 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
bug: fluent operator is consuming lot of cpu cores (~27 of the 32 available cores on a Node)Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
fluent/fluent-operator#1990 · 6 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
enhancement fluent-bit good first issue
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
fluent/fluent-operator#1854 · 2 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Remove tag consideration from Fluentd ClusterFilter / Filter orderCó thể đã có người làm @cvas22 đã nhận 1 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
fluent/fluent-operator#1832 ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của fluent/fluent-operator
Issue tương tự
-
area/docs
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 86/100
meshery/meshery#23375 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
ApplicationSet: BitBucket Cloud SCM provider returns corrupted error (%!w(<nil>)) when a branch has no commit hashCó thể đã có người làm @AP24110011695 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
go good first issue help wanted up-for-grabs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
andrewsiah/agentswarm-data-tasks#308 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 87/100
multica-ai/multica#10511 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày