我正在使用监控代理(telegraf
)来监控fail2ban。不幸的是,它需要超级用户权限才能执行fail2ban-client
,这会导致每 10 秒产生 24 条系统日志消息……算一下,我的系统日志绝对混乱。
我想在系统日志中抑制这些消息,如果可能的话,仅由 telegraf 引起:
sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
sudo: pam_unix(sudo:session): session closed for user root
我尝试使用自定义“规则”来/etc/pam.d/sudo
抑制这些消息,但没有成功:
# cat /etc/pam.d/sudo
#%PAM-1.0
session required pam_env.so readenv=1 user_readenv=0
session required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
@include common-auth
@include common-account
session [default=ignore] pam_succeed_if.so quiet uid = 0 user = root ruser = telegraf
@include common-session-noninteractive
仅以开头的行session
添加到该文件中。该解决方案改编自如何停止特定用户的 auth.log 中的 sudo PAM 消息?
但是,日志消息仍然出现/var/log/auth.log
在journalctl -xe
我已经尝试过quiet_success
以及quiet
标志(在 中找到man pam_succeed_if
)。还使用success=1
makefail telegraf
toexecute fail2ban-client
,我猜是因为它需要一个交互式 tty?
这是使用debug
标志记录的:
Sep 20 11:34:51 host sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Sep 20 11:34:51 host sudo: pam_succeed_if(sudo:session): 'uid' resolves to '0'
Sep 20 11:34:51 host sudo: pam_succeed_if(sudo:session): 'user' resolves to 'root'
Sep 20 11:34:51 host sudo: pam_succeed_if(sudo:session): 'ruser' resolves to 'telegraf'
Sep 20 11:34:51 host sudo: pam_unix(sudo:session): session closed for user root
据我所知,“规则”正确匹配 uid、user 和 ruser,但不会抑制日志消息。我是否错过了重新启动,或者发生了什么?
答案1
我设法让它使用以下配置(/etc/pam.d/sudo
)
#%PAM-1.0
session [success=done default=ignore] pam_succeed_if.so quiet uid = 0 user = root ruser = telegraf
session required pam_env.so readenv=1 user_readenv=0
session required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
@include common-auth
@include common-account
@include common-session-noninteractive
老实说,我不知道问题是什么,但我认为顺序可能很重要。请自行承担使用此信息的风险,我不知道我在做什么......但我的系统日志现在看起来干净多了:)
(如果有人解释一下情况,我们将不胜感激)