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:
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¶
- Vytvořte nebo vyberte účet bota Mattermost pro službu.
- Vytvořte přístupový token pro tohoto bota.
- Zkopírujte token do
mattermost.token. - Zkopírujte URL serveru Mattermost do
mattermost.url, napříkladhttps://mattermost.example.com. - Zkopírujte ID výchozího kanálu a nastavte ho jako
mattermost.security_channel_id. - Pokud by služba měla posílat přímé zprávy, nastavte
mattermost.bot_usernamena uživatelské jméno účtu bota. - Volitelně nastavte
mattermost.timeoutna časový limit požadavku Mattermost API v sekundách. Výchozí hodnota je10. - Uložte token Mattermost do Vault nebo do úložiště tajemství používaného při instalaci LogMan.io.
- Aktualizujte
/Site/model.yaml. - Aplikujte model z Knihovny, nebo spusťte příkaz pro aplikaci nasazení používaný při instalaci.
- 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:
**{{ 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"
}
}
}