rsyslog:如何剪切从起始字段到消息结尾的字符串

rsyslog:如何剪切从起始字段到消息结尾的字符串

我有一些杂乱的设备,我想通过 rsyslog 来处理,90% 的工作已经完成,但我被困在这里

rawmsg: '<133>2022-07-15 17:11:11 eleservice-sw02 51891 Logout the web by admin on web (169.254.101.1).'
rawmsg: '<133>2022-07-15 17:11:14 eleservice-sw02 51890 Login the web by admin on web (169.254.101.1).'
rawmsg: '<132>2022-07-15 18:10:14 piknov29-sw42 43557 CPU RISING THRESHOLD: Total CPU Utilization is 83%.'

所以我的问题是如何从 Field nr 5 (F,32:5) 中选择字符串直到行尾?

答案1

毕竟,看起来我需要使用正则表达式

template(name="jetstream"
type="string"
string= "%fromhost%||%syslogfacility%||%syslogpriority%||%syslogseverity%||%msg:F,32:3%||%$year%-%$month%-%$day% %timegenerated:8:25%||%msg:R,ERE,4,FIELD:(\\s)([0-9][0-9][0-9][0-9][0-9])(\\s)(.+)--end%||tp-link\n")

关键是:

%msg:R,ERE,4,FIELD:(\\s)([0-9][0-9][0-9][0-9][0-9])(\\s)(.+)--end%

它远谈不上好,但它正在发挥作用。我第一次使用 rsyslog/regex 的经历

相关内容