Skip to content

Vytvoření notifikací

Prosté zahlídání stroje/služby nám pouze ukáže, v jakém stavu se daná služba nebo host nachází. Občas se ale hodí, aby o tomto stavu byl správce informován. K tomu slouží notifikace. Notifikace jsou objekty (stejně jako host nebo služba) provázané s jinými objekty.

Aktuální konfigurace Icingy umožňuje posílat notifikace pomocí e-mailu, SMS, Mattermost a MS Teams.

SMS notifikace jsou automaticky pozdrženy 3 minuty běhěm nichž se čeká na další zprávu, pokud přijde, bude spojena v jednu SMS. Pozdržení je zde z důvodu zamezení přetížení SMSkovače a také ke snížení upovídanosti v případě krátkého výpadku. Ostatní notifikace nejsou pozdrženy.

Napřed je ale potřeba mít jasno jaké notifikace, kdo a kdy má dostávat. Icinga umožňuje nastavit odesílání notifikací flexibilně dle potřéby správce služby. Například jen v pracovní dny, o víkendu nic. Aktuální konfigurace Icingy obsahuje tyto možnosti:

Jméno notifikace: Popis:
mail-host-notification Posílá e-mail o každé změně hosta 24x7
mail-service-notification Posílá e-mail o každé změně služby 24x7
sms-host-notification Jako mail-host-notification, ale SMS.
sms-service-notification Jako mail-service-notification, ale SMS
sms-host-notification-workday SMS notifikace v době Po - Pá, 6:00 až 22:00
sms-service-notification-workday SMS notifikace v době Po - Pá, 6:00 až 22:00
mail-host-notification-norenotify Notifikaci pošle pouze jednou, vychází z mail-host-notification
mail-service-notification-norenotify Notifikaci pošle pouze jednou, vychází z mail-service-notification
mattermost_host Posílá notifikace hosta do kanálu Mattermost
mattermost_service Posílá notifikace služby do kanálu Mattermost
teams-host-notification Posílá notifikace hosta do kanálu v MS Teams
teams-service-notification Posílá notifikace služby do kanálu v MS Teams

Další možnosti je možné vytvořit. Zde doporučuji obrátit se na dokumentaci k notifikacím a časový periodám.

Zde uvedené jsou předdefinované šablony, samozřejmě je možné vytvořit si vlastní notifikace dle potřeby.

Vytvoření uživatele

Dále je potřeba vytvořit uživatele, kteří budou dostávat notifikace. Aby takto vytvořený uživatel měl smysl, je potřeba mu nastavit atribut e-mail a pokud má dostávat SMS, tak i atribut pager. Seznam všech atributů je v dokumentaci.

Konkrétní volání API potom vypadá následovně:

DATA:

{
  "attrs": {
    "display_name": "Cele Jmeno",
    "email": "uco@muni.cz",
    "pager": "+420549494038",
  }
}

URI:

https://monitor.ics.muni.cz:5665/v1/objects/users/uco@muni.cz

"uco" prosím nahraďte učem skutečného uživatele, stejně tak ostatní věci ;)

Takto vytvořený uživatel bude moci dostávat e-maily a SMS o stavu věcí. Každý uživatel si může nastavit jaké typy a stavy notifikací chce dostávat a samozřejmě kdy. Pokud mám více uživatelů, můžu je sjednotit do skupiny, ty se specifikují atributem groups.

Vytvoření skupiny uživatelů

Uživatele je možné sdružovat do skupin, ty se vytváří takhle:

DATA:

{
  "attrs": {
    "display_name": "popisne jmeno skupiny",
  }
}

URI:

https://monitor.ics.muni.cz:5665/v1/objects/usergroups/prefix-jmeno_skupiny

Vytvoření notifikace pro uživatele/skupinu

DATA:

{
  "attrs": {
    "interval": 300.0,
    "period": "",
    "users": [ "uco@muni.cz" ],
    "user_groups": [ "prefix-jmeno_skupiny" ],
    "command": "mail-host-notification",
    "service_name": "test-web",
    "host_name": "novy_stroj.ics.muni.cz"
  }
}

URI:

https://monitor.ics.muni.cz:5665/v1/objects/notifications/novy_stroj.ics.muni.cz!test-web!mail-notification

Podstatný je atribut command -- ten říká, jakým nástrojem se budou vytvářet notifikace. Seznam je v tabulce na začátku.