elasticsearch Logstash exec插件-可用参数,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch Logstash exec插件-可用参数,elasticsearch,logstash,elasticsearch,Logstash" />

elasticsearch Logstash exec插件-可用参数

elasticsearch Logstash exec插件-可用参数,elasticsearch,logstash,elasticsearch,Logstash,我的日志存储配置文件中包含以下内容: input { file { path => "C:/myfile.txt" } } output { exec { command => 'mytest.bat %message% %path%' interval => 0 } } %message%和%path%参数正在传递到批处理文件 我期待看到: 消息包含当前正在分析的输入文件的行 路径包含C:/myfile.txt 但是,批处

我的日志存储配置文件中包含以下内容:

input {
  file {
    path => "C:/myfile.txt"
  }
}

output {    
  exec {
    command => 'mytest.bat %message% %path%'
    interval => 0
 }
}
%message%
%path%
参数正在传递到批处理文件

我期待看到:

  • 消息
    包含当前正在分析的输入文件的行
  • 路径
    包含C:/myfile.txt
但是,批处理文件会收到以下内容:

消息
%message%

路径
“C:/logstash-1.5.0/vendor/bundle/jruby/1.9/bin”

定义占位符的正确方法是什么:

  • 要输出的当前行
  • 正在分析的文件的名称

谢谢

请将您的配置修改为

input {
  file {
    path => "C:/myfile.txt"
  }
}

output {    
  exec {
    command => "mytest.bat %{message} %{path}"
    interval => 0
 }
}

如果要获取事件中的字段,请使用
%{message}
,而不是
%message%

谢谢,%{path}现在提供输入文件的名称;但是,%{message}只是输出“{message}”发现了问题。%{message}似乎不能与json一起使用,因此,如果在logstash配置中定义了codec=json,%{message}将无法工作。如果没有编解码器的东西,它会。如果文件包含json,%{message}将给出json的第一部分,但不是全部。引号中的“%{message}”将给出完整的json,但%{path}不会被设置。你的意思是什么?你现在有什么问题?%{三十} 将给出XXX字段中的所有值。