我正在尝试将特定远程主机的邮件logging到一个单独的日志文件(仅限于该文件)。 我试过这个:
# cat /etc/rsyslog.d/avs110door.conf if $fromhost == 'avs110' then /var/log/avs110-door.log & stop
日志文件没有被创build,并且该主机的消息仍然被发送到user.log,syslog,messages和auth.log(取决于设施)。
我没有运行systemctl restart rsyslog.service和其他.conf文件从该目录做预期的工作。
这是一个rsyslog版本为8.4.2-1 + deb8u2的Debian Jessie服务器。
在错误的文件中的消息是这样的(所以远程主机名确实是'avs110'在我的.conf文件条件):
Jul 18 18:27:19 avs110 sshd[781]: Server listening on :: port 22. Jul 18 18:27:39 avs110 engine[844]: Finished initialization Jul 18 18:44:20 avs110 engine[844]: Calling sip:[email protected]:5060
事实certificate, $fromhostvariables不是它在邮件中显示的主机名,而是完全限定的域名。 消息的主机名在另一个variables中: $hostname 。
所以我试过的东西没有工作,但是下面的任何一个工作都可以把日志从一个特定的主机发送到一个特定的日志文件:
$hostname :就像它出现在消息中一样 $fromhost :反向查找的FQDN $fromhost-ip :好的,那个很明显:IP 要么:
if $hostname == 'avs110' then /var/log/avs110.log & stop if $fromhost == 'avs110.example.com' then /var/log/avs110.log & stop if $fromhost-ip == '192.168.44.159' then /var/log/avs110.log & stop