Плагин ввода logstash exec - удалить запуск команды из @message

Я использую logstash 1.5.1 на машине с Windows. Я должен сделать вызов для отдыха, который доставляет мне вывод JSON.

Поэтому я использую exec. В результате больше нет json :-(.

@message этого события будет представлять собой весь стандартный вывод команды как одно событие. https://www.elastic.co/guide/en/logstash/current/plugins-inputs-exec.html

Моя конфигурация logstash

input {
    exec {
        command => "C:\bin\curl\curl.exe http://localhost:8080/jolokia/read/metrics:name=trx.process.approved" 
        interval => 10
        codec => json { charset => "CP1252" }
    }
}
output {
  elasticsearch {
    node_name => test
    host => myhost  
  }
}

Вывод под cmd

{"request":{"mbean":"metrics:name=trx.process.approved","type":"read"},"value":{"Count":14},"timestamp":1434643572,"status":200}

Неразборный вывод на elasticsearch (3 строки!)


C:\Daten\tools\logstash-1.5.1\bin>C:\bin\curl\curl.exe http://localhost:8080/jolokia/read/metrics:name=trx.process.approved
{"request":"mbean":"metrics:name=trx.process.approved","type":"read"},"value":{"Count":14},"timestamp":1434641808,"status":200}

Обычно я пытался вырезать только вывод JSON, но почему-то я ограничен в Windows в отношении этого знания.

Я пробовал разделить плагин фильтра, чтобы разделить эти три строки, но не знаю, как удалить строки 1 и 2.

filter {
    split {     
    }
}

Любые указатели приветствуются.

В конце концов, я хочу, чтобы эта строка была отправлена ​​​​в elasticsearch:

{"request":{"mbean":"metrics:name=trx.process.approved","type":"read"},"value":{"Count":14},"timestamp":1434641808,"status":200}

person cinhtau    schedule 18.06.2015    source источник


Ответы (1)


Сам нашел решение

filter {
    split { 
    }
    if  [message] !~ "^{" {
        drop {}
    }
}

используя условное выражение с регулярным выражением, если строка не начинается с «{», строка будет удалена.

person cinhtau    schedule 19.06.2015