Logstash配置变量扩展
我的logstash过滤器有一个奇怪的问题,直到昨天还在工作 这是我的.conf文件:Logstash配置变量扩展,logstash,filebeat,Logstash,Filebeat,我的logstash过滤器有一个奇怪的问题,直到昨天还在工作 这是我的.conf文件: input { beats { port => 5044 } } filter { if "access.log" in [source] { grok { match => { "message" => "%{GREEDYDATA:messagebefore}\[%{HTTPDATE:real_date}\]\ %{GREEDYDATA:messa
input {
beats {
port => 5044
}
}
filter {
if "access.log" in [source] {
grok {
match => { "message" => "%{GREEDYDATA:messagebefore}\[%{HTTPDATE:real_date}\]\ %{GREEDYDATA:messageafter}" }
}
mutate {
replace => { "[message]" => "%{messagebefore} %{messageafter}" }
remove_field => [ "messagebefore" ]
remove_field => [ "messageafter" ]
}
date {
match => [ "real_date", "dd/MMM/YYYY:HH:mm:ss Z" ]
}
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
}
}
问题在于,在输出中,派生变量%messagebefore和%message after作为文本而不是内容传递
例如:
source:/var/log/nginx/access.log message:%{messagebefore} %{messageafter}...
奇怪的是,在昨天下午之前,这台机器运转良好。我也明白,这可能不是处理nginx日志的最佳方式,但我仅将此作为示例,因为它也会影响我的所有其他配置文件
我的环境:
麋鹿堆栈在Centos 7上作为docker容器运行,源于docker.io/sebp/ELK
Filebeat在Centos 7客户端上运行
有什么想法吗
谢谢。我自己解决了这个问题,并在这里发布,以防有人遇到同样的问题 在构建docker容器时,我无意中留下了另一个.conf文件,其中也包含对access.log的引用。这两个.conf文件在logstash处理这两个文件时发生冲突。我删除了错误的文件,它已经开始工作了