![远程监控linux日志](https://linux22.com/image/547163/%E8%BF%9C%E7%A8%8B%E7%9B%91%E6%8E%A7linux%E6%97%A5%E5%BF%97.png)
我想监控几十台 Linux 服务器上的 syslog 日志。在理想情况下,我更喜欢拉取方法,即中央监控服务器每天通过 ssh 从所有机器收集一次日志,应用通用规则和每台服务器规则并报告任何意外的日志条目。
你有什么建议吗?
我不想使用集中式系统日志服务器。
我研究过 ossec,我还是更喜欢使用 ssh 进行所有通信,并且避免在受监控的服务器上安装任何其他工具
答案1
我不确定是否有任何交钥匙应用程序/解决方案,但您可以轻松地在中央监控服务器上使用带有模块的 rsyslog imfile
,它可以监控(并通过ommail
模块和条件发出警报)可以通过和 cron 从您的 Linux 服务器中提取的任意日志文件rsync
。
我正在使用 rsyslog 作为中央系统日志服务器,并使用它向ommail
我发送来自边缘防火墙、Squid 代理、核心交换机等的各种事件的警报。效果很好。
答案2
使用 Splunk。它有多种收集和索引日志的方法。您可以设置一个 cron 作业来将服务器日志拉入受监控的目录,即 /var/log/splunk-logs/{server1、server2 等}。这比仅使用 syslog 的工作量要大一些,但应该是可行的。
答案3
如果你想要某种脚本,你可以使用这个http://paste.broner.org/126(可以更动态地捕捉用户输入,或者更优雅地使用 getops)。如果您不允许 root 从“源”机器 ssh 到您的主机,您可以根据每台主机上的本地过滤运行脚本,并设置一个 cron 作业来查看日志。将转储的新条目放到特定位置,并让“源”机器通过 cron 检查该目录,拾取文件,并在复制后将其删除。
对于不使用 syslog-ng 或其他 syslog 服务器来说,这是一个巨大的工作量。您选择不使用其中一个服务器的原因是什么?
编辑:如果更愿意的话,您还可以使用 uuencode 和邮件将文件邮寄到某个地址。
答案4
Logwatch 和 Swatch 是常用的工具,甚至默认安装在一些 Linux 发行版上。您可以在每台服务器上安装它。这样可以跟踪日志,以便任何关键事件(例如,设备死亡、黑客攻击、ssh 失败等)都可以通过电子邮件或其他传递机制立即向您发出警报。
如果您需要避免在每个受监控系统上安装工具,您可以编写一些 rsync 脚本来获取 /var/log 目录并同步到中央服务器上的本地目录。然后告诉 swatch/logwatch 解析这些内容。