- Overview
- Module Description - What the module does and why it is useful
- Installation
- Setup - The basics of getting started with influxdb
- 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
- License
This module manages InfluxDB installation.
The InfluxDB module manages both the installation and configuration of InfluxDB. I am planning to extend it to allow management of InfluxDB resources, such as databases, users, and privileges.
Notes for version 4.0.0+:
influxdb 1.0.0 contains breaking changes
which require changing the data_logging_enabled
config attribute to trace_logging_enabled
.
The other configuration changes are managed by the influxdb.conf.erb
template already.
Notes for versions older than 3.1.1:
This release is a major refactoring of the module which means that the API changed in backwards incompatible ways. If your project depends on the old API and you need to use influxdb prior to 0.10.X, please pin your module dependencies to 0.1.2 (0.8.X) or 2.2.2 (0.9.X) version to ensure your environments don't break.
NOTE: Until influxdb 1.0.0 is releases the API of this module may change, however I will try my best to avoid it.
puppet module install golja/influxdb
- InfluxDB packages
- InfluxDB configuration files
- InfluxDB service
If you just want a server installed with the default options you can
run include '::influxdb::server'
.
All interaction for the server is done via influxdb::server
.
Install influxdb
class {'influxdb::server':}
Join a cluster
class {'influxdb::server':
meta_bind_address => "${::fqdn}:8088",
meta_http_bind_address => "${::fqdn}:8091",
http_bind_address => "${::fqdn}:8086",
influxd_opts => "-join my.other.node1:8091,my.other.node2:8091"
}
For more info on setting up a raft cluster, see the InfluxDB docs
Enable Graphite plugin with one database
class {'influxdb::server':
graphite_options => {
enabled => true,
database => graphite,
bind-address => ':2003',
protocol => tcp,
consistency-level => 'one',
name-separator => '.',
batch-size => 1000,
batch-pending => 5,
batch-timeout => '1s',
udp-read-buffer => 0,
name-schema => 'type.host.measurement.device',
templates => [ "*.app env.service.resource.measurement" ],
tags => [ "region=us-east", "zone=1c"],
},
}
Enable Collectd plugin
class {'influxdb::server':
collectd_options => {
enabled => true,
bind-address => ':25826',
database => 'foo',
typesdb => '/usr/share/collectd/types.db',
batch-size => 1000,
batch-pending => 5,
batch-timeout => '1s',
read-buffer => 0,
},
}
Enable UDP listener
$udp_options = [
{ 'enabled' => true,
'bind-address' => ':8089',
'database' => 'udp_db1',
'batch-size' => 10000,
'batch-timeout' => '1s',
'batch-pending' => 5,
},
{ 'enabled' => true,
'bind-address' => ':8090',
'database' => 'udp_db2',
'batch-size' => 10000,
'batch-timeout' => '1s',
'batch-pending' => 5,
},
]
class {'influxdb::server':
reporting_disabled => true,
http_auth_enabled => true,
shard_writer_timeout => '10s',
cluster_write_timeout => '10s',
udp_options => $udp_options,
}
Enable opentsdb
class {'influxdb::server':
opentsdb_options => {
enabled => true,
bind-address => ':4242',
database => 'foo',
typesdb => '/usr/share/collectd/types.db',
batch-size => 1000,
batch-pending => 5,
batch-timeout => '1s',
read-buffer => 0,
},
}
influxdb::server
: Installs and configures InfluxDB.
influxdb::server::install
: Installs packages.influxdb::server::config
: Configures InfluxDB.influxdb::server::service
: Manages service.
Allows you to install or remove InfluxDB. Can be 'present' or 'absent'.
Version of InfluxDB. Default: 0.9.3 NOTE: Unfortunately, the latest link available on the influxdb website is pointing to an old version. For more info, check ISSUE 3533
Path to the config file. Default: OS specific
The provider to use to manage the service. Default: OS specific
Boolean to decide if the service should be enabled.
What provider should be used to install the package.
This setting can be used to configure InfluxDB to bind to and listen for
cluster connections on this address, default is ":8088"
For clustering this must be set to <fqdn>:<port>
(usually 8088)
This setting can be used to configure InfluxDB to bind to and listen for
cluster connections on this address, default is ":8091"
For clustering this must be set to <fqdn>:<port>
(usually 8091)
If enabled once every 24 hours InfluxDB will report anonymous data to m.influxdb.com. Default: false
Default: true
Default: 1s
Default: 1s
Default: 500ms
Default: 50ms
Controls where the actual shard data for InfluxDB lives. Default: OS distro
Wal dir for the storage engine 0.9.3+ Default: /var/lib/influxdb/wal
Location of the meta dir Default: /var/lib/influxdb/meta
Enable WAL logging. NEW in 0.9.3+ Default: true
The time within which a shard must respond to write. Default: 5s
The time within which a write operation must complete on the cluster. Default: 5s
Controls the enforcement of retention policies for evicting old data. Default: true
Default: 10m
Controls the availability of the built-in, web-based, admin interface. Default: true
Default: :8083
If HTTPS is enabled for the admin interface, HTTPS must also be enabled on the [http] service. Default: false
Default: undef
Controls how the HTTP endpoints are configured. These are the primary mechanism for getting data into and out of InfluxDB. Default: true
Default: :8086
Default: false
Default: true
Default: false
Default: false
Default: false
Default: undef
Default: undef
Default: 10000
Default: InfluxDB
Controls the subscriptions, which can be used to fork a copy of all data received by the InfluxDB host. Default: true
Default: 30s
Controls the listener for InfluxDB line protocol data via Graphite. Default: undef
Controls the listener for InfluxDB line protocol data via Collectd. Default: undef
Controls the listener for InfluxDB line protocol data via OpenTSDB. Default: undef
Controls the listener for InfluxDB line protocol data via UDP. Default: undef
Default: true
Default: 24h
Default: _internal
Controls how continuous queries are run within InfluxDB. Default: true
Default true
Default: 1s
Controls the number of series allowed per database. Change the setting to 0 to allow an unlimited number of series per database. Default: 1000000
Controls the hinted handoff feature, which allows nodes to temporarily store queued data when one node of a cluster is down for a short period of time. Default: true
Default: /var/lib/influxdb/hh
Default: 1073741824
Default: 168h
Default: 0
Default: 1s
If needed, you can add a custom template. Default: influxdb/influxdb.conf.erb
Default: OS specific
Default: OS specific
Default: /var/log/influxdb/influxd.log
Default: /dev/null
enable/disable installation of the influxdb packages from the yum/apt repo Default: true
enable/disable repository installation Default: true
Additional influxd options used for setting up raft clusters. Default: undef
This module has been tested on:
- Ubuntu 12.04
- Ubuntu 14.04
- CentOS 6/7
Please see CONTRIBUTING.md
- Add native types for managing users and databases
- Add more rspec tests
- Add beaker/rspec tests
See LICENSE file