Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 4.0.0 < 9.0.0
- Archlinux , , , , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'pcfens-filebeat', '4.14.0'
Learn more about managing modules with a PuppetfileDocumentation
puppet-filebeat
Table of Contents
- puppet-filebeat
- [Table of Contents](#table-of-contents)
Description
The filebeat
module installs and configures the filebeat log shipper maintained by elastic.
Setup
What filebeat affects
By default filebeat
adds a software repository to your system, and installs filebeat along
with required configurations.
Upgrading to Filebeat 7.x
To upgrade to Filebeat 7.x, simply set $filebeat::major_version
to 7
and $filebeat::package_ensure
to latest
(or whichever version of 7.x you want, just not present).
You'll also need to change instances of filebeat::prospector
to filebeat::input
when upgrading to version 4.x of
this module.
Setup Requirements
The filebeat
module depends on puppetlabs/stdlib
, and on
puppetlabs/apt
on Debian based systems.
Beginning with filebeat
filebeat
can be installed with puppet module install pcfens-filebeat
(or with r10k, librarian-puppet, etc.)
The only required parameter, other than which files to ship, is the outputs
parameter.
Usage
All of the default values in filebeat follow the upstream defaults (at the time of writing).
To ship files to elasticsearch:
class { 'filebeat':
outputs => {
'elasticsearch' => {
'hosts' => [
'http://localhost:9200',
'http://anotherserver:9200'
],
'loadbalance' => true,
'cas' => [
'/etc/pki/root/ca.pem',
],
},
},
}
To ship log files through logstash:
class { 'filebeat':
outputs => {
'logstash' => {
'hosts' => [
'localhost:5044',
'anotherserver:5044'
],
'loadbalance' => true,
},
},
}
Shipper and logging options can be configured the same way, and are documented on the elastic website.
Adding an Input
Inputs are processes that ship log files to elasticsearch or logstash. They can be defined as a hash added to the class declaration (also used for automatically creating input using hiera), or as their own defined resources.
At a minimum, the paths
parameter must be set to an array of files or blobs that should
be shipped. doc_type
is what logstash views as the type parameter if you'd like to
apply conditional filters.
filebeat::input { 'syslogs':
paths => [
'/var/log/auth.log',
'/var/log/syslog',
],
doc_type => 'syslog-beat',
}
Multiline Logs
Filebeat inputs can handle multiline log entries. The multiline
parameter accepts a hash containing pattern
, negate
, match
, max_lines
, and timeout
as documented in the filebeat configuration documentation.
JSON Logs
Filebeat inputs (versions >= 5.0) can natively decode JSON objects if they are stored one per line. The json
parameter accepts a hash containing message_key
, keys_under_root
, overwrite_keys
, and add_error_key
.
Depending on the version, expand_keys
, document_id
and ignore_decoding_error
may be supported as well.
See the filebeat configuration documentation for details.
Inputs in Hiera
Inputs can be defined in hiera using the inputs
parameter. By default, hiera will not merge
input declarations down the hiera hierarchy. That behavior can be changed by configuring the
lookup_options
flag.
inputs
can be a Hash that will follow all the parameters listed on this documentation or an
Array that will output as is to the input config file.
Usage on Windows
When installing on Windows, this module will download the windows version of Filebeat from
elastic to C:\Temp
by default. The directory
can be overridden using the tmp_dir
parameter. tmp_dir
is not managed by this module,
but is expected to exist as a directory that puppet can write to.
Processors
Filebeat 5.0 and greater includes a new libbeat feature for filtering and/or enhancing all exported data through processors before being sent to the configured output(s). They can be defined as a hash added to the class declaration (also used for automatically creating processors using hiera), or as their own defined resources.
To drop the offset and input_type fields from all events:
class {'filebeat':
processors => [
{
'drop_fields' => {
'fields' => ['input_type', 'offset'],
}
}
],
}
To drop all events that have the http response code equal to 200: input
class {'filebeat':
processors => [
{
'drop_event' => {
'when' => {'equals' => {'http.code' => 200}}
}
}
],
}
Now to combine these examples into a single definition:
class {'filebeat':
processors => [
{
'drop_fields' => {
'params' => {'fields' => ['input_type', 'offset']},
'priority' => 1,
}
},
{
'drop_event' => {
'when' => {'equals' => {'http.code' => 200}},
'priority' => 2,
}
}
],
}
For more information please review the documentation here.
Processors in Hiera
Processors can be declared in hiera using the processors
parameter. By default, hiera will not merge
processor declarations down the hiera hierarchy. That behavior can be changed by configuring the
lookup_options
flag.
Index Lifecycle Management
You can override the default filebeat ILM policy by specifying ilm.policy
hash in filebeat::setup
parameter:
filebeat::setup:
ilm.policy:
phases:
hot:
min_age: "0ms"
actions:
rollover:
max_size: "10gb"
max_age: "1d"
Reference
Public Classes
Class: filebeat
Installs and configures filebeat.
Parameters within filebeat
package_ensure
: [String] The ensure parameter for the filebeat package If set to absent, inputs and processors passed as parameters are ignored and everything managed by puppet will be removed. (default: present)manage_package
: [Boolean] Whether ot not to manage the installation of the package (default: true)manage_repo
: [Boolean] Whether or not the upstream (elastic) repo should be configured or not (default: true)major_version
: [Enum] The major version of Filebeat to install. Should be either'5'
or'6'
. The default value is'6'
, except for OpenBSD 6.3 and earlier, which has a default value of'5'
.service_ensure
: [String] The ensure parameter on the filebeat service (default: running)service_enable
: [String] The enable parameter on the filebeat service (default: true)param repo_priority
: [Integer] Repository priority. yum and apt supported (default: undef)service_provider
: [String] The provider parameter on the filebeat service (default: on RedHat based systems use redhat, otherwise undefined)spool_size
: [Integer] How large the spool should grow before being flushed to the network (default: 2048)idle_timeout
: [String] How often the spooler should be flushed even if spool size isn't reached (default: 5s)publish_async
: [Boolean] If set to true filebeat will publish while preparing the next batch of lines to transmit (default: false)config_file
: [String] Where the configuration file managed by this module should be placed. If you think you might want to use this, read the limitations first. Defaults to the location that filebeat expects for your operating system.config_dir
: [String] The directory where inputs should be defined (default: /etc/filebeat/conf.d)config_dir_mode
: [String] The permissions mode set on the configuration directory (default: 0755)config_dir_owner
: [String] The owner of the configuration directory (default: root). Linux only.config_dir_group
: [String] The group of the configuration directory (default: root). Linux only.config_file_mode
: [String] The permissions mode set on configuration files (default: 0644)config_file_owner
: [String] The owner of the configuration files, including inputs (default: root). Linux only.config_file_group
: [String] The group of the configuration files, including inputs (default: root). Linux only.purge_conf_dir
: [Boolean] Should files in the input configuration directory not managed by puppet be automatically purgedenable_conf_modules
: [Boolean] Should filebeat.config.modules be enabledmodules_dir
: [String] The directory where module configurations should be defined (default: /etc/filebeat/modules.d)cloud
: [Hash] Will be converted to YAML for the optional cloud.id and cloud.auth of the configuration (see documentation, and above)queue
: [Hash] Will be converted to YAML for the optional queue.mem and queue.disk of the configuration (see documentation, and above)outputs
: [Hash] Will be converted to YAML for the required outputs section of the configuration (see documentation, and above)shipper
: [Hash] Will be converted to YAML to create the optional shipper section of the filebeat config (see documentation)autodiscover
: [Hash] Will be converted to YAML for the optional autodiscover section of the configuration (see documentation, and above)`logging
: [Hash] Will be converted to YAML to create the optional logging section of the filebeat config (see documentation)systemd_beat_log_opts_override
: [String] Will overide the defaultBEAT_LOG_OPTS=-e
. Required if usinglogging
hash on systems running with systemd. required: Puppet 6.1+, Filebeat 7+,modules
: [Array] Will be converted to YAML to create the optional modules section of the filebeat config (see documentation)conf_template
: [String] The configuration template to use to generate the main filebeat.yml config file.download_url
: [String] The URL of the zip file that should be downloaded to install filebeat (windows only)install_dir
: [String] Where filebeat should be installed (windows only)tmp_dir
: [String] Where filebeat should be temporarily downloaded to so it can be installed (windows only)shutdown_timeout
: [String] How long filebeat waits on shutdown for the publisher to finish sending eventsbeat_name
: [String] The name of the beat shipper (default: FQDN)tags
: [Array] A list of tags that will be included with each published transactionmax_procs
: [Number] The maximum number of CPUs that can be simultaneously usedfields
: [Hash] Optional fields that should be added to each event outputfields_under_root
: [Boolean] If set to true, custom fields are stored in the top level instead of under fieldsdisable_config_test
: [Boolean] If set to true, configuration tests won't be run on config files before writing them.processors
: [Array] Processors that should be configured.monitoring
: [Hash] The monitoring.* components of the filebeat configuration.inputs
: [Hash] or [Array] Inputs that will be created. Commonly used to create inputs using hierasetup
: [Hash] Setup that will be created. Commonly used to create setup using hieraxpack
: [Hash] XPack configuration to pass to filebeatextra_validate_options
: [String] Extra command line options to pass to the configuration validation command.overwrite_pipelines
: [Boolean] If set to true, filebeat will overwrite existing pipelines.
Private Classes
Class: filebeat::config
Creates the configuration files required for filebeat (but not the inputs)
Class: filebeat::install
Calls the correct installer class based on the kernel fact.
Class: filebeat::params
Sets default parameters for filebeat
based on the OS and other facts.
Class: filebeat::repo
Installs the yum or apt repository for the system package manager to install filebeat.
Class: filebeat::service
Configures and manages the filebeat service.
Class: filebeat::install::linux
Install the filebeat package on Linux kernels.
Class: filebeat::install::windows
Downloads, extracts, and installs the filebeat zip file in Windows.
Public Defines
Define: filebeat::input
Installs a configuration file for a input.
Be sure to read the filebeat configuration details to fully understand what these parameters do.
Parameters for filebeat::input
ensure
: The ensure parameter on the input configuration file. (default: present)paths
: [Array] The paths, or blobs that should be handled by the input. (required if inputtype is _log)containers_ids
: [Array] If inputtype is _docker, the list of Docker container ids to read the logs from. (default: '*')containers_path
: [String] If inputtype is _docker, the path from where the logs should be read from. (default: /var/log/docker/containers)containers_stream
: [String] If inputtype is _docker, read from the specified stream only. (default: all)combine_partial
: [Boolean] If inputtype is _docker, enable partial messages joining. (default: false)cri_parse_flags
: [Boolean] If inputtype is _docker, enable CRI flags parsing from the log file. (default: false)syslog_protocol
: [Enum tcp,udp] Syslog protocol (default: udp)syslog_host
: [String] Host to listen for syslog messages (default: localhost:5140)exclude_files
: [Array] Files that match any regex in the list are excluded from filebeat (default: [])encoding
: [String] The file encoding. (default: plain)input_type
: [String] where filebeat reads the log from (default:log)fields
: [Hash] Optional fields to add information to the output (default: {})fields_under_root
: [Boolean] Should thefields
parameter fields be stored at the top level of indexed documents.ignore_older
: [String] Files older than this field will be ignored by filebeat (default: ignore nothing)close_older
: [String] Files that haven't been modified sinceclose_older
, they'll be closed. New modifications will be read when files are scanned again according toscan_frequency
. (default: 1h)log_type
: [String] (Deprecated - usedoc_type
) The document_type setting (optional - default: log)doc_type
: [String] The event type to used for published lines, used as type field in logstash and elasticsearch (optional - default: log)scan_frequency
: [String] How often should the input check for new files (default: 10s)harvester_buffer_size
: [Integer] The buffer size the harvester uses when fetching the file (default: 16384)tail_files
: [Boolean] If true, filebeat starts reading new files at the end instead of the beginning (default: false)backoff
: [String] How long filebeat should wait between scanning a file after reaching EOF (default: 1s)max_backoff
: [String] The maximum wait time to scan a file for new lines to ship (default: 10s)backoff_factor
: [Integer]backoff
is multiplied by this parameter untilmax_backoff
is reached to determine the actual backoff (default: 2)force_close_files
: [Boolean] Should filebeat forcibly close a file when renamed (default: false)pipeline
: [String] Filebeat can be configured for a different ingest pipeline for each input (default: undef)include_lines
: [Array] A list of regular expressions to match the lines that you want to include. Ignored if empty (default: [])exclude_lines
: [Array] A list of regular expressions to match the files that you want to exclude. Ignored if empty (default: [])max_bytes
: [Integer] The maximum number of bytes that a single log message can have (default: 10485760)tags
: [Array] A list of tags to send along with the log data.json
: [Hash] Options that control how filebeat handles decoding of log messages in JSON format See above. (default: {})multiline
: [Hash] Options that control how Filebeat handles log messages that span multiple lines. See above. (default: {})host
: [String] Host and port used to read events for TCP or UDP plugin (default: localhost:9000)max_message_size
: [String] The maximum size of the message received over TCP or UDP (default: undef)keep_null
: [Boolean] If this option is set to true, fields with null values will be published in the output document (default: undef)include_matches
: [Array] Journald input only, A collection of filter expressions used to match fields. The format of the expression is field=value (default: [])seek
: [Enum] Journald input only, The position to start reading the journal from (default: undef)index
: [String] If present, this formatted string overrides the index for events from this input (for elasticsearch outputs), or sets the raw_index field of the event’s metadata (for other outputs) (default: undef)
Limitations
This module doesn't load the elasticsearch index template into elasticsearch (required when shipping directly to elasticsearch).
When installing on Windows, there's an expectation that C:\Temp
already exists, or an alternative
location specified in the tmp_dir
parameter exists and is writable by puppet. The temp directory
is used to store the downloaded installer only.
Generic template
By default, a generic, open ended template is used that simply converts your configuration into
a hash that is produced as YAML on the system. To use a template that is more strict, but possibly
incomplete, set conf_template
to filebeat/filebeat.yml.erb
.
Debian Systems
Filebeat 5.x and newer requires apt-transport-https, but this module won't install it for you.
Using config_file
There are a few very specific use cases where you don't want this module to directly manage the filebeat
configuration file, but you still want the configuration file on the system at a different location.
Setting config_file
will write the filebeat configuration file to an alternate location, but it will not
update the init script. If you don't also manage the correct file (/etc/filebeat/filebeat.yml on Linux,
C:/Program Files/Filebeat/filebeat.yml on Windows) then filebeat won't be able to start.
If you're copying the alternate config file location into the real location you'll need to include some metaparameters like
file { '/etc/filebeat/filebeat.yml':
ensure => file,
source => 'file:///etc/filebeat/filebeat.special',
require => File['filebeat.yml'],
notify => Service['filebeat'],
}
to ensure that services are managed like you might expect.
Logging on systems with Systemd and with version filebeat 7.0+ installed
With filebeat version 7+ running on systems with systemd, the filebeat systemd service file contains a default that will ignore the logging hash parameter
Environment="BEAT_LOG_OPTS=-e`
to overide this default, you will need to set the systemd_beat_log_opts_override parameter to empty string
example:
class {'filebeat':
logging => {
'level' => 'debug',
'to_syslog' => false,
'to_files' => true,
'files' => {
'path' => '/var/log/filebeat',
'name' => 'filebeat',
'keepfiles' => '7',
'permissions' => '0644'
},
systemd_beat_log_opts_override => "",
}
this will only work on systems with puppet version 6.1+. On systems with puppet version < 6.1 you will need to systemctl daemon-reload
. This can be achived by using the camptocamp-systemd
include systemd::systemctl::daemon_reload
class {'filebeat':
logging => {
...
},
systemd_beat_log_opts_override => "",
notify => Class['systemd::systemctl::daemon_reload'],
}
Development
Pull requests and bug reports are welcome. If you're sending a pull request, please consider writing tests if applicable.
Changelog
Unreleased
v4.14.0
- Template SSL Correction #322
- Avoid deprecated has_ssl method #324
- Add missing options to JSON decoding config #326
v4.13.0
- Support the filebeat version 8 validation[#318]- Support queue configuration #313
- Support Windows 2016 #316
- Support queue configuration #313
- Support file exclusion with filestream #311
- Replace legacy facts with structured facts #319
- Fix tests #319
- Update PDK #319
v4.12.0
- Various lint and bugfixes
- Add filestream support #303
- Add journald support #302
- Add syslog support #301
- Allow Filebeat 8 to be installed #300
- Add
filebeat.overwrite_pipelines
option #286 - Fix autodiscover apply location #291
- Add SSL support for inputs #295
- Add support for Solaris #296
- Add support for filestreams #297
v4.11.0
- Support setting registry options #284
v4.10.0
v4.9.0
- Make pipeline available in all inputs #275
- Support autodiscovery #278
- Support
close_timeout
as a string #279
v4.8.0
v4.7.0
- Add
extra_validation_options
when validating the config #265
v4.6.0
- Allow processors to be applied to all inputs, and consolidated common configuration #260
v4.5.0
v4.4.2
- Fix empty monitoring parameter #257
v4.4.1
- Fix powershell module version dependency [#256](https://github.com/pcfens/puppet-filebeat/pull/256
v4.4.0
- Add the ability to supply the monitoring.* of the config file #252
- Add support for Windows Server 2016 and 2019 Core editions #255
v4.3.1
- Allow fields and tags to be defined for any input type #249
v4.3.0
- Support setting index index lifecycle policy #238
- Support logging overrides with Puppet older than 6.1 #241
- Allow inputs to be defined using just a hash (supports open ended inputs) #236
v4.2.0
- Fix regression of processors type
- Add support for syslog inputs #232
- Upgrade PDK to 1.15.0
v4.1.2
- Fix hardocded path to yum #229
v4.1.1
- Support old versions of filebeat for a version fact only #227
- Fix the processor input data type #228
v4.1.0
- Allow for override of the default systemd logging options #223
v4.0.5
v4.0.4
- Validate configuration in Windows #219
v4.0.3
- Fix
filebeat_version
fact on Windows #218
v4.0.2
- Clear the yum cache whenever we modify the yum repo config #217
v4.0.1
v4.0.0
- Switch from
filebeat::prospector
tofilebeat::input
to reflect the changes in the upstream filebeat configuration. - Add support for Filebeat 7
- Remove support for
registry_file
andregistry_flush
settings (removed in 7.x) - Remove
queue_size
parameter
v3.4.0
v3.3.3
v3.3.2
- Produce valid YAML for prospectors #193
- Upgrade to PDK 1.7.1
- Add tests for Puppet 6
- Add Puppet 6 support to metadata
v3.3.1
- Add a new
manage_apt
flag for disabling the inclusion of puppetlabs/apt #185
v3.3.0
- Allow use of puppet/archive 3.x #190
- Add support for Docker inputs #191
- Support puppetlabs/stdlib 5.x
v3.2.2
- Don't add xpack configuration when it's undef #187
- Don't disallow using puppetlabs/apt 6.x (check their changelog as this release drops support for Puppet pre 4.7) #186
- Use the latest PDK
v3.2.1
- Fetch the suse repository signing key over https #176
v3.2.0
- Add support for xpack monitoring #172
- Add support for OpenBSD #173
- Set filebeat_version to false when filebeat isn't installed #175
v3.1.0
- Manage filebeat modules as an array #168
v3.0.1
- Fix array validation in prospector defined resource #166
v3.0.0
Potentially Breaking Change:
- Make filebeat 6 the default version.
Non-breaking changes:
- Allow setup entries in configuration #152, #146
- Processors should be an array of hashes #157, #156
- Validate URLs using stdlib #158
- Use external configuration setup for Filebeat 6+ #153
- Use version subcommand when determining version #159
- Add processors support to prospectors #162
- Update unsupported OS Family notice #161
- Use Puppet 4+ data types for prospectors #165
- Fix windows validation command #164, #163
v2.4.0
v2.3.0
v2.2.0
- Support pipeline configurations in prospectors #134
- Fix regex for validating download URL #135
- Overhaul testing
v2.1.0
- Change beat_name configuration parameter to name #126
- Make configuration directory/file ownership configurable #127
v2.0.0
- Drop support for Puppet 3
- Drop support for Filebeat versions before 5
- Add support for Puppet 5
- Use a generic template by default
- Remove processor defined type (create it in the config template)
- Add a flag to disable validating the configuration (
disable_config_test
)
v1.0.0
- This is the last release with support for Filebeat versions prior to 5
- Last release with support for Puppet 3
- Add Logstash SSL support #121
- Add ES loadbalance support #119
The next major release will be a breaking release for anyone using processors.
v0.12.1
- Add support for SSL in Logstash #117
v0.12.0
Windows users: you may see a restart and replacement of your existing filebeat directory. There's a very brief discussion of the change in the pull request
- Support upgrades in Windows #113
- Add optional repo_priority parameter #110
- Update external dependencies, including pinning apt version
v0.11.2
- Explicitly support newer versions of the powershell modules #105
- Support kafka codec.format module #106
- The
add_locale
processor doesnt' require parameters #104
v0.11.1
- Restore puppet 3.x compatibility regression (PUP-2523)
v0.11.0
Breaking Changes
- Processors are managed by their own defined resource (slight syntax change) #85
- The registry file has likely moved because of an upstream change. Moving this file can cause problems (duplicate or missed log entries), so you may want to point it to your existing file (check in /.filebeat on Linux systems)
Normal Enhancements/Bugfixes
- Support proxy for windows file downloads #90
- Setting
package_ensure
to absent removes puppet managed files and removes the package - Add support for index conditional output to elasticsearch #97
- Add support for a conditional pipeline for elasticsearch #98
- Template should check for nil instead of undef #63
- Support for the round_robin and group_events parameters in kafka outputs #100
v0.10.4
- Add output.console support to the config template #91
- Support puppet with strict variables enabled #92
v0.10.3
- Allow non-SSL downloads of windows filebeat zipfile #82
- Basic support of processors in puppet <4.x #79 (See note above)
- Confine the filebeat_version fact in a way that works in Ruby 1.8.7 #88
v0.10.2
- Add close_older and force_close_files within prospector v5 #77
v0.10.1
v0.10.0
- Add support for JSON decoding #72
v0.9.2
- Add support for close* and clean* parameters in prospectors #70
v0.9.1
- Fix yaml syntax around filebeat processors #71
v0.9.0
- Add support for tags in prospectors #68
- Add support for filebeat processors #69
- Fix the
filebeat_version
fact in Windows #59 - Validate configuration files before notifying the filebeat service
- Update the Windows install URL to the latest version
v0.8.7
- Update windows URL to the latest 5.x release
- Remove nil values before rendering the template #65
v0.8.6
v0.8.5
- Check the kafka partition hash before checking for sub-hashes #54
v0.8.4
- Fix regression: Add the SSL label to the filebeat 5 template. #53
v0.8.3
- Don't use a possibly undefined array's length to determine if it should be iterated over #52
v0.8.2
- Correctly set document type for v5 prospectors #51
v0.8.1
- Don't manage the apt-transport-https package on Debian systems #49
- undefined values shouldn't be rendered by the filebeat5 template #50
v0.8.0
Enhancements
- Add support for Filebeat v5.
If you use this module on a system with filebeat 1.x installed, and you keep your current parameters
nothing will change. Setting major_version
to '5' will modify the configuration template and update
package repositories, but won't update the package itself. To update the package set the
package_ensure
parameter to at least 5.0.0.
- Add a parameter
use_generic_template
that uses a more generic version of the configuration template. The generic template is more future proof (if types are correct), but looks very different than the example file.
v0.7.4
Version 0.7.3 was never released even though it is tagged.
- Fixed some testing issues that were caused by changes to external resources
Fixed Bugs
- Some redis configuration options were not generated as integers #38
v0.7.2
- Wrap regular expressions in single quotes #31 and #35
- Use the default Windows temporary folder (C:\Windows\Temp) by default #33
v0.7.1
- Allow the config file to be written to an alternate location. Be sure and read limitations before you use this.
Fixed Bugs
- Add elasticsearch and logstash port setting to Ruby 1.8 template #29
v0.7.0
- Setting the
prospectors_merge
parameter to true will create prospectors across multiple hiera levels usinghiera_hash()
#25 - No longer manage the windows temp directory where the Filebeat download is kept. The assumption is made that the directory exists and is writable by puppet.
- Update the default windows download to Filebeat version 1.2.3
- Add redis output to the Ruby 1.8 template
- Wrap include_lines and exclude_lines array elements in quotes #28
Fixed Bugs
- SLES repository and metaparameters didn't match #25
v0.6.3
Fixed Bugs
- Spool size default should match upstream #24
- Repository names now match notification parameters Part of #25
v0.6.2
Fixed Bugs
- Fix the other certificate_key typo in Ruby 1.8 template #23
v0.6.1
Fixed Bugs
- Fix typo in Ruby 1.8 template #23
v0.6.0
- Add the
close_older
parameter to support the option of the same name in filebeat 1.2.0 - Add support for the
publish_async
parameter.
Fixed Bugs
- Added limited, but improved support for Ruby versions pre-1.9.1 by fixing the hash sort issue #20
v0.5.8
Fixed Bugs
doc_type
is now used in the documentation instead of the deprecatedlog_type
#17- RedHat based systems should be using the redhat service provider. #18
v0.5.7
Fixed Bugs
- Some configuration parameters should be rendered as integers, not strings #15
v0.5.6
Fixed Bugs
- Configuration files should use the
conf_template
parameter #14
v0.5.5
Fixed Bugs
rotate_every_kb
andnumber_of_files
parameters in file outputs should be explicitly integers to keep filebeat happy. #13
v0.5.4
Fixed Bugs
- Fix template regression in v0.5.3
v0.5.2
- Use the anchor pattern instead of contain so that older versions of puppet are supported #12
v0.5.1
- Update metadata to reflect which versions of puppet are supported.
v0.5.0
- For prospectors, deprecate
log_type
in favor ofdoc_type
to better match the actual configuration parameter.document_type
is not used because it causes errors when running with a puppet master.log_type
will be fully removed before module version 1.0. #9
New Features
- Add support for
exclude_files
,exclude_lines
,include_lines
, andmultiline
. Use of the new parameters requires a filebeat version >= 1.1 (#10, #11)
v0.4.1
Fixed Bugs
- Fix links in documentation to match the updated documentation
New Features
- Change repository resource names to beats (e.g. apt::source['beats'], etc.), and only declare them if they haven't already been declared. This way we only have one module for all beats modules managed through puppet.
v0.4.0
This is the first release that includes changelog. Since v0.3.1:
Fixed Bugs
- 'fields' parse error in prospector.yml template #7
New Features
- Windows support #3
- Requires the
puppetlabs/powershell
andlwf/remote_file
modules.
- Requires the
- Config file and folder permissions can be managed #8
Dependencies
- puppetlabs/stdlib (>=4.13.0 < 10.0.0)
- puppetlabs/apt (>=2.0.0 < 10.0.0)
- puppetlabs/powershell (>= 1.0.1 < 6.0.0)
- puppet/archive (>= 0.5.0 < 7.0.0)
- puppetlabs/yumrepo_core (>= 1.0.0 < 2.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.