CRI 런타임 인터페이스가 있는 로컬 클러스터에 대해 Fluent-bit를 테스트하고 있으며 여유 채널로 로그를 보내고 있습니다. 하지만 문제는 Fluent-Bit이 로그에 "타임스탬프"를 할당하는데 이를 삭제할 수 없다는 것입니다. 어쩌면 누군가가 해결책을 알고 있을까요?
이것은 내 Fluent-Bit ConfigMap입니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: fluent-bit-config
namespace: logging1
labels:
k8s-app: fluent-bit
data:
# Configuration files: server, input, filters and output
# ======================================================
fluent-bit.conf: |
[SERVICE]
Flush 2
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-syslog.conf
input-kubernetes.conf: |
[INPUT]
Name tail
Tag kube.*
Path /var/log/containers/*
Parser cri
DB /var/log/flb_kube.db
Mem_Buf_Limit 5MB
Skip_Long_Lines On
filter-kubernetes.conf: |
output-syslog.conf: |
[OUTPUT]
Name slack
Match *
webhook [LINK]
parsers.conf: |
[PARSER]
Name cc
Format regex
Format cri
Regex ^(?<time>[^ ]+) (?<stream>stdout|stderr) (?<logtag>[^ ]*) (?<message>.*)$
Time_Key time
Time_Format %Y-%m-%dT%H:%M:%S.%L%z
이것은 내 애플리케이션의 원본 로그이기도 합니다.
2023-04-12T16:09:02.016483996Z stderr F 10.244.0.1 - - [12/4/2023 16:09:02] "GET/HTTP/1.1" 200 -
Slack으로 전송된 로그는 다음과 같습니다.
["타임스탬프": 1681315742.016981904, {"로그" => "2023-04-12T16:09:02.016483996Z stderr F 10.244.0.1 - - [12/4/2023 16:09:02]" GET/HTTP/1.1 " 200-"}]
답변1
당신은 사용할 수 있습니다Record_transformer 필터는 Remove_keys를 사용하여 타임스탬프 키를 제거합니다.
<filter foo.bar>
@type record_transformer
remove_keys timestamp
</filter>