我使用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 #, { at line 9, column 11 (byte 96) after filter {\n if [type] == \"tomcat-pro\" {\n codec "}
我在Google中读过,建议在Filebeat中使用多行而不是在Logstash中使用多行,但是我的配置不很好…
有人可以帮我吗?:(
PD:我是西班牙人,对“谷歌翻译”感到抱歉。Si puedes响应者,西班牙语,大量
我认为在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']
问题内容: 阅读Jeff关于保护您的Cookie的博客文章:HttpOnly。我想在我的Web应用程序中实现HttpOnly cookie。 您如何告诉tomcat在会话中仅使用http cookie? 问题答案: 从Tomcat 6.0.19和Tomcat 5.5.28开始支持httpOnly。 请参阅更改日志条目以获取错误44382。 错误44382的最后一条评论指出:“此错误已应用于5.5.
我将Web服务部署为Tomcat 8.0.24上的Web应用程序(war)。应用程序罐已经过测试,它们工作正常。现在,为了配置和测试log4j,我引发了一个运行时错误(没有连接db)。 我试图只为应用程序日志设置log4j2(而不是tomcat),并使用Netbeans 8.0.2构建war。 我在类路径中包含了以下罐子: 和log4j2。WEB-INF中的xml,只有根记录器配置为捕获来自WEB
我又不明白该怎么办了。我已经重复了两天了。拜托,有什么帮忙吗?
我有一个Windows服务器,目前运行两个不同的Tomcat实例作为Windows服务。两者都有自己的目录,并且在它们之间不共享任何文件。通过设置向导安装的第一个Tomcat实例设置了CATALINA_HOME和CATALINA_BASE环境变量。第二个以相同的方式安装。它忽略全局设置并作为独立的实例运行。 问题来了。我需要安装一个自带Tomcat的产品。我已经完成了产品的安装,但是现在我需要配置
我最近将tomcat应用程序从一台Linux服务器迁移到另一台。从那以后,我在新服务器上面临一个新的文件创建问题。在新服务器中,当我尝试创建文件时失败,这在旧服务器中运行良好: 为了调查这个问题,我使用以下工具打印了工作目录: 这个调试揭示了问题背后的根本原因:旧服务器返回:var/lib/tomcat,而新服务器返回:/(根目录),因为tomcat用户没有(也不应该)对根目录的写入权限,所以无法
在建造中。我有: