- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with icinga2
- 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
This module installs and configures Icinga2 servers and clients on Debian. It's designed to work with Puppet 2.7+.
Using this module, you can install a full Icinga2 stack, with the main daemon, IDO backends and various interfaces. It will install packages from the debmon.org repository, configure the needed services and collect exported resources (hosts, services, etc) from clients.
On clients, this module will install and configure NRPE and export various services checks for the server to collect.
On an Icinga2 server:
- Add the debmon.org repository
- Installs the icinga2 and nrpe-plugin packages
- Sets up the icinga2 service
- Collects exported Icinga2 resources into /etc/icinga2/conf.d/puppet/
- Installs and configures either icinga2-classicui or icinga-web as a frontend
- In the case of icinga-web, icinga2-ido is installed and configured
On an Icinga2 client:
- Installs the nrpe-server package
- Configures the nrpe-server to accept connections from the Icinga2 server
- Installs several nrpe checks
- Exports the checks as Icinga2 resources to be collected by the server
You should have pluginsync = true
and storeconfigs = true
in your puppet.conf
.
When you want to install an Icinga2 server, a include icinga2
should be enough.
For a client, use include icinga2::host
.
Configuration can be done using parameters to the classes, but using hiera is preferred.
FIXME: Put the classes, types, and resources for customizing, configuring, and doing the fancy stuff with your module here.
This module can be fully configured via Hiera. Examples for server and client follow:
# Install Icinga2 ClassicUI ("classicui") or Icinga Web ("web") as the frontend
icinga2::frontend: classicui
# Wich users to create for the frontend
icinga2::frontend_users:
icingaadmin: "<some-htpasswd-hash>"
otheruser: "<different-hash>"
# In the case of Icinga Web, which IDO backend should be used, PostgreSQL ("pgsql") or MySQL ("mysql")
icinga2::backend: pgsql
# Which hosts are allowed to query via NRPE
icinga2::nrpe::allowed_hosts:
- 127.0.0.1
- 192.0.2.123
# Which packages should be ignored by the check_packages check
icinga2::host::check_packages_ignore:
- example
- hello
# Override disk warning/critical limits for a specific mount point
icinga2::host::disk_limits:
/srv:
warn: 15%
crit: 10%
# Additional services for the host
icinga2::host::services:
<puppet-internal-name>: # must be unique
service_name: mysql
check_command: nrpe
vars:
nrpe_command: check_mysql
FIXME: Here, list the classes, types, providers, facts, etc contained in your module. This section should include all of the under-the-hood workings of your module so people know what the module is touching on their system but don't need to mess with things. (We are working on automating this section!)
Puppet 2.7+ and Debian Wheezy only currently, more to come.
Pull-requests are awesome. They are even more awesome if they include tests for the functionality you add or alter.