Beats version 5.0.0

edit

The list below covers changes between 1.x to 5.0.0 releases.

Breaking changes

edit

Affecting all Beats

  • Rename the filters section to processors. 1944
  • Require braces for environment variable expansion in config files 1304
  • On DEB/RPM installations, the binary files are now found under /usr/share/{{beat_name}}/bin, not in /usr/bin. 1385
  • The logs are written by default to self rotating files, instead of syslog. 1371
  • Remove deprecated host option from elasticsearch, logstash and redis outputs. 1474
  • All configuration settings under shipper: are moved to be top level configuration settings. I.e. shipper.name: becomes name: in the configuration file. 1570
  • The topology_expire option of the Elasticserach output was removed. 1907
  • The Elasticsearch template is now loaded by default. 1993
  • The Redis output index setting is renamed to key. index still works but it’s deprecated. 2077
  • The undocumented file output index setting was removed. Use filename instead. 2077
  • Change Elasticsearch output index configuration to be based on format strings. If index has been configured, no date will be appended anymore to the index name. 2119
  • If the path specified by the -c flag is not absolute and -path.config is not specified, it is considered relative to the current working directory. 2245
  • Rename tls configurations section to ssl. 2330
  • Rename certificate_key configuration to key. 2330
  • Replace tls.insecure with ssl.verification_mode setting. 2330
  • Replace tls.min/max_version with ssl.supported_protocols setting requiring full protocol name. 2330
  • A dynamic mapping rule is added to the default Elasticsearch template to treat strings as keywords by default. 2688

Filebeat

  • Scalar values in used in the fields configuration setting are no longer automatically converted to strings. 1092
  • Count field was removed from event as not used in filebeat 778
  • Default location for the registry file was changed to be data/registry from the binary directory, rather than .filebeat in the current working directory. This affects installations for zip/tar.gz/source, the location for DEB and RPM packages stays the same. 1373
  • The state for files which fall under ignore_older is not stored anymore. This has the consequence, that if a file which fell under ignore_older is updated, the whole file will be crawled.
  • Ignore symlinks by default, but they can be enabled with symlinks config 1686 2478
  • Set close_inactive default to 5 minutes (was 1 hour before)
  • Set clean_removed and close_removed to true by default

Packetbeat

  • Rename output fields in the dns package. Former flag recursion_allowed becomes recursion_available. 803 Former SOA field ttl becomes minimum. 803
  • The fully qualified domain names which are part of output fields values of the dns package now terminate with a dot. 803
  • Remove the count field from the exported event 1210
  • Configuration of redis topology support changed. 1353
  • Move all Packetbeat configuration options under the packetbeat namespace 1417
  • Set enabled ` in packetbeat.protocols.icmp configuration to true by default. 1988
  • Group HTTP fields under http.request and http.response 2167
  • Export http.request.body and http.response.body when configured under include_body_for 2167
  • Move ignore_outgoing config to packetbeat.ignore_outgoing 2393

Winlogbeat

  • The message_inserts field was replaced with the event_data field 1053
  • The category field was renamed to task to better align with the Windows Event Log API naming 1053
  • Remove the count field from the exported event 1218

Bugfixes

edit

Affecting all Beats

  • Logstash output will not retry events that are not JSON-encodable 927
  • Drain response buffers when pipelining is used by Redis output. 1353
  • Unterminated environment variable expressions in config files will now cause an error 1389
  • Fix issue with the automatic template loading when Elasticsearch is not available on Beat start. 1321
  • Fix bug affecting -cpuprofile, -memprofile, and -httpprof CLI flags 1415
  • Fix race when multiple outputs access the same event with logstash output manipulating event 1410 1428
  • Seed random number generator using crypto.rand package. https://github.com/elastic/beats/pull/1503{1503]
  • Fix beats hanging in -configtest 1213
  • Reset backoff factor on partial ACK. 1803
  • Fix beats load balancer deadlock if max_retries: -1 or publish_async is enabled in filebeat. 1829
  • Fix logstash output with pipelining mode enabled not reconnecting. 1876
  • Empty configuration sections become merge-able with variables containing full path. 1900
  • Fix error message about required fields missing not printing the missing field name. 1900
  • Fix sync publisher PublishEvents return value if client is closed concurrently. 2046
  • Fix Logstash output handles error twice when asynchronous sending fails. 2441
  • Fix Elasticsearch structured error response parsing error. 2229
  • Fixed the run script to allow the overriding of the configuration file. 2171
  • Fix logstash output crash if no hosts are configured. 2325
  • Fix beats failing to start due to invalid duplicate key error in configuration file. 2521
  • Fix panic on non writable logging directory. 2571
  • Fix ignoring all fields from drop_fields in case the first field is unknown. 2685
  • Fix dynamic configuration int/uint` to float type conversion. 2698
  • Fix primitive types conversion if values are read from environment variables. 2698

Filebeat

  • Stop filebeat if started without any prospectors defined or empty prospectors 644 647
  • Improve shutdown of crawler and prospector to wait for clean completion 720
  • Omit fields from Filebeat events when null 899
  • Improvements in registrar dealing with file rotation. 1281
  • Multiline reader normalizing newline to use \n. 1552
  • Fix potential data loss between Filebeat restarts, reporting unpublished lines as published. 2041
  • Fix open file handler issue. 2028 2020
  • Fix async publisher sending empty events 2455
  • Fix potential issue with multiple harvester per file on large file numbers or slow output 2541
  • Fix input buffer on encoding problem. 2416
  • Fix issue when clean_removed and clean_inactive were used together that states were not directly removed from the registry.
  • Fix issue where upgrading a 1.x registry file resulted in duplicate state entries. 2792
  • Fix registry cleanup issue when files falling under ignore_older after restart. 2818

Packetbeat

  • Create a proper BPF filter when ICMP is the only enabled protocol 757
  • Check column length in pgsql parser. 565
  • Harden pgsql parser. 565
  • Add missing nil-check to memcached GapInStream handler. 1162
  • Fix NFSv4 Operation returning the first found first-class operation available in compound requests. 1821
  • Fix TCP overlapping segments not being handled correctly. 1898
  • Fix mapping for some Packetbeat flow metrics that were not marked as being longs. 2177
  • Fix handling of messages larger than the maximum message size (10MB). 2470
  • Fix the bpf_filter setting. 2660
  • Fix compile issues for OpenBSD. 1347

Winlogbeat

  • Fix panic when reading messages larger than 32K characters on Windows XP and 2003. 1498
  • Fix panic that occurs when reading a large events on Windows Vista and newer. 1499
  • Adding missing argument to the "Stop processing" log message. 1590
  • Fix issue with rendering forwarded event log records. 1891
  • Fix potential data loss between Winlogbeat restarts, reporting unpublished lines as published. 2041
  • Fix corrupt registry file that occurs on power loss by disabling file write caching. 2313

Added

edit

Affecting all Beats

  • Update to Go 1.7. 2306
  • Add option to Elasticsearch output to pass http parameters in index operations 805
  • Improve Logstash and Elasticsearch backoff behavior. 927
  • Add Kafka output. 942 2188 2190 2284
  • Add config file option to configure GOMAXPROCS. 969
  • Improve shutdown handling in libbeat. 1075
  • Log total non-zero internal metrics on shutdown. 2349
  • Add fields and fields_under_root options under the shipper configuration 1092
  • Add the ability to use a SOCKS5 proxy with the Logstash output 823
  • The -configtest flag will now print "Config OK" to stdout on success 1249
  • Add support for TLS to Redis output. 1353
  • Add SOCKS5 proxy support to Redis output. 1353
  • Failover and load balancing support in Redis output. 1353
  • Multiple-worker per host support for Redis output. 1353
  • Added ability to escape ${x} in config files to avoid environment variable expansion 1389
  • Configuration options and CLI flags for setting the home, data and config paths. 1373
  • Configuration options and CLI flags for setting the default logs path. 1437
  • Add Elasticsearch template files compatible with Elasticsearch 2.x. 1501
  • Load the mapping template depending on the Elasticsearch version. 1993
  • Add conditions to processors. 1623
  • Enhance contains condition to work on fields that are arrays of strings. 2237
  • Add OR/AND/NOT to the condition associated with the processors. 1983
  • Improve error message if compiling regular expression from config files fails. 1900
  • Compression support in the Elasticsearch output. 1835
  • Periodically log internal metrics. 1955
  • Add enabled setting to all output modules. 1987
  • Command line flag -c can be used multiple times. 1985
  • Add -E CLI flag for overwriting single config options via command line. 1986
  • Check stdout being available when console output is configured. 2035
  • Add script to generate the Kibana index-pattern from fields.yml. 2122
  • Enhance Redis output key selection based on format string. 2169
  • Configurable Redis keys using filters and format strings. 2169
  • Lookup the configuration file relative to the -path.config CLI flag. 2245
  • Re-write import_dashboards script in Golang. 2155
  • Add support for encrypted private key files by introducing ssl.key_passphrase setting. 2330
  • Add beat.version fields to all events.
  • Make sure Beats sent always float values when they are defined as float by sending 5.00000 instead of 5. 2627

Filebeat

  • Add the ability to set a list of tags for each prospector 1092
  • Add JSON decoding support 1143
  • The registry format was changed to an array instead of dict. The migration to the new format will happen automatically at the first startup. 1703
  • Introduce close_removed and close_renamed harvester options. 1600
  • Introduce close_eof harvester option. 1600
  • Add clean_removed and clean_inactive config option. 1600
  • Introduce close_timeout harvester options 1926
  • Strip BOM from first message in case of BOM files 2351
  • Add harvester_limit option 2417

Packetbeat

  • Change the DNS library used throughout the dns package to github.com/miekg/dns. 803
  • Add support for NFS v3 and v4. 1231
  • Add support for EDNS and DNSSEC. 1292
  • Add enabled setting to Packetbeat protocols. 1988
  • Add enabled setting to Packetbeat network flows configuration. 1988
  • Add Cassandra protocol analyzer to Packetbeat. 1959
  • Match connections with IPv6 addresses to processes 2254
  • Add IP address to -devices command output 2327
  • Add configuration option for the maximum message size. Used to be hard-coded to 10 MB. 2470

Metricbeat

  • First public release, containing the following modules: system, Apache, MySQL, PostgreSQL, Nginx, Redis, MongoDB, and Zookeeper. Metricbeat is replacing Topbeat in 5.0, and its default behaviour is to export system statistics like CPU usage, memory usage, Disk IO similar with what Topbeat 1.x is doing.
  • Add pgid field to process information. https://github.com/elastic/beats/pull/ 2021[2021]
  • Use the new scaled_float Elasticsearch type for the percentage values. 2156
  • Improve mapping by converting half_float to scaled_float and integers to long. 2430
  • Add experimental cgroup metrics to the system/process MetricSet. 2184
  • Add experimental haproxy module. 2384

Winlogbeat

  • Add caching of event metadata handles and the system render context for the wineventlog API 888
  • Improve config validation by checking for unknown top-level YAML keys. 1100
  • Add the ability to set tags, fields, and fields_under_root as options for each event log 1092
  • Add additional data to the events published by Winlogbeat. The new fields are activity_id, event_data, keywords, opcode, process_id, provider_guid, related_activity_id, task, thread_id, user_data, and version. 1053
  • Add event_id, level, and provider configuration options for filtering events 1218
  • Add include_xml configuration option for including the raw XML with the event 1218

Deprecated

edit

Affecting all Beats

  • The support for doing GeoIP lookups is deprecated and will be removed in version 6.0. 1601
  • Topology map is deprecated. This applies to the settings: refresh_topology_freq, topology_expire, save_topology, host_topology, password_topology, db_topology.
  • Setting port has been deprecated in Redis and Logstash outputs. 2620

Filebeat

  • Deprecate close_older option and replace it with close_inactive. 2051
  • Deprecate force_close_files option and replace it with close_removed and close_renamed. 1600