Seite wählen

Benachrichtigungen mit Icinga 2 mal anders

von | Sep 24, 2020 | NETWAYS, Icinga

Vor Kurzem stand ich im Rahmen eines Kundentermins vor der Anforderung noch die Benachrichtigungen für das Icinga 2 Setup umzusetzen. „Soweit kein Problem“ dachte ich mir, allerdings war die genaue Anforderung dann doch etwas speziell: Sowohl bei Hosts als auch bei Services können SLA’s gesetzt werden („gold“, „silver“ oder „bronze“). Wenn bei einem Service kein SLA gesetzt ist, greift das Servicelevel des Hosts. Hier der erste Entwurf dazu:

apply Notification "host-mail-gold" to Host {
  import "mail-host-notification"

  period = "gold"
  users = host.vars.contacts

  assign where host.vars.sla == "gold"
}

apply Notification "service-mail-gold" to Service {
  import "mail-service-notification"

  period = "gold"
  users = service.vars.contacts

  assign where (host.vars.sla == "gold" && ! service.vars.sla) || (service.vars.sla == "gold")
}

Auch bei nicht vorhandenen Kontakten an Services sollte es so sein, das sie vom jeweiligen Host herangezogen werden. Also wurde die Service-Regel nochmal angepasst:

apply Notification "service-mail-gold" to Service {
  import "mail-service-notification"

  period = "gold"

  if (service.vars.contacts) {
    users = service.vars.contacts
  } else {
    users = host.vars.contacts
  }

  assign where (host.vars.sla == "gold" && ! service.vars.sla) || (service.vars.sla == "gold")
}

Weitere Anforderung: Es gibt nicht nur Mail- sondern auch Voice-Alarmierung. Dafür gibt es jeweils verschiedene Kontakte, die entweder mit „mail“ oder „voice“ beginnen. Besondere Herausforderung dabei, die Kontakte können auch gemischt sein:

apply Notification "host-mail-gold" to Host {
  import "mail-host-notification"

  period = "gold"
  users = host.vars.contacts

  assign where host.vars.sla == "gold" && regex("^mail", host.vars.contacts, MatchAny)
}

apply Notification "service-mail-gold" to Service {
  import "mail-service-notification"

  period = "gold"

  if (service.vars.contacts) {
    users = service.vars.contacts
  } else {
    users = host.vars.contacts
  }

  assign where host.vars.sla == "gold" && ! service.vars.sla && ! service.vars.contacts && regex("^mail", host.vars.contacts, MatchAny)
  assign where host.vars.sla == "gold" && ! service.vars.sla && service.vars.contacts && regex("^mail", service.vars.contacts, MatchAny)
  assign where service.vars.sla == "gold" && ( regex("^mail", service.vars.contacts, MatchAny) || (regex("^mail", host.vars.contacts, MatchAny) && ! service.vars.contacts))
}

Das Ganze dann mal drei (jeweils eine Host- und eine Service-Regel für „gold“, „silver“ und „bronze“) gibt insgesamt sechs Notification-Regeln, die dem Kunden über 55.000 Benachrichtigungsobjekte beschert und ihn damit glücklich gemacht haben.

Markus Waldmüller
Markus Waldmüller
Head of Strategic Projects

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Senior Manager Services gelandet. Seit September 2023 kümmert er sich bei der NETWAYS Gruppe um strategische Projekte. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema NETWAYS | Icinga

Monthly Snap April 2024

Hallo zusammen! Bei NETWAYS war im April einiges los. Von dem OSCamp in Nürnberg, zum Waffeltag im Büro war hier immer Action. Und die Kollegen haben fleißig ihr Knowhow weitergegeben in unserem Blog https://www.netways.de/blog/ Wir haben hier die Highlights für Euch...

The Countdown for DevOpsDays Berlin 2024 is on!

It’s just one week to go until DevOpsDays Berlin is about to start. The organizing team’s preparations are in full swing, and they can’t wait to finally welcome you there. Let's build up the excitement together!   A Fantastic Program The two-day schedule provides...

Vielseitige Einblicke der Abteilungswoche bei NETWAYS

In der modernen Arbeitswelt ist es wichtig, über den eigenen Tellerrand hinauszuschauen und ein Verständnis für verschiedene Bereiche eines Unternehmens zu entwickeln. Genau aus diesem Grund wurde bei NETWAYS die Idee der Abteilungswoche geboren. In dieser Woche hatte...