我每天手动从3台服务器复制文件。 由于安全原因,我无法设置自动转发器。所以我有3个目录srvapp1 srvapp2和dbserver,我手动将文件复制到这些文件夹中。 如何将这些文件推送到logstash?是否有一个工具来更新表单app.log app.log.1 ...
的log4j文件当我完成这项工作并且可以证明ElasticSearch // LogStash / Kibana的力量和有效性时,我可以说服管理层在生产/开发盒中正式使用它。
谢谢!
答案 0 :(得分:0)
你的问题的解决方案有点复杂(ish)。货运代理是理想的,但有时是不可能的。这就是我所做的(完美无缺)。
您需要安全连接吗?使用rsync + ssh!
因此,在您的crontab中,您可以执行以下操作:
* * * * * rsync -avzi --stats -e 'ssh ...' --append-verify FROM_FOLDER TO_FOLDER
这会将您的日志文件名称安全地从A添加到B.因此,您的复制开销也很小。
使用rsync命令的目标文件夹中的文件输入配置logstash。 Logstash将自动从中获取所有文件并记录所有更改。一切正常。
标准化您的日志名称。如果您的应用程序重命名日志文件,Logstash将重新分析您的日志文件。我解决这个问题的方法是将我的log-appender配置为只使用唯一的名称。我没有使用my-log-file.log并在午夜将其重命名为my-log-file.log.XXXX.XX.XX,而是从一开始就在每个文件中使用日期模式。这样,Logstash就不会对重新分析感到困惑。
以上解决方案是全自动的(因此无需再手动复制任何内容)。我希望有所帮助,
阿图尔