While the memory leak is fixed in logstash 5.6.9 the logstash-input-udp plugin is broken. A fixed plugin got released as version 3.3.2.
The code change is https://github.com/logstash-plugins/logstash-input-udp/commit/7ecec49a3f1a0f8b51c77bd9243b8cc0dbebaeb8.
The discussion is at https://discuss.elastic.co/t/udp-input-is-crashing/128485.
So instead of fiddling again with plugin updates and offline bundles we decided to just go down the ugly road of abusing ansible, and install a file copy of the udp.rb file. This is horrible but works.
- name: check for br0ken logstash udp input plugin version
shell: /usr/share/logstash/bin/logstash-plugin list --verbose logstash-input-udp | grep -E '3\.3\.1'
register: logstash_udp_plugin_check
ignore_errors: True
tags:
- "skip_ansible_lint"
- name: install fixed udp input plugin
copy:
src: "hacks/udp.rb"
dest: "/usr/share/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-udp-3.3.1/lib/logstash/inputs/udp.rb"
owner: "root"
group: "root"
mode: 0644
when: logstash_udp_plugin_check.rc == 0
notify: restart logstash
Kudos to Martin and Paul for handling this one swiftly.