Select Page

Icinga 2 Konfiguration – Lust auf mehr?

by | May 2, 2014 | Icinga, Monitoring & Observability

In der Icinga 2 Entwicklung wurden in den letzten Wochen einige Testrunden mit der Konfiguration gedreht, und festgestellt, dass hier noch Verbesserungspotienzial besteht. In den Releases 0.0.9 und 0.0.10 sind diese Änderungen drinnen – offen ist noch die Anpassung des LConf Exports. Ich empfehle zum Testen von Icinga 2 nach wie vor die Snapshot Pakete, die den aktuellen Entwicklungsstand wiederspiegeln (Hintergrund: Manchmal treten Bugs auf, wie gestern Abend, als ich mir das untenstehende Szenario angesehen habe – Fix ist im Git next).
Eine der Fragen zum Thema Konfiguration ist mit Sicherheit folgendes Szenario:

  • Host www.netways.de wird in einer CMDB / Puppet / etc mit Custom Attributes ausgestattet, beispielsweise sla = “24×7 for everyone”
  • Unabhängig von diesem Beispiel wird dieses Attribut auch für SLA Reporting verwendet
  • Zusätzlich soll dieser Host noch in die Hostgruppe “sla-24×7” zur besseren Visualisierung im Webinterface
  • Dieser Host soll einen passiven Service “sla-report” zugewiesen bekommen, aber nur dann, wenn sich dieser in der Hostgruppe “sla-24×7” befindet
  • Alle Services die diesem Host in der Hostgruppe “sla-24×7” zugeordnet worden sind, sollen eine Notifizierung erhalten.

Die Konfiguration dazu ist relativ kurz und sehr modular erweiterbar – etwa wenn man neue Hosts mit dem Custom Attribut “sla” und dem Muster “24×7*” anlegen würde.

object Host "www.netways.de" {
  import "generic-host"
  address = "91.198.2.92"
  vars.sla = "24x7 for everyone"
}
object HostGroup "sla-24x7" {
  display_name = "Hosts with SLA 24x7"
  assign where match("24x7*", host.vars.sla)
}
apply Service "sla-report-24x7" {
  import "generic-service"
  check_command = "dummy"
  enable_active_checks = false
  vars.dummy_text = "SLA Report 24x7"
  assign where "sla-24x7" in host.groups
}
object User "net-admin" {
  import "generic-user"
  display_name = "NETWAYS Admin"
}
apply Notification "mail-24x7" to Service {
  import "mail-service-notification"
  period = "24x7"
  users = [ "net-admin" ]
  assign where "sla-24x7" in host.groups
}

Nachdem man diese Konfiguration in Icinga 2 geladen hat, sieht das ganze in Icinga Web 2 dann so aus 🙂
icingaweb2_hostgroup_sla-24x7 icingaweb2_host_sla-24x7
icingaweb2_host_services_sla-24x7 icingaweb2_host_services_sla-report_sla-24x7
Wers nun nicht mehr erwarten kann, endlich tagtäglich mit Icinga (Web) 2 zu arbeiten, hat gefühlte 3 Möglichkeiten – selbst mit Vagrant spielen, bei uns bewerben oder die Kollegen aus Sales anschreiben 🙂

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

More posts on the topic Icinga | Monitoring & Observability