![rsyslog. 过滤器不起作用](https://linux22.com/image/597640/rsyslog.%20%E8%BF%87%E6%BB%A4%E5%99%A8%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我使用 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