- Icinga 2 – Monitoring automatisiert mit Puppet Teil 1: Installation
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 2: Features
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 3: Plugins
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 4: Konfiguration I
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 5: Konfiguration II
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 6: Agenten
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 7: Objekte aus Hiera erzeugen
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 8: Integration von Icinga Web 2
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 9: Profile
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 10: Profile Part II
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 11: Profile Part III
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 12: Profile Part IV
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 13: Profile Part V
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 14: Profile Part VI
Heute geht es mit der Konfiguration von Icinga Web 2 weiter, nach dem im letzte Teil als Voraussetzung PHP konfiguriert wurde. Als Backend zur Speicherung von Authentifizierungs- und Benutzerdaten, kommt eine eigene MySQL Datenbank auf dem gleichen lokalen System zum Einsatz. Der Datenbank- und der Benutzername, sowie dass Passwort soll mittels Parameter festgelegt werden könnten, das gleiche gilt für den zum Senden von Kommandos an Icinga benötigten API-Benutzer und man soll sich als Webserver zwischen einem Apache bzw. einem Nginx entscheiden können. Die Konfiguration letztgenannter, wird im nächsten Teil der kommenden Woche behandelt.
class profile::icinga2::server( String $web_db_pass, String $web_api_pass, ... String $web_db_user = 'icingaweb2', String $web_db_name = 'icingaweb2', String $web_api_user = 'icingaweb2', Enum['apache', 'nginx'] $web_server = 'apache', ) { ... mysql::db { $web_db_name: host => $web_db_host, user => $web_db_user, password => $web_db_pass, grant => ['ALL'], before => Class['icingaweb2'], } if $web_server == 'nginx' { $manage_package = true # $web_conf_user = } else { $manage_package = false # $web_conf_user = package { 'icingaweb2': ensure => installed, } } class { 'icingaweb2': db_username => $web_db_user, db_password => $web_db_pass, import_schema => true, config_backend => 'db', conf_user => $web_conf_user, manage_package => $manage_package, } ::icinga2::object::apiuser { $web_api_user: ensure => present, password => $web_api_pass, permissions => [ 'status/query', 'actions/*', 'objects/modify/*', 'objects/query/*' ], target => '/etc/icinga2/conf.d/api-users.conf', } class { '::icingaweb2::module::monitoring': ido_db_host => '127.0.0.1', ido_db_name => $ido_db_name, ido_db_username => $ido_db_user, ido_db_password => $ido_db_pass, commandtransports => { 'icinga2' => { transport => 'api', username => $web_api_user, password => $web_api_pass, } } } }