Я недавно установил плагин mqtt logstash.
Я просто использую это на своем локальном хосте. У меня запущен сервер от комаров, и я могу публиковать темы и сообщения, подписываться на них и просматривать сообщения.
Но когда я хочу получить эти сообщения в качестве входа в logstash, что-то идет не так.
Я просто использую фильтр вот так (по умолчанию все в порядке).
input {
mqtt {
topic => "Temp"
}
Но я получаю это сообщение об ошибке каждый раз, когда публикую сообщение в теме Temp.
2018-10-29T13:22:37,248][ERROR][logstash.pipeline ] A plugin had an unrecoverable error. Will restart this plugin.
Pipeline_id:test
Plugin: <LogStash::Inputs::Mqtt topic=>"Temp", id=>"2e42558ecbc14af5b8d3bbf6243a987cd9accfa6ba94d9802a86bed16bf90958",
enable_metric=>true, codec=><LogStash::Codecs::Plain id=>"plain_1442bf51-53fb-43d1-a09c-48b29c870f66",
enable_metric=>true, charset=>"UTF-8">, mqttHost=>"localhost", port=>1883, ssl=>false, client_id=>"logstash-mqtt-inputd42q", clean_session=>true, qos=>0>
Error: Direct event field references (i.e. event['field']) have been disabled in favor of using event get and set methods (e.g. event.get('field')).
Please consult the Logstash 5.0 breaking changes documentation for more details.
Exception: NoMethodError
Stack: C:/logstash/logstash-6.4.2/logstash-core/lib/logstash/event.rb:43:in `method_missing'
C:/logstash/logstash-6.4.2/vendor/bundle/jruby/2.3.0/gems/logstash-input-mqtt-0.0.2/lib/logstash/inputs/mqtt.rb:63:in `block in run'
C:/logstash/logstash-6.4.2/vendor/bundle/jruby/2.3.0/gems/logstash-codec-plain-3.0.6/lib/logstash/codecs/plain.rb:35:in `decode'
C:/logstash/logstash-6.4.2/vendor/bundle/jruby/2.3.0/gems/logstash-input-mqtt-0.0.2/lib/logstash/inputs/mqtt.rb:62:in `block in run'
C:/logstash/logstash-6.4.2/vendor/bundle/jruby/2.3.0/gems/mqtt-0.5.0/lib/mqtt/client.rb:405:in `block in get'
C:/logstash/logstash-6.4.2/vendor/bundle/jruby/2.3.0/gems/mqtt-0.5.0/lib/mqtt/client.rb:437:in `block in get_packet'
org/jruby/RubyKernel.java:1292:in `loop'
C:/logstash/logstash-6.4.2/vendor/bundle/jruby/2.3.0/gems/mqtt-0.5.0/lib/mqtt/client.rb:435:in `get_packet'
C:/logstash/logstash-6.4.2/vendor/bundle/jruby/2.3.0/gems/mqtt-0.5.0/lib/mqtt/client.rb:404:in `get'
C:/logstash/logstash-6.4.2/vendor/bundle/jruby/2.3.0/gems/logstash-input-mqtt-0.0.2/lib/logstash/inputs/mqtt.rb:61:in `run'
C:/logstash/logstash-6.4.2/logstash-core/lib/logstash/pipeline.rb:409:in `inputworker'
C:/logstash/logstash-6.4.2/logstash-core/lib/logstash/pipeline.rb:403:in `block in start_input'