Я использую 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}