【发布时间】:2016-05-21 13:17:49
【问题描述】:
我是 ELK 堆栈的新手,正在尝试使用 Logstash 处理以下示例 XML 文件
<Book:Body>
<Book:Head>
<bookname>Book:Name</bookname>
<ns:Hello xmlns:ns="www.example.com">
<ns:BookDetails>
<ns:ID>123456</ns:ID>
<ns:Name>ABC</ns:Name>
</ns:BookDetails>
</ns:Hello xmlns:ns="www.example.com">
</Book:Head>
</Book:Body>
我正在使用以下配置来处理数据:
input{
file{
path =>"/opt/data/book3.xml"
codec => multiline {
pattern =>"<Book:Body>"
negate => "true"
what => "previous"}
}
}
filter {
xml {
store_xml => "false"
source => "message"
remove_namespaces => "true"
xpath => [
"/Body/Head/Hello/BookDetails/ID/text()", "ID",
"/Body/Head/Hello/BookDetails/Name/text()", "Name"
]
}
mutate {
add_field => ["IDIndexed", "%{ID}"]
add_field => ["NameIndexed", "%{Name}"]
}
}
output{
elasticsearch {hosts=>"localhost"}
stdout { codec => rubydebug }
}
我已为 Logstash 启用详细模式,并且没有显示错误,但输出在以下点停止
Starting pipeline {:id=>"main", :pipeline_workers=>1, :batch_size=>125, :batch_delay=>5, :max_inflight=>125, :level=>:info}
Pipeline main started
我已确保该文件只被读取一次
感谢您对此的任何帮助
【问题讨论】:
-
检查您的 XPath。它没有任何命名空间
标签: logstash elastic-stack logstash-configuration