No Description

Tom De Vylder b7a4de5138 Lintian fixes 7 years ago
manifests b7a4de5138 Lintian fixes 7 years ago
spec 5a786c6d49 Add possibility to set auth_backend to ldap 8 years ago
templates d91ca34935 Moving away from templates to usign inifile from Puppetlabs/inifile 9 years ago
.fixtures.yml c4d4c0b35c Use HTTPs links for fixtures 9 years ago
.gitignore d91e8bdd4c Sync basic module settings with icinga-icinga2 8 years ago
.mailmap 06301fc668 Add .mailmap and AUTHORS file 8 years ago
.puppet-lint.rc 3096ea1e7d Bump puppet-lint version 7 years ago
.travis.yml 4ca1f7b125 Update travis definitions 8 years ago
AUTHORS 06301fc668 Add .mailmap and AUTHORS file 8 years ago
Gemfile 3096ea1e7d Bump puppet-lint version 7 years ago
LICENSE 6bc7b1ede6 Initial commit 9 years ago
README.md 3f25a733a1 Extend Documentation 8 years ago
Rakefile f0d392476c Enable metadata linting 8 years ago
metadata.json 2fc036ce9d Bump version to 1.0.6 8 years ago

README.md

Icinga Web 2

Table of Contents

  1. Description
  2. Setup - The basics of getting started with Icinga Web 2
  3. Usage - Configuration options and additional functionality
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.
  6. 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