rsyslog. 过滤器不起作用

rsyslog. 过滤器不起作用

我使用 ubuntu-server。我尝试在 rsyslog.conf 中设置过滤器,以仅接受来自我的 D-link 的远程日志。

那是调试

Debug line with all properties:
FROMHOST: 'fromname', fromhost-ip: '192.168.1.1', HOSTNAME: 'DSR-500N', PRI: 4,
syslogtag 'KERNEL', programname: 'KERNEL', APP-NAME: 'KERNEL', PROCID: '-', MSGID: '-',
TIMESTAMP: 'Oct  2 17:44:08', STRUCTURED-DATA: '-',
msg: ' [Kernel] LOG_PACKET[ACCEPT]  IN=WAN SRC=11.11.11.11 DST=22.22.22.22 PROTO=ESP SPI=0xf9861ec '
escaped msg: ' [Kernel] LOG_PACKET[ACCEPT]  IN=WAN SRC=77.77.77.77 DST=66.66.66.66 PROTO=ESP SPI=0xf9861ec '
rawmsg: '<4>Oct 02 17:44:08 DSR-500N KERNEL [Kernel] LOG_PACKET[ACCEPT]  IN=WAN SRC=44.44.44.44 DST=33.33.33.33 PROTO=ESP SPI=0xf9861ec '

这就是我的代码:

if hostname == 'DSR-500N' then  /var/rsyslog/infolog

但过滤器不起作用。我错在哪里?

谢谢你!

我尝试更改过滤器。我使用了此代码

:$hostname, regex, "*" /var/rsyslog/infolog

这是可行的。但它适用于所有主机名。我想过滤它,但如果我更改为

:$hostname, regex, "^k" /var/rsyslog/infolog

它不起作用。

有任何想法吗?

答案1

尝试使用$hostname而不是仅仅hostname

If $hostname == 'DSR-500N' then /var/rsyslog/infolog

相关内容