安装snoopy

git clone https://github.com/a2o/snoopy.git
yum install -y autoconf automake libtool
./bootstrap.sh
./configure --prefix=/opt/snoopy && make && make install

配置snoopy

cd /opt/snoopy
vim etc/snoopy.ini

添加以下两行配置即可:

message_format = "datetime:%{datetime} login:%{login} username:%{username} cmdline:%{cmdline} cwd:%{cwd}"
output = file:/var/log/snoopy.log

启用snoopy

启用,不是启动,字没打错,因为snoopy不是一个应用程序,它是一个动态链接库!!!

/opt/snoopy/sbin/snoopy-enable

启用之后,会提示你重启系统,可根据实际情况,择时重启。因为我实际想监控的是ssh登录之后的命令,是不需要重启的。

检查是否成功cat /etc/ld.so.preload: 如果看到:

/opt/snoopy/lib/libsnoopy.so

则代表启用成功了。

效果

tail -f /var/log/snoopy.log

可以看到新开一个ssh会话之后,执行了哪些命令,且运行的命令都可以监控到。

关闭监控

/opt/snoopy/sbin/snoopy-disable

注意事项

如果想卸载snoopy,在清理/etc/ld.so.preload之前,切勿手动删除/opt/snoopy/lib/libsnoopy.so,这可能会导致系统异常。 应该先运行snoopy-disable禁用snoopy再删除库文件。