我有一台 Ubuntu (14.x) 主机,用作 Git 存储库箱(通过 GitLab CE)。大约有 50 个用户使用共享用户(在本例中gitlab
)连接到该箱以同步他们的存储库。此方法效果很好,但不幸的是,它完全摧毁了我的存储库,/var/log/auth.log
它很容易增长到每天 10 GB,如下所示:
Apr 22 14:10:25 gitlab sshd[7434]: pam_unix(sshd:session): session opened for user git by (uid=227)
Apr 22 14:10:25 gitlab sshd[7435]: pam_unix(sshd:session): session closed for user gitlab
有没有一种方法可以抑制该用户的这些消息并停止淹没我的日志文件?
答案1
您可以配置rsyslogd
丢弃提及该用户的消息。在(例如)gitlab
中创建一个文件,其中包含:/etc/rsyslog.d/
10-filter-git.conf
if $syslogfacility-text startswith 'auth' and $msg contains 'gitlab' and not ($msg contains 'failure') then ~
这是一基于表达式的过滤器那:
- 匹配来自名称以 开头的设施的消息
auth
。通常, 中的条目auth.log
来自auth
和authpriv
设施。 - 匹配包含以下内容的消息
gitlab
- 请在此处使用您的用户名。 - 匹配不包含的消息
failure
- 我认为您仍然需要留意身份验证失败。 ~
丢弃发送给它的消息。
然后重新启动rsyslogd
:
service rsyslog restart
现在,有关用户的正常消息gitlab
不应出现在auth.log
。