Push oznámení¶
Služba zasílání zpráv může odesílat push notifikace prostřednictvím ntfy nebo na vlastním serveru kompatibilním s ntfy.
Používejte push notifikace, když by se měly notifikace LogMan.io zobrazit na přihlášených mobilních zařízeních, desktopových klientech, prohlížečích nebo u jiných odběratelů ntfy.
Předpoklady¶
Než nakonfigurujete push notifikace, ujistěte se, že:
- server ntfy je k dispozici, například
https://ntfy.shnebo vlastní hostovaný server ntfy - server LogMan.io může dosáhnout serveru ntfy přes HTTPS
- je k dispozici název tématu pro notifikace
- odběratelé jsou nastavena pro téma v mobilní aplikaci ntfy, desktopové aplikaci, webové aplikaci, CLI nebo jiném kompatibilním klientu
- název tématu není snadno uhodnutelný, pokud server ntfy umožňuje veřejná témata bez autentizace
- je k dispozici výchozí téma, pokud by požadavky na notifikace měly být povoleny bez uvedení
topic
Poznámka
Tato konfigurace používá publikování založené na tématech ntfy. Konfigurované téma je součástí doručovací adresy, takže název tématu musí odpovídat politice serveru ntfy.
Požadovaná konfigurační pole¶
| Pole | Popis |
|---|---|
url |
Base URL of the ntfy server, for example https://ntfy.sh. |
Nepovinná konfigurační pole¶
| Pole | Popis |
|---|---|
default_topic |
Téma použité, když požadavek na oznámení neposkytuje topic. |
timeout |
Časový limit požadavku HTTP v sekundách. Výchozí hodnota je 10. |
Ukázka konfigurace¶
Upravte soubor model.yaml pro konfiguraci služby asab-iris:
define:
type: rc/model
services:
asab-iris:
instances:
- node1
asab:
config:
push:
url: "https://ntfy.sh"
default_topic: "logman-alerts"
timeout: 10
ntfy nastavení¶
- Vyberte ntfy server, který bude přijímat oznámení.
- Vyberte název tématu, například
logman-alerts. - Přihlaste požadovaná zařízení nebo klienty k tématu.
- Zkopírujte základní URL ntfy serveru do
push.url. - Nastavte
push.default_topic, pokud by oznámení měla používat výchozí téma. - Nastavte
push.timeout, pokud výchozí časový limit není vhodný pro nasazení. - Aktualizujte
/Site/model.yaml. - Aplikujte model z Knihovny nebo spusťte příkaz pro aplikaci nasazení používaný při instalaci.
- Odešlete testovací push oznámení.
Varování
Na veřejných serverech ntfy může kdokoli, kdo zná název tématu, být schopen se k tomuto tématu přihlásit. Použijte ne zřejmý název tématu, nebo použijte server ntfy hostovaný sami se zabezpečením přístupu podle potřeby nasazení.
Ověřte konfiguraci¶
Konfigurace je připravena, když:
- služba se spustí bez chyb konfigurace push notifikací
- server LogMan.io se může připojit ke konfigurovanému serveru ntfy
- testovací notifikace se zobrazí na klientovi přihlášeném k očekávanému tématu
- logy služby neobsahují chyby ntfy API ani sítě
Šablony push¶
Šablony push notifikací musí být uloženy v adresáři /Templates/Push/ v Knihovně.
Vzorový šablona:
TITLE: {{ severity }} notification
{{ message }}
Nepovinný řádek TITLE: se používá jako název oznámení a před odesláním je odstraněn z těla zprávy.
Příklad webového požadavku¶
{
"body": {
"template": "/Templates/Push/alert.md",
"params": {
"severity": "High",
"message": "New security notification"
}
}
}
Pokud není topic zadán, služba používá push.default_topic.
Příklad oznámení Kafka¶
Při odesílání přes Kafka nastavte type na push.
{
"type": "push",
"body": {
"template": "/Templates/Push/alert.md",
"params": {
"severity": "High",
"message": "New security notification"
}
}
}
Metadata oznámení¶
Push notifikace mohou obsahovat volitelné zobrazovací metadata v body.params.
| Parametr | Popis |
|---|---|
title |
Název oznámení. Přepisuje řádek TITLE: v šabloně. |
priority |
Priorita oznámení ntfy. |
tags |
štítky ntfy zobrazované kompatibilními klienty. |
click |
URL se otevře po kliknutí na oznámení. |
Příklad:
{
"topic": "logman-alerts",
"body": {
"template": "/Templates/Push/alert.md",
"params": {
"title": "High CPU",
"priority": "high",
"tags": "warning,monitoring",
"click": "https://grafana.example.com/d/abc123",
"message": "CPU usage above 90% on node ant-3"
}
}
}
Pokud click není poskytnut, služba použije první URL nalezenou v vykreslené zprávě, pokud nějaká existuje.