我是logstash的新手,几天后我正在阅读它。像大多数人一样,我正在尝试使用集中式日志系统并将数据存储在elasticsearch中,然后使用kibana来可视化数据。我的应用程序部署在许多服务器中,因此我需要从所有这些服务器获取日志。在所有这些机器中安装logstash转发器并配置它们似乎是一项非常繁琐的任务(如果这是唯一的方法,我会这样做)。是否有一种方法可以让logstash访问这些日志,方法是在conf文件中的某处提及日志的URL而不是logstash转发器将其转发到logstash?仅供参考,我的应用程序部署在tomcat上,日志可通过URL http://:8080 / application_name / error.log访问。
答案 0 :(得分:4)
不是直接但有一些紧密的解决方法 - 想法是创建一个程序/脚本,使用curl(或它的等价物)来有效地执行" tail -f"远程日志文件以及输出到logstash的运行。
这是一个捣蛋的bash脚本:
<强> url-tail.sh 强>
此bash脚本监视url的更改并将其尾部打印到 标准输出。它充当&#34; tail -f&#34; linux命令。它可能会有所帮助 用于跟踪http。
可访问的日志
https://github.com/maksim07/url-tail
另一个类似的是:
https://gist.github.com/habibutsu/5420781
还有其他人用PHP或java编写:Tail a text file on a web server via HTTP
一旦你运行了这个问题就是如何让它进入logstash - 你可以:
将其传输到stdin并使用stdin输入
将其附加到文件并使用文件输入
使用管道输入来运行命令本身并从中读取 命令的标准输出
魔鬼在细节思想中,尤其是使用logstash,因此您需要进行实验,但这种方法应该适合您。