我已经尝试了好几天了,但仍在挣扎。
该脚本的目的是对多台服务器(特别是29台)进行实时日志监控,并关联服务器之间的登录失败记录。服务器的日志会在每天23:59:59压缩,新的日志从0点开始。
我的想法是使用tail -f | grep “密码失败” | tee centralized_log
在每台服务器上,通过所有服务器名称循环激活,在后台运行,并将登录失败记录输出到集中日志。但它不起作用。它会创建很多守护进程,一旦我终止脚本,它们就会变成僵尸。
我也在考虑每隔几分钟做一次tail
。但是随着日志变大,处理时间会增加。如何设置指向前一个 tail
停止位置的指针?
那么,您能否建议一种更好的工作方式来进行多日志监控和关联。除非完全必要,否则不鼓励额外安装。
最佳答案
如果您的日志通过 syslog,并且您正在使用 rsyslogd
,那么您可以在每台机器上配置 syslog 以将您感兴趣的特定消息转发给一个(或两个)机器集中式日志服务器,使用如下属性匹配:
:msg, contains, "failed password"
参见 rsyslog documentation有关如何设置可靠的系统日志转发的更多详细信息。
关于linux - Shell多日志监控与关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17439188/