Forge Home

icingadb

Puppet module to manage IcingaDB and the IcingaDB Redis server

1,679 downloads

1,679 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.1.0 (latest)
released Apr 21st 2020
This version is compatible with:
  • Puppet Enterprise 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
  • Puppet >= 5.5.8 < 7.0.0
  • , , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'icinga-icingadb', '0.1.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add icinga-icingadb
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install icinga-icingadb --version 0.1.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download
Tags: monitoring

Documentation

icinga/icingadb — version 0.1.0 Apr 21st 2020

icingadb

Icinga Logo

Table of Contents

  1. Description
  2. Setup - The basics of getting started with icingadb
  3. Usage - Configuration options and additional functionality
  4. Reference
  5. Release notes

Description

This module manages the IcingaDB Redis server and the IcingaDB itself.

Setup

What the IcingaDB Puppet module supports

Setup Requirements

This module supports:

  • [puppet] >= 5.5.8 < 7.0.0

And requiers:

  • [puppetlabs/stdlib] >= 4.16.0 < 7.0.0
    • If Puppet 6 is used a stdlib 5.1 or higher is required
  • [icinga/icinga] >= 0.1.2
  • [puppet/redis] >= 4.0.0

Beginning with icingadb

Add this declaration to your Puppetfile:

mod 'icingadb',
  :git => 'https://github.com/icinga/puppet-icingadb.git',
  :tag => 'v0.1.0'

Then run:

bolt puppetfile install

Or do a git clone by hand into your modules directory:

git clone https://github.com/icinga/puppet-icingadb.bgit icinga

Change to icingadb directory and check out your desired version:

cd icingadb
git checkout v0.1.0

Usage

icingadb::redis

include ::icingadb::redis
class { '::icinga::redis':
  manage_repo  => true,
  bind         => '127.0.0.1',
  port         => 6381,
}

icingadb

To store historical data IcingaDB uses a MySQL/MariaDB database. In the future also PostgreSQL support will be available.

include ::mysql::server

Note: If you’re using a version of MySQL < 5.7 or MariaDB < 10.2, the following server options must be set:

class { 'mysql::server':
  override_options => {
    mysqld => {
      innodb_file_format    => 'barracuda',
      innodb_file_per_table => 1,
      innodb_large_prefix   => 1,
    },
  },
}

The database declaration itself is in both case the same:

mysql::db { 'icingadb':
  user     => 'icingadb',
  password => 'supersecret',
  host     => 'localhost',
  grant    => [ 'ALL' ],
}

By default only a database password has to be set. After a puppet run, IcingaDB is configures to connect a local MySQL/MariaDB and a local Redis server on port 6380. But no repository is involved. To do this, set manage_repo to true to use the class icinga::repos automatically. For more feature see icinga.

class { '::icingadb':
  manage_repo => true,
  db_password => 'supersecret',
}

In the last example the database will be connected but you've first to import the schema. This could by done by hand or you set import_db_schema to true like in the following example. There is also shown how a Redis server has to connect on a different port.

class { '::icingadb':
  redis_host       => 'localhost',
  redis_port       => 6381,
  db_password      => 'supersecret',
  import_db_schema => true,
}

Also the needed database can located on a different host and port:

class { '::icingadb':
  db_host     => 'mysql.example.de',
  db_port     => 3309,
  db_name     => 'icingadb',
  db_username => 'icingadb',
  db_password => 'supersecret',
}

Reference

See REFERENCE.md

Release Notes

This code is a very early release and may still be subject to significant changes.