linux - Shell多日志监控与关联

标签 linux bash shell tail

我已经尝试了好几天了,但仍在挣扎。

该脚本的目的是对多台服务器(特别是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/

相关文章:

linux - Bash 命令替换为参数

仅当没有文件时才删除目录的bash shell脚本

bash - Shell脚本将矩形文本旋转45°

linux - 从 shell 脚本的命令行解析参数

c - 如何更新命令行输出?

linux - 查找超过某个大小的所有文件并截断​​?

linux - 如何找出一个进程需要哪些 linux 功能才能工作?

python - 'HOME' 的 Bash 环境变量设置返回 "pyenv: no such command ` sh-activate'"

bash - 在 bash 脚本 : if condition evaluates to false when function returns true 中使用 if 和 bool 函数

bash - 如何在非 Bash Shell 中迭代 Null 分隔结果