- Description
- Setup - The basics of getting started with Icinga Web 2
- 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 Icinga Web 2.
Icinga Web 2 is the next generation open source monitoring web interface, framework and command-line interface developed by the Icinga Project, supporting Icinga 2, Icinga Core and any other monitoring backend compatible with the Livestatus Protocol.
node /box/ {
include icingaweb2
}
node /box/ {
class { 'icingaweb2':
install_method => 'package',
}
}
node /box/ {
class { 'icingaweb2':
install_method => 'git',
}
}
Default Credentials will be icingaadmin:icinga
node /box/ {
class { 'icingaweb2':
initialize => true,
}
}
Note: This will add the same repositories as icinga/icinga2
, make sure you only enable one.
class { '::icingaweb2':
manage_repo => true,
install_method => 'package',
}
In minimal default configuration:
include ::icingaweb2
include ::icingaweb2::mod::monitoring
With transport configuration
include ::icingaweb2
# default is local
class { '::icingaweb2::mod::monitoring':
transport => 'local',
transport_path => '/run/icinga2/cmd/icinga2.cmd',
}
# via SSH, make sure to add a SSH key to the user running PHP (apache)
class { '::icingaweb2::mod::monitoring':
transport => 'remote',
transport_host => 'icinga-master1',
transport_username => 'icingaweb',
transport_path => '/run/icinga2/cmd/icinga2.cmd',
}
# via Icinga 2 API
class { '::icingaweb2::mod::monitoring':
transport => 'api',
transport_host => 'icinga-master1',
transport_username => 'icingaweb2',
transport_password => 'secret',
}
node /box/ {
class {
'icingaweb2':;
'icingaweb2::mod::businessprocess':;
}
}
node /box/ {
class {
'icingaweb2':;
'icingaweb2::mod::deployment':
auth_token => 'secret_token';
}
}
node /box/ {
class {
'icingaweb2':;
'icingaweb2::mod::graphite':
graphite_base_url => 'http://graphite.com/render?';
}
}
node /box/ {
class {
'icingaweb2':;
'icingaweb2::mod::nagvis':
nagvis_url => 'http://example.org/nagvis/';
}
}
Icinga2 is installed or on another host. One needs only the ido data to configure icingaweb2. This could be a profile class to include icingaweb2 in a architecture with roles and profiles.
class profile::icingaweb2(){
$ido_db_name = hiera('icinga2::ido::name', 'icinga2')
$ido_db_user = hiera('icinga2::ido::user', 'icinga2')
$ido_db_pass = hiera('icinga2::ido::password', 'icinga2')
$web_db_name = hiera('icingaweb2::db::name', 'icingaweb2')
$web_db_user = hiera('icingaweb2::db::user', 'icingaweb2')
$web_db_pass = hiera('icingaweb2::db::password', 'icingaweb2')
contain '::mysql::server'
contain '::mysql::client'
contain '::mysql::server::account_security'
contain '::apache'
contain '::apache::mod::php'
Exec { path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ] }
::mysql::db { $web_db_name:
user => $web_db_user,
password => $web_db_pass,
host => 'localhost',
grant => ['ALL'],
}
class { '::icingaweb2':
initialize => true,
install_method => 'package',
manage_apache_vhost => true,
ido_db_name => $ido_db_name,
ido_db_pass => $ido_db_pass,
ido_db_user => $ido_db_user,
web_db_name => $web_db_name,
web_db_pass => $web_db_pass,
web_db_user => $web_db_user,
require => Class['::mysql::server'],
} ->
augeas { 'php.ini':
context => '/files/etc/php.ini/PHP',
changes => ['set date.timezone Europe/Berlin',],
}
contain ::icingaweb2::mod::monitoring
}
- Fork it
- Create a feature branch (
git checkout -b my-new-feature
) - Run rspec tests (
bundle exec rake spec
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request