Разбор XML с помощью Logstash

Я новичок в стеке ELK и пытаюсь обработать приведенный ниже образец XML-файла с помощью Logstash.

<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

Я убедился, что файл читается только один раз

Ценим любую помощь в этом


person san71    schedule 21.05.2016    source источник
comment
Проверьте свой XPath. Это без пространства имен   -  person Navin Rawat    schedule 22.05.2016


Ответы (1)


Использование многострочного фильтра и XML немного сложно и не очень стабильно. Я рекомендую не усложнять задачу, убедиться, что в файле нет новых строк, а затем попытаться использовать XML-фильтр.

person Roy Rubin    schedule 24.05.2016