我正在使用 AWS Opensearch 從我的所有 Kubernetes 應用程式中檢索日志。我有以下 pod:、、、、和Kube-proxy我所有的應用程式(大約 10 個)。Fluent-bitaws-nodeaws-load-balancer-controller
雖然 fluent-bit 成功發送了、和的所有日志Kube-proxy,但我的應用程式中的任何日志都沒有發送。我的應用程式有, ,日志,但沒有一個是通過流利位發送的。Fluent-bitaws-nodeaws-load-balancer-controllerDEBUGINFOERROR
這是我的流利位配置:
apiVersion: v1
kind: ConfigMap
metadata:
name: fluent-bit-config
namespace: my-namespace
labels:
k8s-app: fluent-bit
data:
# Configuration files: server, input, filters and output
# ======================================================
fluent-bit.conf: |
[SERVICE]
Flush 1
Log_Level info
Daemon off
Parsers_File parsers.conf
HTTP_Server On
HTTP_Listen 0.0.0.0
HTTP_Port 2020
@INCLUDE input-kubernetes.conf
@INCLUDE filter-kubernetes.conf
@INCLUDE output-elasticsearch.conf
input-kubernetes.conf: |
[INPUT]
Name tail
Tag kube.*
Path /var/log/containers/*.log
Parser docker
DB /var/log/flb_kube.db
Mem_Buf_Limit 50MB
Skip_Long_Lines On
Refresh_Interval 10
filter-kubernetes.conf: |
[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
Kube_Tag_Prefix kube.var.log.containers.
Merge_Log On
Merge_Log_Key log_processed
K8S-Logging.Parser On
K8S-Logging.Exclude Off
output-elasticsearch.conf: |
[OUTPUT]
Name es
Match *
Host my-host.es.amazonaws.com
Port 443
TLS On
AWS_Auth On
AWS_Region ap-southeast-1
Retry_Limit 6
parsers.conf: |
[PARSER]
Name apache
Format regex
Regex ^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S )(?: (?<path>[^\"]*?)(?: \S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$
Time_Key time
Time_Format %d/%b/%Y:%H:%M:%S %z
[PARSER]
Name apache2
Format regex
Regex ^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S )(?: (?<path>[^ ]*) \S*)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$
Time_Key time
Time_Format %d/%b/%Y:%H:%M:%S %z
[PARSER]
Name apache_error
Format regex
Regex ^\[[^ ]* (?<time>[^\]]*)\] \[(?<level>[^\]]*)\](?: \[pid (?<pid>[^\]]*)\])?( \[client (?<client>[^\]]*)\])? (?<message>.*)$
[PARSER]
Name nginx
Format regex
Regex ^(?<remote>[^ ]*) (?<host>[^ ]*) (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S )(?: (?<path>[^\"]*?)(?: \S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$
Time_Key time
Time_Format %d/%b/%Y:%H:%M:%S %z
[PARSER]
Name json
Format json
Time_Key time
Time_Format %d/%b/%Y:%H:%M:%S %z
[PARSER]
Name docker
Format json
Time_Key time
Time_Format %Y-%m-%dT%H:%M:%S.%L
Time_Keep On
[PARSER]
Name syslog
Format regex
Regex ^\<(?<pri>[0-9] )\>(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<host>[^ ]*) (?<ident>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9] )\])?(?:[^\:]*\:)? *(?<message>.*)$
Time_Key time
Time_Format %b %d %H:%M:%S
我遵循了這個檔案
非常感謝您的幫助。
uj5u.com熱心網友回復:
您從官方方面看過這篇文章嗎?注意日志檔案概述部分。
將 Fluent Bit 部署到 Kubernetes 時,需要注意三個日志檔案。C:\k\kubelet.err.log
您還可以找到Fluent GitHub 社區并在那里創建問題以獲得其貢獻者的更好支持
Fluent有一個Slack 頻道
uj5u.com熱心網友回復:
最后,我做了兩件事解決了我的問題:
- 修改了這個配置:
# before
output-elasticsearch.conf: |
[OUTPUT]
Name es
Match *
Host search-blacaz-logs-szzq6vokwwm4y5fkfwyngjwjxq.ap-southeast-1.es.amazonaws.com
Port 443
TLS On
AWS_Auth On
AWS_Region ap-southeast-1
Retry_Limit 6
# after
output-elasticsearch.conf: |
[OUTPUT]
Name es
Match *
Host search-blacaz-logs-szzq6vokwwm4y5fkfwyngjwjxq.ap-southeast-1.es.amazonaws.com
Port 443
TLS On
AWS_Auth On
Replace_Dots On // added this
AWS_Region ap-southeast-1
Retry_Limit 6
然后,我不得不洗掉 fluent-bit Elastic 搜索索引,然后重新創建它。確實,該索引起初可能不太適合我的 JAVA 日志,并在重新創建后對其進行了調整。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/435766.html
標籤:弹性搜索 Kubernetes 亚马逊-eks 流利的 流利位
