Logstash:Regex匹配不带扩展名的文件
我想在Logstash配置文件中排除没有扩展名的文件 我需要用正则表达式来实现它,但无法实现。我遵循的路径是排除名称中不包含点的任何文件 我读了很多书,也试过了,但Logstash一直在吃我需要排除的文件,不让它们转发到ElasticSearch 我的最后一次尝试和错误:Logstash:Regex匹配不带扩展名的文件,regex,logstash,Regex,Logstash,我想在Logstash配置文件中排除没有扩展名的文件 我需要用正则表达式来实现它,但无法实现。我遵循的路径是排除名称中不包含点的任何文件 我读了很多书,也试过了,但Logstash一直在吃我需要排除的文件,不让它们转发到ElasticSearch 我的最后一次尝试和错误: input { file { type => "exe-data" path => "/elastic-data/**/*" star
input {
file {
type => "exe-data"
path => "/elastic-data/**/*"
start_position => "beginning"
sincedb_path => "/dev/null"
codec => plain { charset => "ISO-8859-1" }
exclude => "*.gz"
exclude => "*.zip"
exclude => "^([^.]+)$"
虽然文件输入上的
exclude
可能不支持正则表达式,但您可以在筛选阶段处理此问题
filter {
if [path] =~ "^/elastic-data/[^.]+$" {
drop {}
}
otherfilter {
}
}
通过将
drop{}
作为过滤管道中的第一个阶段,您从接受无点文件中得到的影响最小。不支持正则表达式。好的,我可能会使用grok筛选器,但无法想象如果条件匹配,如何避免文件您的正则表达式是正确的,^[^。]+$
匹配一个由1个或多个字符组成的字符串,而不是
查看原始帖子中的路径:path=>“/elastic data/***”
在“elastic data”之后有一个递归,您的解决方案会在这里涵盖递归吗?我不知道怎么做。可能会在几个小时内测试它。