我有samba服务器。我已经像这样配置smb.conf:
[global]
# Another configuration
#
#
# Audit Activity Settings
full_audit:prefix = %u|%I|%m|%S
full_audit:success = mkdir rename unlink rmdir pwrite pread
full_audit:failure = none
full_audit:facility = local7
full_audit:priority = NOTICE
[shared]
comment = Shared Content
path = /data/shared
read only = no
browsable = yes
vfs objects = full_audit
我想将samba日志发送到特定文件,例如/var/log/samba/log.audit
。我已经在rsyslog.conf中这样配置了:
if $syslogfacility-text == 'local7' and $programname == 'smbd' then /var/log/samba/log.audit
但没有任何反应,没有文件日志log.audit位于/var/log/samba/
。
我也尝试在/etc/rsyslog.d/50-default.conf
上进行如下配置:
local7.* /var/log/samba/log.audit
但相同,log.audit
上没有文件日志/var/log/samba/
。
但是,Full_Audit日志可在syslog上找到:
Mar 20 02:49:26 media-arsip smbd_audit: content|192.168.84.69|ubspok18|shared|mkdir|ok|sharedcontent/ok/tes
如何将syslog samba full_audit日志扔到/var/log/samba/log.audit
?
答案 0 :(得分:1)
也许您已经解决了这个问题,但如果这样做,是为了后代:
当我遇到这两个问题(在CentOS 7 samba服务器上)时,对我来说适用的解决方案是双重的。
首先:当使用local7
上下文配置vfs full_audit时,日志条目被发送到已经为该上下文配置的boot.log。在 smb.conf full_audit:facility = local5
和 /etc/rsyslog.conf local5.* /var/log/smb_audit.log
中定义新的上下文将审核日志消息发送到选定的日志文件(在我的情况是 /var/log/smb_audit.log )。
第二:以上配置之后,日志消息被发送到我定义的日志文件和syslog两者中。这是因为需要在 /etc/rsyslog.conf 中禁用syslog的local5,以使syslog不会像以前那样默认它们。这是通过在我的 / var / log / messages 的配置行中添加local5.none
来完成的,因此其结果类似于:*.info;mail.none;authpriv.none;cron.none;local5.none /var/log/messages
。
({smbcontrol all reload-config && systemctl restart systemd-journald && systemctl restart rsyslog
)使这些更新生效。除非您还选择增加日志限制/速率窗口,否则不需要重新启动Journald,尽管对于流量较大的服务器而言,这可能是理想的。 )