Индексируйте содержимое файла KV с помощью Logstash в одном документе динамически - PullRequest
2 голосов
/ 11 октября 2019

У меня есть много файлов свойств со следующими структурами ключ = значение, пример данных:

rejets.cache.temporaire.time=60
data.cache.referentiel.time=10
data.cache.temporaire.time=60
data.cache.getinfos.time=200

Конфигурация входного файла:

file {
        path => [ "C:/logstash-7.3.1/data/input/data_conf_recette/keyvalue/*" ]

        start_position => beginning
        type => "config_file_kv_recette"
        codec => multiline {
        pattern => "\n"
        what => "previous"
        negate => true
        }
}

Я хочу проиндексировать этот файлкак документ эластичный поиск динамически (имя поля), например:

 {
   rejets.cache.temporaire.time:60
   data.cache.referentiel.time:10
   data.cache.temporaire.time:60
    data.cache.getinfos.time:200
  }

Я использовал следующую конфигурацию, но я обнаружил, что в моем индексе каждое поле индексируется в одном документе, поэтому в моем случае у меня есть 4проиндексированные документы:

mutate {
             gsub => [ "message", "[\\\\]r", "esp" ]
             gsub => [ "message", "[\\\\]n", "ace" ]
        }

        ruby {
             code => "begin; event['message'] = event['message'].split(/espace/); rescue Exception; end"
        }

        kv {
            source => "message"
            value_split => "="
            field_split => "\n"
        }

        grok {
                        match => { "message" => "(?<param>[^=]*)=%{GREEDYDATA:value}" }
                }

        if "_grokparsefailure" in [tags] {
                        drop {}
                }

        mutate {
            remove_field => ["message"]
        }  

Как мне это сделать, пожалуйста? спасибо за помощь

...