parser_syslog: string parser ends RFC5424 structured data at an escaped "]"
Maintainer thường phản hồi trong vòng 1 ngày
Một pull request liên quan đã được merge.
- #5591 của @yuminn-k — đã merge
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 76/100
Hướng nghiên cứu
Bắt đầu từ parse_rfc5424, nơi issue cho biết text.index('] ', cursor) tìm ranh giới dữ liệu có cấu trúc. So sánh trình phân tích cú pháp chuỗi với trình phân tích cú pháp regexp bằng đầu vào RFC5424 được cung cấp. Theo dõi các bài kiểm thử hiện có của trình phân tích cú pháp và thêm một trường hợp hồi quy cho ] được escape theo sau bởi dấu cách. Hoàn tất khi extradata chứa toàn bộ dữ liệu có cấu trúc và message là msg.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
With parser_engine string, parser_syslog ends STRUCTURED-DATA at the first ] in the message. It does not check whether the ] is escaped. When a PARAM-VALUE contains \] followed by a space, the rest of the structured data goes into message.
RFC 5424 section 6.3.3 requires ] in a PARAM-VALUE to be escaped as \], so this is a valid message.
Input:
<14>1 2026-04-25T16:43:29.123Z host app 123 ID [x@1 a="b\] c"] msg
extradata |
message |
|
|---|---|---|
parser_engine string |
[x@1 a="b] |
c"] msg |
parser_engine regexp |
[x@1 a="b\] c"] |
msg |
To Reproduce
-
Create
/tmp/syslog.logwith this line:<14>1 2026-04-25T16:43:29.123Z host app 123 ID [x@1 a="b\] c"] msg -
Run Fluentd with the configuration below.
Expected behavior
extradata contains the whole structured data and message is msg, as with parser_engine regexp.
Actual output:
test: {"host":"host","ident":"app","pid":"123","msgid":"ID","pri":14,"extradata":"[x@1 a=\"b]","message":"c\"] msg"}
Your Environment
- Fluentd version: 1.20.1 (master at f55db4b1)
- Package version: N/A (from source)
- Operating system: CachyOS
- Kernel version: 7.3.1-1-cachyos
- Ruby: 4.0.9
Your Configuration
<source>
@type tail
path /tmp/syslog.log
pos_file /tmp/syslog.log.pos
read_from_head true
tag test
<parse>
@type syslog
message_format rfc5424
with_priority true
parser_engine string
</parse>
</source>
<match test>
@type stdout
</match>
Your Error Log
No error is logged. The record is emitted with wrong fields.
Additional context
parse_rfc5424 finds the end of the structured data with text.index('] ', cursor). This exists since v1.11.0.
- Ngôn ngữ chính
- Ruby
- Star
- 13.6k
- Fork
- 1.4k
- Merge trung bình
- 1 ngày 1 giờ
- Pull request đã merge (30 ngày)
- 61
Chuẩn bị môi trường
- 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/fluentd
-
in_tcp: skip emitting an empty event stream when a read has no complete messageCó thể đã có người làm @lbarrosby đã nhận hôm nay. Đang mởenhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
in_tcp, in_syslog: a non-ASCII delimiter closes the connection with Encoding::CompatibilityErrorCó thể đã có người làm @1AbdullahButt đã nhận 1 ngày trước. Đang mởbug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
fluent/fluentd#5494 · 2 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
BufferChunkOverflowError inside @ERROR loops forever - no buffer parameter can stop itCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởbug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
fluent/fluentd#5462 · 8 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của fluent/fluentd
Issue tương tự
-
`Time.at(t, in: nil)` returns UTC instead of the local time (or the time zone of `t`), unlike CRubyĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
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 66/100
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 75/100
swombat/souls-house#825 · 1 bình luận ·
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 78/100
openhab/openhab-jruby#571 ·
-
Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
chatwoot/chatwoot#16591 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày