Přeskočit obsah

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.sh nebo 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:

/Site/model.yaml
define:
  type: rc/model

services:
  asab-iris:
    instances:
      - node1
    asab:
      config:
        push:
          url: "https://ntfy.sh"
          default_topic: "logman-alerts"
          timeout: 10

ntfy nastavení

  1. Vyberte ntfy server, který bude přijímat oznámení.
  2. Vyberte název tématu, například logman-alerts.
  3. Přihlaste požadovaná zařízení nebo klienty k tématu.
  4. Zkopírujte základní URL ntfy serveru do push.url.
  5. Nastavte push.default_topic, pokud by oznámení měla používat výchozí téma.
  6. Nastavte push.timeout, pokud výchozí časový limit není vhodný pro nasazení.
  7. Aktualizujte /Site/model.yaml.
  8. Aplikujte model z Knihovny nebo spusťte příkaz pro aplikaci nasazení používaný při instalaci.
  9. 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:

/Templates/Push/alert.md
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.