【发布时间】:2017-02-28 08:58:00
【问题描述】:
我正在从 Kafka 主题中提取一些 XML 文件流,并尝试使用 XML 过滤器插件通过 Logstash 获取 XML 文件的元素之一,但无法这样做;在下面提到细节;
流的 XML 块:
`<?xml v="1.0" enc="UF-8"?>
<\ns0:LogRequest xmlns:ns0="http://SOME/URL/SOME.xsd">
<\ns1:Header xmlns:ns1="http://SOME/URL/SOME1.xsd">
<\ns1:ApplicationID>ABC<\/ns1:ApplicationID>
<\ns1:ComponentName>XYZ<\/ns1:ComponentName>
<\ns1:Hostname>MYHOST<\/ns1:Hostname>
<\ns1:Timestamp>2017-02-27T23:07:44.318+05:30<\/ns1:Timestamp>
<\ns1:TransactionDomain>Some Domain <\/ns1:TransactionDomain>
<\ns1:TransactionType>Some Type<\/ns1:TransactionType>
<\ns1:Message>Some Message <\/ns1:Message>
<\ns1:AltKey>\n
<\ns1:AltKeyName>LOG<\/ns1:Alt\KeyName>
<\ns1:AltKeyValue>Some Key <\/ns1:AltKeyValue>\n
<\TimeDuration>1488217064317<\/TimeDuration>\n
<\Status>Some Status <\/Status>\n
<\Audit>true\n<\/ns0:LogRequest>`
我想获取“时间戳”的值并将其保存为新字段但无法这样做,
Logstash.conf:
filter {
xml {
store_xml => "false"
remove_namespaces => "false"
source => "message"
namespaces => {
"ns0" => "http://SOME/URL/SOME.xsd"
"ns1" => "http://SOME/URL/SOME1.xsd"
}
xpath => [ "/ns0:LogRequest/ns1:Timestamp/text()", "mytime" ]
}
mutate {
#convert => { "mytime" => "string" }
add_field => ["time_stamp", "%{mytime}"]
}
}
Expected Output :
"time_stamp" => "2017-02-27T23:07:44.318+05:30"
Actual/Present Output :
"time_stamp" => "%{mytime}"
Any help will be really appreciated !!
【问题讨论】: