Skip to content

dmcanally/denver-netdata

Repository files navigation

denver-netdata

Build Status Code Coverage Puppet Forge Puppet Forge - downloads Puppet Forge - scores

Table of Contents

  1. Description
  2. Setup
  3. Usage
  4. Limitations
  5. Development

Description

This module deploys and configures netdata. Netdata is a system for distributed real-time performance and health monitoring. More can be found on the netdata website.

Setup

Setup requirements

This module requires you have a compatible OS and a functioning puppet infrastructure.

Usage

Basic usage

To deploy and configure default netdata...

class {'::netdata': }

To remove a deployed netdata...

class {'::netdata': ensure => 'absent'}

Note, ensure => 'absent' is not currently supported on Ubuntu 14.04 due to the way puppet manages upstart.

Advanced useage

To configure netdata as a Slave. Note, the GUID displayed here is just an example.

class {'::netdata':
  remote_master        => 'netdata-master.example.com',
  remote_master_apikey => '9a83b18a-5cdb-4baf-8958-ad291ab781d3',
}

netdata::stream To configure netdata as a Master

class {'::netdata':
  master => true,
}

In order for netdata metrics to stream to a master, you must define a netdata stream API key. You can generate a GUID with uuidgen. More information can be found on netdata replication here.

netdata::stream {'9a83b18a-5cdb-4baf-8958-ad291ab781d3': }

To configure netdata as a Proxy

class {'::netdata':
  master               => true,
  remote_master        => 'netdata-master.example.com',
  remote_master_apikey => '9a83b18a-5cdb-4baf-8958-ad291ab781d3',
}

netdata::stream {'9a83b18a-5cdb-4baf-8958-ad291ab781d3': }

Plugins

netdata::plugin::bind_rndc
This plugin tracks bind rndc stats. More here.

netdata::plugin::bind_rndc {'example.com': }
  • update
    Optional. Data collection frequency.
  • priority
    Optional. Order of the dashboard.
  • retries
    Optional. Number of restoration attempts.
  • detect_retry
    Optional. re-detect interval in seconds.

netdata::plugin::web_log
This plugin supports apache, apache_cache, nginx, gunicorn, and squid. More here.

netdata::plugin::web_log {'example.com':
  logfile => '/var/log/nginx/example.com',
}
  • type
    Optional. Type of service generating the log file.
  • logfile
    Required. This should be the full path of the logfile being monitored.

Class Parameters

  • history
    Default: 3600
    Desc: The number of entries the netdata daemon will by default keep in memory for each chart dimension.

  • debug_flags
    Desc: Debug Flags. See more info.

  • memory_mode
    Default: save
    Desc: The mode for storing metrics. Options are save, map ram and none.

  • web_mode
    Default: multi-threaded
    Desc: Web UI mode, options are none, single-threaded and multi-threaded.

  • update_every
    Default: 1
    Desc: The frequency in seconds, for data collection.

  • port
    Default: 19999
    Desc: The default port to listen for web clients.

  • bind_to
    Default: *
    Desc: The IPv4 address and port to listen to.

  • master
    Default: false
    Desc: Set this to true for netdata to act as a master.

  • remote_master
    Default: undef
    Desc: The Hostname of a remote netdata master.

  • remote_master_port
    Default: 19999
    Desc: Port for remote netdata master.

  • remote_master_apikey
    Default: undef
    Desc: This sets the API Key for talking to an upstream netdata. This must be a GUID. A netdata master must have a matching GUID defined with netdata::stream.

  • registry
    Default: false
    Desc: Set to true in order for a netdata to act as a registry.

  • registry_allowgroup Default: *
    Desc: List of subnets allowed to register.

  • remote_registry
    Default: undef
    Desc: A central netdata that is configured with registry => true.

  • remote_registry_port
    Default: 19999
    Desc: Port configured on the remote registry.

Limitations

This module is tested with CentOS 6 and 7, Ubunu LTS 14.04, and 16.04. There is no guarantee that this module will work for other operating systems.

Development

To execute acceptance tests...

PUPPET_INSTALL_TYPE=agent BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_debug=true BEAKER_set=docker/centos-7 bundle exec rake beaker
PUPPET_INSTALL_TYPE=agent BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_debug=true BEAKER_set=docker/ubuntu-18.04 bundle exec rake beaker

For this to work you must have docker installed and running locally

This module is currently maintained by Denver McAnally ([email protected]). Please feel free to contribute. When doing so, please be sure to provide appropriate test coverage. Please see puppetlabs contribution guide for more information.

Netdata is developed and maintained at netdata/netdata.