metricbeat
Version information
This version is compatible with:
- Puppet Enterprise 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 4.7.0 < 6.0.0
- , , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'slauger-metricbeat', '1.0.0'
Learn more about managing modules with a PuppetfileDocumentation
puppet-metricbeat
Table of Contents
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with metricbeat
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Module description
The metricbeat module installs, configures and manages the Elastic metricbeat service for shipping metrics to Logstash, Kafka or Elasticsearch.
Setup
Metricbeat packages
This modules currently does not manage the package repository for the elastic. The main reason for this is that the module is primarily written for enterprise environments, without an direct access to the public internet. Furthermore, as you also might want to install Logstash, Elasticsearch and Kibana in your in environment (and there is only a "all-in-one" package repository for elastic), there would be a high chance of a duplicate resource definition of the package repository.
If you don't have a central repository management in your environment (like Pulp or RedHat Satellite) prepare the package repository on your nodes with a different module (e.g. elastic_stack), or use the module parameters to switch to an "url based" installation method.
metricbeat::package_provider: 'rpm'
metricbeat::package_source: 'https://artifacts.elastic.co/packages/6.x/yum/6.4.0/metricbeat-6.4.0-x86_64.rpm'
Configure a output
Metricbeat requires at least one configured output. See below for example configurations.
Usage
All parameters for the metricbeat module are contained within the main metricbeat
class, so for any function of the module, set the options you want. See the common usages below for examples.
Install and enable metricbeat
include metricbeat
Configure a metricbeat module
Each hash entry represents a own configuration file inside of /etc/metricbeat/modules.d
.
metricbeat::modules:
'docker':
- module: docker
metricsets:
- container
- cpu
- diskio
- healthcheck
- info
- memory
- network
period: 10s
hosts: ["unix:///var/run/docker.sock"]
Configure Logstash output
metricbeat::config:
output:
logstash:
hosts:
- 'logstash1.example.com:5044'
- 'logstash2.example.com:5044'
Configure Apache Kafka output
metricbeat::config:
output:
kafka:
hosts:
- 'kafka1.example.com:9092'
- 'kafka2.example.com:9092'
topic: "%{literal('%')}{[fields.kafka_topic]}"
Configure Elasticsearch output
metricbeat::config:
output:
elasticsearch:
hosts: ["localhost:9200"]
protocol: "https"
username: "elastic"
password: "changeme"
Full example configuration
A complete example configuration using the Logstash output with authentication via the Puppet SSL certificates.
metricbeat::env:
'APPLICATION': 'puppetserver'
metricbeat::config:
name: '%{facts.fqdn}'
tags:
- '%{facts.osfamily}'
fields:
environment: '%{environment}'
application: '${APPLICATION:none}'
logging.level: 'error'
logging.selectors: ["*"]
output:
logstash:
hosts: ["logstash.example.com:5044"]
ssl.certificate_authorities: ["/etc/puppetlabs/puppet/ssl/certs/ca.pem"]
ssl.certificate: "/etc/puppetlabs/puppet/ssl/certs/%{trusted.certname}.pem"
ssl.key: "/etc/puppetlabs/puppet/ssl/private_keys/%{trusted.certname}.pem"
ssl.supported_protocols: [TLSv1.2]
ssl.cipher_suites: [ECDHE-ECDSA-AES-256-GCM-SHA384, ECDHE-RSA-AES-256-GCM-SHA384, ECDHE-ECDSA-AES-128-GCM-SHA256, ECDHE-RSA-AES-128-GCM-SHA256]
ssl.curve_types: [P-256, P-384, P-521]
ssl.renegotiation: never
metricbeat::modules:
'system':
- module: system
metricsets:
- cpu
- load
- memory
- network
- process
- process_summary
- uptime
- core
- diskio
- filesystem
- fsstat
enabled: true
period: 10s
processes: ['.*']
Reference
See REFERENCE.md
Limitations
For an extensive list of supported operating systems, see metadata.json
Development
Puppet modules on the Puppet Forge are open projects, and community contributions are essential for keeping them great. Feature requests and pull requests are appreciated.
Contributors
To see who's already involved, see the list of contributors.
Reference
Table of Contents
Classes
Public Classes
metricbeat
: Main class, includes all other classes
Private Classes
metricbeat::config
: This class handles the configuration file.metricbeat::package
: This class handles metricbeat package.metricbeat::service
: This class handles the metricbeat service.
Defined types
metricbeat::module
: This defined type creates a new metricbeat module.
Classes
metricbeat
metricbeat
Parameters
The following parameters are available in the metricbeat
class.
package_name
Data type: String
Name of the metricbeat package. Dfault value: 'metricbeat'.
package_ensure
Data type: String
State of package (e.g. present oder latest). Default value: 'present'.
package_provider
Data type: Optional[String]
Optional package provider for the package. Default value: Undef.
package_source
Data type: Optional[String]
Optional package source for the package. Default value: Undef.
service_name
Data type: String
Name of the metricbeat service. Default value: 'metricbeat'.
service_ensure
Data type: Optional[String]
Whether the metricbeat service should be running. Default value: 'running'.
service_enable
Data type: Optional[Boolean]
Whether the metricbeat service should be enabled. Default value: true.
environment_file
Data type: String
Path to the environment file for systemd. Default value: '/etc/sysconfig/metricbeat'.
modules
Data type: Optional[Hash]
An hash with enabled modules for metricbeat. Default value: {}.
config
Data type: Optional[Hash]
An hash with the main and output configuration. Default value: {}.
env
Data type: Optional[Hash]
An array with environment variables, wich will be written to the environment_file. Default value: [].
Defined types
metricbeat::module
This defined type creates a new metricbeat module.
Parameters
The following parameters are available in the metricbeat::module
defined type.
config
Data type: Array
An array with module configurations.
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>= 4.20.0 < 6.0.0)