Logstash翻译无法正常工作

时间:2015-09-09 09:04:29

标签: logstash

以下translate过滤器似乎不起作用。在logstash输出中,我仍然看到dport条目的值为-。但是,如果我取消注释目标选项,则过滤器会按预期工作,并在适当时生成值为test的{​​{1}}字段。为什么就地翻译不起作用?

-1

一些背景知识:我试图将所有translate { field => "dport" #destination => "test" dictionary => ["-", "-1"] } 值作为整数,因此可以通过elasticsearch正确索引该字段。字段dport应包含整数,但如果字段未初始化,则会记录值dport

2 个答案:

答案 0 :(得分:1)

我对文档的理解是错误的,或者这是bug

无论如何,这似乎有效:

translate {
  field => "dport"
  destination => "dport"
  override => "true"
  dictionary => ["-", "-1"]
}

答案 1 :(得分:0)

我通过添加此测试来测试插件的最新版本的此行为: `  描述“implace translation”做

let(:config) do
  {
    "field"       => "status",
    "dictionary"  => [ "-", "-1"]
  }
end

let(:event) { LogStash::Event.new("status" => "-") }

it "return the exact translation" do
  subject.register
  subject.filter(event)
  expect(event["translation"]).to eq("-1")
end

一切都按预期工作。请注意,翻译的默认字段是翻译字段,不确定这是否是您问题的根源。