Logstash从配置动态创建字段

Logstash从配置动态创建字段,logstash,logstash-configuration,Logstash,Logstash Configuration,我试图从一个过滤器创建动态路径,但在尝试启动logstash时出现了错误。 现场服务是从logstash发送的,我可以在kibana上看到 不是我想要的环境变量。我想从logstash得到一个字段,当beat发送到logstash时 例如: 使用以下命令发送数据:field:service,data:apache 日志存储: filter { data_dictionary_path => '/var/log/apache/data.log' } 有什么想法吗?:) 配置文件: fi

我试图从一个过滤器创建动态路径,但在尝试启动logstash时出现了错误。 现场服务是从logstash发送的,我可以在kibana上看到


不是我想要的环境变量。我想从logstash得到一个字段,当beat发送到logstash时

例如:

使用以下命令发送数据:field:service,data:apache

日志存储:

filter {
  data_dictionary_path => '/var/log/apache/data.log'
}
有什么想法吗?:)

配置文件:

filter {
  data_dictionary_path => '/var/log/${service}/data.log'
}

:message=>"No such file or directory - /var/log/${service}/data.log", :backtrace=>["org/jruby/RubyFile.java:366:in `initialize'",
错误消息:

filter {
  data_dictionary_path => '/var/log/${service}/data.log'
}

:message=>"No such file or directory - /var/log/${service}/data.log", :backtrace=>["org/jruby/RubyFile.java:366:in `initialize'",

.bashrc
文件中,按如下所示设置环境变量

导出服务=/var/log/continuing\u路径
在配置文件中

filter {
   data_dictionary_path => "${SERVICE}/data.log"
}

你试过grok过滤器了吗

grok {
match => { "data_dictionary_path" => "/%{GREEDYDATA}/%{GREEDYDATA}/%{GREEDYDATA:service}/%{GREEDYDATA}" }
      }

我想在这里添加的不是环境变量,而是我发送的来自beat的字段。很抱歉造成混乱。:)在将字段添加到另一个变量之前,我尝试使用grok创建新字段,但得到了相同的错误。