Přeskočit obsah

Mattermost

Služba zasílání zpráv může odesílat oznámení do Mattermostu.

Používejte Mattermost, když by se oznámení z LogMan.io měla objevit v kanálu Mattermost nebo být odeslána přímo uživateli Mattermost.

Upozornění Mattermost mohou být spouštěna službou přes HTTP nebo prostřednictvím upozornění Kafka.

Poznámka

Výstup Mattermost je k dispozici v nasazeních, která zahrnují podporu oznámení Mattermost.

Předpoklady

Než nakonfigurujete Mattermost, ujistěte se, že:

  • je dostupný přístup k serveru Mattermost, kam budou zasílána oznámení
  • je dostupný účet bota Mattermost pro posílání zpráv
  • je dostupný přístupový token bota pro tento účet
  • bot může posílat zprávy do cílového kanálu Mattermost
  • je dostupné ID cílového kanálu pro výchozí kanál oznámení
  • je dostupné uživatelské jméno bota, pokud má služba posílat přímé zprávy
  • server LogMan.io se může připojit k serveru Mattermost přes HTTPS
  • je dostupné bezpečné místo pro uložení tokenu bota Mattermost

Podporované destinace

Služba zasílání zpráv může odesílat oznámení Mattermost na:

  • nakonfigurovaný výchozí kanál
  • konkrétní ID kanálu Mattermost
  • přímá zpráva s uživatelem Mattermost

Pro přímé zprávy musí služba znát uživatelské jméno účtu bota Mattermost a uživatelské jméno cílového uživatele.

Požadovaná konfigurační pole

Pole Popis
url Základní URL serveru Mattermost.
token Token bota používaný službou k volání API Mattermostu.
security_channel_id Výchozí ID kanálu se používá, když oznámení neposkytuje channel_id nebo username.

Nepovinná konfigurační pole

Pole Popis
bot_username Uživatelské jméno účtu bota Mattermost. Vyžaduje se pro přímé zprávy.
timeout Časový limit požadavku na Mattermost API v sekundách. Výchozí hodnota je 10.

Vzor 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:
        mattermost:
          url: "https://mattermost.example.com"
          token: "{{MATTERMOST_TOKEN}}"
          security_channel_id: "logman-alerts-channel-id"
          bot_username: "logman-notifications"
          timeout: 10

secrets:
  MATTERMOST_TOKEN: {}

Nastavení Mattermost

  1. Vytvořte nebo vyberte účet bota Mattermost pro službu.
  2. Vytvořte přístupový token pro tohoto bota.
  3. Zkopírujte token do mattermost.token.
  4. Zkopírujte URL serveru Mattermost do mattermost.url, například https://mattermost.example.com.
  5. Zkopírujte ID výchozího kanálu a nastavte ho jako mattermost.security_channel_id.
  6. Pokud by služba měla posílat přímé zprávy, nastavte mattermost.bot_username na uživatelské jméno účtu bota.
  7. Volitelně nastavte mattermost.timeout na časový limit požadavku Mattermost API v sekundách. Výchozí hodnota je 10.
  8. Uložte token Mattermost do Vault nebo do úložiště tajemství používaného při instalaci LogMan.io.
  9. Aktualizujte /Site/model.yaml.
  10. Aplikujte model z Knihovny, nebo spusťte příkaz pro aplikaci nasazení používaný při instalaci.
  11. Odešlete testovací notifikaci Mattermost.

Poznámka

security_channel_id je ID kanálu v Mattermostu, nikoli zobrazované jméno. Použijte ID kanálu z administrace Mattermostu nebo z informací o kanálu v Mattermostu.

Ověřte konfiguraci

Konfigurace je připravena, když:

  • služba startuje bez chyb konfigurace Mattermostu
  • token bota patří očekávanému účtu bota Mattermost
  • testovací oznámení se zobrazí v nastaveném výchozím kanálu nebo v požadovaném kanálu
  • soukromé zprávy jsou doručeny, pokud je použit způsob doručení pomocí username
  • protokoly služby neobsahují chyby API Mattermostu

Odesílání do výchozího kanálu

Pokud je nakonfigurováno security_channel_id, mohou oznámení vynechat cíl a služba je odešle do výchozího kanálu.

{
  "body": {
    "template": "/Templates/Mattermost/message.md",
    "params": {
      "name": "LogMan.io",
      "severity": "High",
      "message": "New security notification"
    }
  }
}

Odesílání do konkrétního kanálu

Nastavte channel_id pro odeslání oznámení do konkrétního kanálu Mattermost.

{
  "channel_id": "logman-alerts-channel-id",
  "body": {
    "template": "/Templates/Mattermost/message.md",
    "params": {
      "name": "LogMan.io",
      "severity": "High",
      "message": "New security notification"
    }
  }
}

Odesílání přímé zprávy

Nastavte username pro odeslání přímé zprávy uživateli Mattermostu.

{
  "username": "alice",
  "body": {
    "template": "/Templates/Mattermost/message.md",
    "params": {
      "name": "Alice",
      "severity": "High",
      "message": "New security notification"
    }
  }
}

Varování

Neposkytujte zároveň channel_id a username ve stejné notifikaci. Použijte channel_id pro zprávu do kanálu nebo username pro přímou zprávu.

Vlastnosti Mattermost

Upozornění Mattermost mohou zahrnovat volitelné props v těle zprávy. Použijte props, když integrace Mattermost používá strukturované metadata zpráv nebo přílohy.

Řetězcové hodnoty uvnitř props mohou používat stejné šablonové parametry jako obsah zprávy.

{
  "channel_id": "logman-alerts-channel-id",
  "body": {
    "template": "/Templates/Mattermost/message.md",
    "params": {
      "severity": "High",
      "event_code": "HIP_Sentinel_Fail"
    },
    "props": {
      "attachments": [
        {
          "color": "#d9534f",
          "title": "{{ severity }} notification",
          "text": "Event code: {{ event_code }}"
        }
      ]
    }
  }
}

Šablony Mattermost

Šablony Mattermost musí být uloženy v adresáři /Templates/Mattermost/ v Knihovně.

Vzorový šablona:

/Templates/Mattermost/message.md
**{{ severity }} notification**

{{ message }}

Příklad oznámení Kafka

Při odesílání přes Kafka nastavte type na mattermost.

{
  "type": "mattermost",
  "channel_id": "logman-alerts-channel-id",
  "body": {
    "template": "/Templates/Mattermost/message.md",
    "params": {
      "severity": "High",
      "message": "New security notification"
    }
  }
}