17 janvier 2017

Brewing in Beats: Export environment variables used to start a process

Par Monica Sarbu

Welcome to the weekly Brewing in Beats ! With this weekly series, we are keeping you up to date with all the changes in Beats, including the latest commits, releases and other learning resources.

Export environment variables used to start a process

With this change, Metricbeat exports the environment variables that were used to start a process. This is a useful feature especially for monitoring Docker containers, where environment variables are often used for configuration. The data is reported as a dictionary under the system.process.env key. To reduce the number of exported environment variables and to avoid leaking sensitive data, you must define a whitelist in the configuration file under process.env.whitelist. For example:

metricbeat.modules:
  - module: system
    metricsets: [process]
    process.env.whitelist: ['USER', 'PATH']

This feature is available on FreeBSD, Linux and OS X.

Add experimental support for plugins with Go 1.8 on Linux

Golang 1.8 is expected to be released in February 2017 and it comes with support for plugins on Linux. We created an experiment to add support for plugins in Beats using the newest, not yet released Go version. It creates plugins for:

  • libbeat outputs
  • libbeat processors
  • Packetbeat protocol analyzers
  • Heartbeat monitors
  • Metricbeat modules

More features and fixes

Metricbeat

  • Add dbstatus metricset to the MongoDB module to provide an overview of a particular mongo database #3228
  • Unified handling of the statically and dynamically configured modules #3308
  • Restructure dynamic module reloading #3342
  • Fix generator Beat path #3300

Filebeat

  • Migrate Filebeat modules prototype to Golang #3333 part of #3159
  • Fixed bug where the registry file was not properly updated and required a second restart after upgrading #3322
  • Pass copies of the states to the prospector to simplify logic #3309
  • Fix issue where Filebeat was crashing on 32 bit systems when compiled with Go 1.7.4 #3338

Generators

  • Replace cookiecutter with a custom script to generate a Beat #2996

All Beats

  • Add codec configuration option for the file, console and redis outputs #3285
  • Add support for printing the configuration file in debug mode for troubleshooting purposes #3304
  • Generate NOTICE file to include the licenses of all 3rd party libraries used by Beats #3334 #3379
  • Add support for short and byte values to the templates #3335
  • Add support for nested values with empty property list to the templates #3360
  • Remove _all settings from the Beats templates #3369

Beats dashboards

  • Fix Cassandra dashboard to display only Cassandra network traffic #3317