Logstash 没有根据 Filebeat 的字段有条件地过滤
Logstash not conditionally filtering based on Filebeat's fields
我正在尝试将 Zabbix 日志数据输入 ELK 堆栈以进行一些时间关联。但是,我没有得到我的 Logstash 集中式服务器配置指定的过滤器,如果它作为代理我会得到。我正在使用 Filebeat 将日志条目发送到 Logstash 进行处理。但是,fields.tags
行未被 Logstash 确认,但在 Elasticsearch/Kibana 中可见。这是我的配置。
filebeat:
prospectors:
-
paths:
- /var/log/zabbix/zabbix_proxy.log
input_type: log
fields:
tags: ["zabbix", "zabbix-proxy"]
registery_file: /var/lib/filebeat/registry
output:
logstash:
hosts: ["elkls.com:5044"]
logging:
files:
rotateeverybytes: 12345656
然后是我的 Logstash 配置文件
input {
beats {
port => 5044
}
}
filter {
if "zabbix" in [fields.tags] {
grok {
match => {
"message" => {
"filter stuff here"
}
}
}
}
}
output {
elasticsearch {
hosts => [ "elkhost.com:9200"]
}
}
Logstash 不作用于 fields.tags
行,并且 filtering/cutting 从 Filebeat 传递给它的日志行。我是否正确访问了这些变量?我对其他文件做了类似的事情,但只有当 Logstash 充当代理并直接从文件读取时。
而不是
if "zabbix" in [fields.tags] {
使用
if "zabbix" in [fields][tags] {
要引用 Logstash 中的嵌套字段,请指定该字段的完整路径:[top-level field][nested field]
.
我正在尝试将 Zabbix 日志数据输入 ELK 堆栈以进行一些时间关联。但是,我没有得到我的 Logstash 集中式服务器配置指定的过滤器,如果它作为代理我会得到。我正在使用 Filebeat 将日志条目发送到 Logstash 进行处理。但是,fields.tags
行未被 Logstash 确认,但在 Elasticsearch/Kibana 中可见。这是我的配置。
filebeat:
prospectors:
-
paths:
- /var/log/zabbix/zabbix_proxy.log
input_type: log
fields:
tags: ["zabbix", "zabbix-proxy"]
registery_file: /var/lib/filebeat/registry
output:
logstash:
hosts: ["elkls.com:5044"]
logging:
files:
rotateeverybytes: 12345656
然后是我的 Logstash 配置文件
input {
beats {
port => 5044
}
}
filter {
if "zabbix" in [fields.tags] {
grok {
match => {
"message" => {
"filter stuff here"
}
}
}
}
}
output {
elasticsearch {
hosts => [ "elkhost.com:9200"]
}
}
Logstash 不作用于 fields.tags
行,并且 filtering/cutting 从 Filebeat 传递给它的日志行。我是否正确访问了这些变量?我对其他文件做了类似的事情,但只有当 Logstash 充当代理并直接从文件读取时。
而不是
if "zabbix" in [fields.tags] {
使用
if "zabbix" in [fields][tags] {
要引用 Logstash 中的嵌套字段,请指定该字段的完整路径:[top-level field][nested field]
.