如何解决我如何在Logstash 5.1.2中为Tomcat / Java配置多行
我认为在Filebeat中进行多行处理是解决问题的方法,因此与其调试您发布的Logstash配置错误,不如我展示一个Filebeat配置,其中Filebeat在发送事件之前将这些行合并在一起。
如果仅将Logstash用于多行过滤器,则可以直接从Filebeat输出到Elasticsearch。但是,如果确实需要输出到Logstash,请按照说明配置与Logstash一起使用的Filebeat。
我在下面使用的模式尚未经过全面测试,因此请对照实际日志进行测试。
filebeat.prospectors:
- document_type: catalina-wine-mixer
paths:
- /opt/tomcat-test/logs/catalina.out
multiline.pattern: '^([0-9]{4}-[0-9]{2}-[0-9]{2})|([J|F|M|A|M|S|O|N|D][a-z]{2} [0-9]{1,2}, [0-9]{2})'
multiline.negate: true
multiline.match: after
output.elasticsearch:
hosts: ['http://localhost:9200']
解决方法
我使用logtash,filebeat,elasticsearch的5.1.2版本…“ ELK”
我尝试从tomcat服务器发送日志(catalina.out和apps-
java日志),但是无法完成,因为存在logstash多行过滤器/编解码器的配置问题。
我遵循以下说明
https://blog.lanyonm.org/articles/2014/01/12/logstash-multiline-tomcat-log-
parsing.html
Logstash.conf是这样的:
input {
beats {
port => 9000
}
}
filter {
if [type] == "tomcat-pro" {
codec => "multiline" {
patterns_dir => "/opt/logstash/patterns"
pattern => "(^%{TOMCAT_DATESTAMP})|(^%{CATALINA_DATESTAMP})"
negate => true
what => "previous"
}
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "tomcat-pro"
}
}
Logstash接收filebeat文件。
Filebeat.yml
filebeat.prospectors:
- input_type: log
document_type: tomcat-pro
paths:
- /opt/tomcat-test/logs/catalina.out
当我启动该服务时,控制台会向我显示以下内容:
[2017-01-26T13:10:33,712][ERROR][logstash.agent ] fetched an invalid config {:config=>"input {\n beats {\n port => 9000\n }\n}\n\nfilter {\n if [type] == \"tomcat-pro\" {\n codec => \"multiline\" {\n patterns_dir => \"/opt/logstash/patterns\"\n pattern => \"(^%{TOMCAT_DATESTAMP})|(^%{CATALINA_DATESTAMP})\"\n negate => true\n what => \"previous\"\n }\n }\n}\n\noutput {\n elasticsearch {\n hosts => [\"localhost:9200\"]\n index => \"tomcat-pro\"\n } \n}\n",:reason=>"Expected one of #,{ at line 9,column 11 (byte 96) after filter {\n if [type] == \"tomcat-pro\" {\n codec "}
摘要:
fetched an invalid config
reason=>"Expected one of #,column 11 (byte 96) after filter {\n if [type] == \"tomcat-pro\" {\n codec "}
我在Google中读过,建议在Filebeat中使用多行而不是在Logstash中使用多行,但是我的配置不很好…
有人可以帮我吗?:(
PD:我是西班牙人,对“谷歌翻译”感到抱歉。Si puedes响应者,西班牙语,大量
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。