这是一个benthos的示例,主要是体现了broker在输出的时候的运用,以及一些数据中间情况处理的逻辑。
从514端口监听得到syslog日志,对日志日志等级低于notice的(debug等)进行过滤,并通过kafka、syslog转发,并写入到本地syslog文件中。
input:
label: ""
socket_server:
network: "udp"
address: "0.0.0.0:514"
codec: lines
pipeline:
processors:
- bloblang: |
meta rawMsg = content().string()
- parse_log:
format: "syslog_rfc3164"
codec: "json" # 解析日志为json格式
- bloblang: | # 0-7 八个等级,5 为notice 这里如果用.number会报错
root = if this.severity.string() < "5" {
this
}else{
deleted()
}
output:
label: ""
broker:
pattern: fan_out
outputs:
- kafka:
addresses:
- 192.168.118.25:9092
topic: syslog
target_version: 2.0.0
max_in_flight: 128
batching:
count: 100
period: 1s
- stdout: {}
- file:
path: syslog_${! now().format_timestamp("20060102", "UTC") }.log
processors: # 修改要写入的数据
- bloblang: |
root = meta("rawMsg")