我们的一些Solaris 10服务器使用SiteScope进行监控,SiteScope每隔几分钟使用Telnet探测某些端口(SSH是其中之一)。 这会在/ var / adm / wtmpx中创build大量的行,并最终使其变得非常大(2,5G +),以至于无法运行last命令,或者uptime命令无法准确显示真正的正常运行时间的服务器。
试图运行last命令时出现的错误是:
/var/adm/wtmpx: Value too large for defined data type
我已经find了使用cron作业(使用命令/usr/lib/acct/fwtmp )清理这个会计日志的方法,并且这个工作正常。 这不是问题。 我想知道是否有一种方法可以简单地阻止来自监控用户(在我们的例子中是用户monsite )的连接在该会计日志中创build条目。
这是可能的,如果是的话,我该怎么做?
我环顾四周,search了Google一段时间,但找不到这个问题的答案。
注意:我们非常清楚,我们采用的监控解决scheme可能不是最好的,但目前我们无法改变。 因此,build议我们改变它与这个问题无关。 如果您想了解更多有关我们为这些服务器所使用的Sitescope监控解决scheme的信息,请参阅此处的文档,并查找端口监视器和连接到远程UNIX服务器,这将解释它如何工作。
你将能够尝试将wtmp输出发送到另一个日志,过滤掉这个monsite连接 – /usr/bin/egrep -A 5 monsite /var/log/wtmpx > /var/log/something_different ,然后将别名最后指向这个新的日志? /usr/bin/last -f <cleaner_wtmp_log>
这是一个乏味的绷带,虽然它应该能够保持wtmp易于pipe理。
允许monsite用户完成完整的login可能不是最好的监控做法。 除了填充wtmpx,这几百(千)个连接将会对服务器的性能产生负面影响。
为了进行监控,telnet或ssh端口的横幅广告应该足以说明服务是否启动。 用户不需要完成login,所以不会出现在wtmpx中。
我没有引入潜在的安全漏洞(未跟踪用户login),而是集中精力改进监控。