Bez popisu
manifests | ||
spec | ||
templates | ||
.fixtures.yml | ||
.gitignore | ||
.mailmap | ||
.puppet-lint.rc | ||
.travis.yml | ||
AUTHORS | ||
Gemfile | ||
LICENSE | ||
metadata.json | ||
Rakefile | ||
README.md |
Icinga Web 2
Table of Contents
- 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
Description
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.
Setup
Setup requirements
Beginning with Icinga Web 2
node /box/ {
include icingaweb2
}
Usage
Install method: packages
node /box/ {
class { 'icingaweb2':
install_method => 'package',
}
}
Install method: Git
node /box/ {
class { 'icingaweb2':
install_method => 'git',
}
}
Initialize db
Default Credentials will be icingaadmin:icinga
node /box/ {
class { 'icingaweb2':
initialize => true,
}
}
Manage repository
node /box/ {
class { 'icingaweb2':
manage_repo => true,
install_method => 'package',
}
}
Monitoring module
node /box/ {
class {
'icingaweb2':;
'icingaweb2::mod::monitoring':;
}
}
Business process module
node /box/ {
class {
'icingaweb2':;
'icingaweb2::mod::businessprocess':;
}
}
Deployment module
node /box/ {
class {
'icingaweb2':;
'icingaweb2::mod::deployment':
auth_token => 'secret_token';
}
}
Graphite module
node /box/ {
class {
'icingaweb2':;
'icingaweb2::mod::graphite':
graphite_base_url => 'http://graphite.com/render?';
}
}
NagVis module
node /box/ {
class {
'icingaweb2':;
'icingaweb2::mod::nagvis':
nagvis_url => 'http://example.org/nagvis/';
}
}
Real world example
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
}
Reference
Limitations
Development
- 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