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

Herausforderungen beim Prometheus Scaling

Prometheus ist eine ausgezeichnete Monitoring-Lösung, wenn es um die Überwachung von Verfügbarkeit und Performance geht. Das initiale Deployment geht schnell und mit ein bisschen PromQL KnowHow hat man die Dashboards und Alarme schnell am Laufen. Schon steht die...