我们有一个旧设备,它将严重性为 <132> 的系统日志发送到其管理服务器。
为了捕获上述事件,之前的团队创建了一个 tcpdump 脚本并通过 crontab 运行它来捕获事件。
我正在尝试弄清楚如何通过 syslog 将这些事件写入不同的文件。
syslog 配置当前是默认配置,我启用了 UDP 捕获模块,但无法将其写入不同的文件。
*.* /var/log/syslog_capture_all
:msg, contains, "[ApplianceModel]" /var/tmp/events_syslog
第一个文件现在包含来自系统的所有日志,而第二个文件仍然是空的。
从 tcpdump 保存的文件中可以看到设备发送的日志如下:
<132>[ApplianceModel] [Parameter=Parameter value] ......
我只想将“<132>[ApplianceModel] [Parameter=Parameter value] ......”保存到 /var/tmp/events_syslog 文件并摆脱该 tcpdump
答案1
由于输入不是标准 syslog 格式,尝试通过 syslog 解析它时可能未将字符串ApplianceModel
放入属性中msg
,因此您将无法匹配它。如果您使用的是 rsyslog,则可以尝试使用该rawmsg-after-pri
属性。或者,您可以匹配优先级 132,如:pri, isequal, "132"
。