我正在尝试通过file打导入我的服务器上的自定义日志,并将它发送到logstash,以便在我的ELK堆栈中使用。
我已经设置这是正确的工作,它运行良好,目前。
但是,我希望为这个特定的日志添加一个logstash过滤器,因此决定为这个日志添加一个document_type字段,以便在logstash中基于它进行筛选。
我是这样做的:
filebeat.prospectors:
- input_type: log
paths:
- /var/log/apache2/access.log
document_type: apache-access
- input_type: log
paths:
- /var/www/webapp/storage/logs/laravel.log
- input_type: log
paths:
- /opt/myservice/server/server.log
document_type: myservice我已经将document_type: myservice添加到了myservice的日志中,并且相信我已经按照文档这里这样做了。而且,它与我为apache访问日志所做的相同。
然而,当我重新启动文件节拍时,它将不会再次启动。我已经试过查看日志中的文件,但是似乎没有任何关于为什么它不会启动的东西。
如果我注释掉了document_type: myservice,比如这个#document_type: myservice,然后重新启动文件,就会正确地引导它--这意味着它一定是与该行有关吗?
问题:
我在这里做错什么了吗?
除了使用if [type] == "myservice"之外,是否有其他方法可用于将logstash筛选器应用于此日志?
发布于 2017-01-25 16:38:43
使用document_type是在Logstash中应用条件词的一种很好的方法。另一种方法是在Filebeat中应用标签或字段。
配置的问题在于您添加的document_type: myservice的缩进。注意缩进与document_type: apache-access是如何不同的。document_type字段应该与paths和input_type级别相同,因为它们都是探矿者选项。
您可以使用filebeat.sh -c /etc/filebeat/filebeat.yml -e -configtest测试配置文件。
您还可以通过像http://www.yamllint.com这样的工具运行您的配置,只需检查它是否有效。
https://stackoverflow.com/questions/41845253
复制相似问题