我想监视几十个Linux服务器上的系统日志日志。 在理想的情况下,我更喜欢拉方法,中央监控服务器每天通过ssh从所有机器收集一次日志,应用通用和每服务器规则,并报告任何意外的日志条目。
你有什么build议吗?
我宁愿不使用集中式系统日志服务器。
我已经看过ossec,再次我宁愿使用ssh进行所有的通信,并希望避免在受监视的服务器上安装任何其他工具
我不确定任何交钥匙应用程序/解决scheme,但是您可以在中央监控服务器上使用imfile模块轻松使用imfile ,该模块可以监视(并通过ommail模块和条件提醒)任意日志文件从你的Linux服务器通过rsync和cron拉入。
我使用rsyslog作为中央系统日志服务器,并使用ommail发送来自我的边缘防火墙,Squid代理,核心交换机等各种事件的警报。
使用Splunk。 它有几种方法来收集和索引日志。 您可以设置一个cron作业来将服务器日志拉入受监视的目录,即/ var / log / splunk-logs / {server1,server2等}。 这是更多的工作,然后只是使用系统日志,但应该是可行的。
如果你想要某种脚本,你可以使用这个http://paste.broner.org/126 (可以很容易地捕捉用户input,或更优雅的getops)。 如果您不允许root用户通过“source”机器对您的主机执行ssh操作,您可以根据每台主机上的本地过滤来运行脚本,并设置一个cron作业来观察日志。 把转储的新条目放到一个特定的位置,让“源代码”机器通过cron检查这个目录,拾取这些文件,一旦复制就删除它们。
这是一个巨大的工作,不使用syslog-ng或其他系统日志服务器。 你有select不使用的理由吗?
编辑:你也可以使用uuencode和邮件,将邮件发送到一个地址,如果这是更受欢迎的。
Logwatch和Swatch是常用的工具,甚至在某些Linux发行版上默认安装。 你可以在每台服务器上安装它。 这会在日志上保持一个运行的尾巴,以便通过电子邮件或其他一些交付机制立即向您发送任何关键事件(例如死亡,黑客攻击,ssh失败等)。
如果您需要避免在每个受监视系统上安装工具,则可以编写一些rsync脚本来抓取/ var / log目录并同步到中央服务器上的本地目录。 然后告诉swatch / logwatchparsing这些。