过滤 SSHD 日志

过滤 SSHD 日志

我只是想知道过滤 sshd 日志的最佳方法。问题是我使用 Nagios 和 Cacti 通过 SSH 监控我的机器。它们每 5 分钟连接一次,这会用大量条目堵塞我的日志文件,使得我很难快速“跟踪”以查看发生了什么。

我希望将我的监控用户(在特定 IP 上)的所有登录信息记录在单独的文件中。

理想情况下,我会避免安装 syslog-ng 或类似软件。我必须在各种 Ubuntu、CentOS 和 FreeBSD 机器(运行各种 OpenSSH 版本)上进行设置,因此如果我可以在不使用其他软件的情况下完成此操作,生活将变得更加轻松。

关于如何实现这一目标有什么建议吗?

谢谢!

答案1

你可以做这样的事情:

tail -f logfile | grep -v "some\.ip\.address\.to\.ignore"

或者

tail -f logfile | grep -v "some\.ip\.address\.to\.ignore.*user-name"

答案2

你可以像这样将系统日志文件传递给管道

mkfifo /var/log/pipes/pipe1

进而

使用脚本读取该内容,该脚本将删除您不想要的字符串,如下所示:

cat /var/log/pipes/pipe1 | grep -v "login from xxx.xxx.xxx" | while read LINE
do
  echo $LINE >>/var/log/ssh.log
done

答案3

你可以尝试奥塞克,它有非常好的日志分析。

答案4

斯沃琪是一款出色的日志文件跟踪和过滤程序,甚至支持对线条进行着色。它还有一个 Debian/Ubuntu 软件包。

相关内容