Как разобрать xml-файл с фильтрами logstash

Я пытаюсь проиндексировать несколько простых XML-файлов с помощью asticsearch и logstash. Пока что у меня есть настроенный ELK-стек и logstash-экспедитор. Я пытаюсь использовать документацию для настройки фильтра XML, но я просто не могу понять, как это правильно.

Мой формат XML довольно прямолинеен;

<Recording>

  <DataFile description="desc" fileName="test.wav" Source="mic" startTime="2014-12-12_121212" stopTime="2014-12-12_131313"/>

</Recording>

Я просто хочу, чтобы каждый файл был записью в asticsearch, а каждый параметр в теге DataFile - это значение ключа, которое я могу искать. Поскольку документация меня ни к чему не привела, как бы выглядел такой фильтр? Я также попытался использовать ответы в этом и этом без какой-либо удачи.

1 ответ

Решение

Добавьте нижеприведенную конфигурацию logstash-forwarder и измените IP-адрес сервера logstash, путь к сертификату и путь к журналу соответственно.

{
"network": {
"servers": [ "x.x.x.x:5043" ],
"ssl ca": " / cert/server.crt",
"timeout": 15
},
"files": [
{
"paths": [
"D:/ELK/*.log"
],
"fields": { "type": "log" }
}
]
}

Добавьте плагин ввода ниже в конфигурацию вашего сервера logstash. Измените сертификат, путь к ключу и имя соответственно.

lumberjack {
  port => 5043
  type => "lumberjack"
  ssl_certificate => " /cert/server.crt"
  ssl_key => "D:/ELK/logstash/cert/server.key"
  codec => multiline {
             pattern => "(\/Recording>)"
             what => "previous"
            negate => true
            }
}

Теперь добавьте приведенный ниже фильтр grok в разделе фильтра logstash.

grok {
        match   =>  ["message", "(?<content>(< Recording(.)*?</Recording>))"]
        tag_on_failure => [ ]

        }

Наконец в выходной сеанс logstash добавить

elasticsearch {
                    host => "127.0.0.1"
                    port => "9200"
                    protocol => "http"
                    index => "Recording-%{+YYYY.MM.dd}"
                    index_type => "log"
                } 

Теперь, когда вы добавляете свои XML-сообщения в ваш лог-файл. Каждая запись будет обработана и сохранена на вашем сервере эластичного поиска.

Спасибо,

Другие вопросы по тегам