3f25a733a1
- add docu about the monitoring module - add hint to initialize, what the credentials are. - add real world example
183 lines
4.6 KiB
Markdown
183 lines
4.6 KiB
Markdown
# Icinga Web 2
|
|
|
|
#### Table of Contents
|
|
|
|
1. [Description](#description)
|
|
2. [Setup - The basics of getting started with Icinga Web 2](#setup)
|
|
* [Setup requirements](#setup-requirements)
|
|
* [Beginning with Icinga Web 2](#beginning-with-icinga-web-2)
|
|
3. [Usage - Configuration options and additional functionality](#usage)
|
|
* [Install using packages](#install-using-packages)
|
|
* [Install using Git](#install-using-git)
|
|
* [Manage repository](#manage-repository)
|
|
* [Business process module](#business-process-module)
|
|
* [Deployment module](#deployment-module)
|
|
* [Graphite module](#graphite-module)
|
|
* [NagVis module](#nagvis-module)
|
|
4. [Reference - An under-the-hood peek at what the module is doing and how](#reference)
|
|
5. [Limitations - OS compatibility, etc.](#limitations)
|
|
6. [Development - Guide for contributing to the module](#development)
|
|
|
|
## 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
|