我正在尝试将来自不同服务器的日志集中到一个服务器上。
我可以通过从客户端添加来集中日志信息auth.* @server_ip:port
,/etc/rsyslog.conf
但现在我无法检索用户创建日志信息。但是,这些日志位于 中/var/log/auth.log
。
例子 :
Jun 1 09:46:20 host sshd[12867]: Accepted password for adminelk from 10.0.0.2 port 63676 ssh2
Jun 1 09:46:20 host sshd[12867]: pam_unix(sshd:session): session opened for user adminelk by (uid=0)
Jun 1 09:46:26 host su[12879]: Successful su for root by adminelk
Jun 1 09:46:26 host su[12879]: + /dev/pts/0 adminelk:root
Jun 1 09:46:26 host su[12879]: pam_unix(su:session): session opened for user root by adminelk(uid=1000)
Jun 1 10:17:01 host CRON[12951]: pam_unix(cron:session): session opened for user root by (uid=0)
Jun 1 10:17:01 host CRON[12951]: pam_unix(cron:session): session closed for user root
Jun 1 10:17:01 host groupadd[12955]: group added to /etc/group: name=johnny, GID=1002
Jun 1 10:17:01 host groupadd[12955]: group added to /etc/gshadow: name=johnny
Jun 1 10:17:01 host groupadd[12955]: new group: name=johnny, GID=1002
Jun 1 10:17:01 host useradd[12959]: new user: name=johnny, UID=1004, GID=1002, home=/home/johnny, shell=/bin/bash
Jun 1 10:17:05 host passwd[12966]: pam_unix(passwd:chauthtok): password changed for johnny
Jun 1 10:17:08 host chfn[12967]: changed user 'johnny' information
我可以检索 sshd 日志,但不能检索 useradd 日志......
我怎样才能检索这些日志?
答案1
总结
使用auth,authpriv.* @server_ip:port
细节
您使用的设施是错误的,或者说不是所有设施都正确。
为了分析我运行的行为
journalctl -o verbose -t useradd -t groupadd -t passwd -f
在一个窗口中
adduser foo
在另一个中(两者都是root
)。
journald
拦截(本地)系统日志消息,可以使用 查看journalctl
。后者允许使用各种输出格式,其中之一是详细显示所有系统日志消息字段。
输出结果如下:
Wed 2018-06-06 21:05:22.618392 CEST [...]
...
PRIORITY=6
SYSLOG_FACILITY=10
...
SYSLOG_IDENTIFIER=groupadd
...
MESSAGE=group added to /etc/group: name=foo, GID=1004
Wed 2018-06-06 21:05:22.630643 CEST [...]
...
PRIORITY=6
SYSLOG_FACILITY=10
...
SYSLOG_IDENTIFIER=groupadd
...
MESSAGE=group added to /etc/gshadow: name=foo
...
Wed 2018-06-06 21:05:22.631667 CEST [...]
...
PRIORITY=6
SYSLOG_FACILITY=10
...
SYSLOG_IDENTIFIER=groupadd
...
MESSAGE=new group: name=foo, GID=1004
...
Wed 2018-06-06 21:05:22.635070 CEST [...]
...
PRIORITY=6
SYSLOG_FACILITY=10
...
SYSLOG_IDENTIFIER=useradd
...
MESSAGE=new user: name=foo, UID=1002, GID=1004, home=/home/foo, shell=/bin/bash
...
Wed 2018-06-06 21:05:22.699151 CEST [...]
PRIORITY=4
...
SYSLOG_FACILITY=10
...
SYSLOG_IDENTIFIER=passwd
MESSAGE=pam_ecryptfs: PAM passphrase change module retrieved a NULL passphrase; nothing to do
...
正如我们在此处看到的,SYSLOG_FACILITY
是10
针对所有这些消息的。这并非auth
但是authpriv
。
事实上,我的 rsyslog 配置包含以下行
auth,authpriv.* /var/log/auth.log
在文件中/etc/rsyslog.d/50-default.conf
。
所以我的建议是使用
auth,authpriv.* @server_ip:port
不仅可以转发auth
消息,还可以authpriv
留言。