gpt4 book ai didi

tomcat - 我如何在 logstash 5.1.2 中为 tomcat/java 配置多行

转载 作者:行者123 更新时间:2023-11-28 21:57:49 25 4
gpt4 key购买 nike

我使用 5.1.2 版本的 logstash、filebeat、elasticsearch...“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 #, { at line 9, column 11 (byte 96) after filter {\n if [type] == \"tomcat-pro\" {\n codec "}

我在 google 上读到建议在 filebeat 中使用 multiline 而不是在 logstash 中,但我配置得不是很好...

有人可以帮助我吗? :(

PD:我是西类牙语,抱歉“谷歌翻译”。Si puedes responder en español, sería mucho mejor ;)

最佳答案

我想在 Filebeat 中进行多行处理是要走的路,所以我将展示一个 Filebeat 配置,而不是调试你发布的 Logstash 配置错误,其中 Filebeat 在发送事件之前合并了行。

如果您只将 Logstash 用于多行过滤器,那么您可以直接从 Filebeat 输出到 Elasticsearch。但如果您确实需要输出到 Logstash,请遵循 instructions用于配置 Filebeat 以与 Logstash 一起使用。

我在下面使用的模式还没有彻底tested所以请根据实际日志进行测试。

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']

关于tomcat - 我如何在 logstash 5.1.2 中为 tomcat/java 配置多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41873228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com