如何在 Solaris 10 上过滤 /var/adm/wtmpx?

如何在 Solaris 10 上过滤 /var/adm/wtmpx?

我们的一些 Solaris 10 服务器使用 SiteScope 进行监控,它每隔几分钟使用 Telnet 探测某些端口(SSH 就是其中之一)。这会在 /var/adm/wtmpx 中创建大量行,最终使其变得非常大(2.5G+),以至于我们无法再运行该last命令,或者该uptime命令无法准确显示服务器的真实正常运行时间。

我们尝试运行该命令时收到的错误last是:

/var/adm/wtmpx: Value too large for defined data type

我发现我们可以使用 cron 作业(使用命令/usr/lib/acct/fwtmp)来清理此会计日志,而且这种方法有效。这不是问题所在。我想知道是否有一种方法可以简单地阻止监控用户(在我们的例子中是用户)的连接monsite在此会计日志中创建条目。

这可能吗?如果可以,我该怎么做?

我四处查看并在 Google 上搜索了一段时间,但找不到这个问题的答案。

笔记:我们非常清楚,我们采用的监控解决方案可能不是最好的,但目前我们无法改变它。因此,建议我们改变它与这个问题无关。如果您想了解有关我们为这些服务器采用的 Sitescope 监控解决方案的更多信息,请参阅其文档这里并查找端口监视器和连接到远程 UNIX 服务器,它解释了其工作原理。

答案1

您是否可以尝试将 wtmp 输出到不同的日志,过滤掉 monsite 连接/usr/bin/egrep -A 5 monsite /var/log/wtmpx > /var/log/something_different,然后创建一个别名以指向这个新日志?/usr/bin/last -f <cleaner_wtmp_log>

这是一个乏味的创可贴,虽然它应该能够让 wtmp 保持易于管理。

答案2

允许 monsite 用户完成完整登录可能不是最佳的监控做法。除了填满 wtmpx 之外,这数百(数千)个连接还会对服务器的性能产生负面影响。

出于监控目的,telnet 或 ssh 端口的横幅抓取应该足以判断服务是否已启动。用户无需完成登录,因此不会出现在 wtmpx 中。

我不会引入潜在的安全漏洞(未跟踪的用户登录),而是专注于改进监控。

相关内容