Skip to content

v2.11.0 — Complete Webhooks (Slack/Discord/Telegram/Custom)

Choose a tag to compare

@gotical gotical released this 11 Sep 17:34
· 7 commits to main since this release

v2.11.0 — Complete Webhooks (Slack / Discord / Telegram / Custom)

Завершение интеграции с внешними сервисами уведомлений. Начато в v2.6.0, теперь полноценно работает.

Поддерживаемые каналы

  • 💬 Slack — Incoming Webhook URL. Rich blocks с контекстом.
  • 🎮 Discord — Webhook URL. Embeds с цветовой кодировкой по severity.
  • ✈️ Telegram — Bot Token + Chat ID. Создайте бота через @Botfather.
  • 🔌 Custom — любой URL (Zapier, Make.com, n8n, свой backend). POST или PUT.

События (4 типа)

  • 🦠 Malware — сканер нашёл угрозы
  • ⚠️ Integrity — изменены файлы плагина
  • 🔒 Brute force — IP заблокирован после неудачных попыток
  • 🟡 Anomaly — аномальный вход администратора (новое в v2.11.0)

Severity threshold

Slider 0-100: webhook сработает только если severity события >= значения.
Позволяет отсеивать шум и слабые события.

Per-channel Test кнопки

Каждый канал имеет кнопку Test — отправляет реальное тестовое сообщение и показывает:

  • ✓ OK (с HTTP кодом)
  • ✕ Ошибка (с описанием)

Event Log

Журнал последних 200 отправок с per-channel статусом:

  • Slack: ✓ / ✕
  • Discord: ✓ / ✕
  • Telegram: ✓ / ✕
  • Custom: ✓ / ✕

На каждой строке: время, событие, severity, результат по каждому каналу. Ошибки показывают причину в tooltip при hover.

Настройки страницы

  1. Откройте Webhooks в меню плагина
  2. Включите общий toggle
  3. Заполните URL/Token нужного канала
  4. Нажмите Test для проверки
  5. Выберите события (toggles)
  6. Сохраните

Примеры payload

Slack:

{
  "blocks": [{
    "type": "section",
    "text": { "type": "mrkdwn", "text": "*Malware detected*" }
  }]
}

Discord:

{
  "embeds": [{
    "title": "Malware detected (3 threats)",
    "color": 14799534,
    "description": "Scan type: full...",
    "footer": { "text": "https://example.com" }
  }]
}

Telegram:

🚨 [CRITICAL] Malware detected (3 threats)

Scan type: full
• /var/www/wp-content/themes/twenty...php
• /var/www/wp-content/plugins/akismet/akismet.php

https://example.com · 2026-09-11T17:24:00+00:00

Технические детали

  • Все запросы — blocking: true для test (получаем реальный HTTP response)
  • В production — blocking: false (fire-and-forget)
  • sslverify: true для всех запросов
  • 8 секунд timeout
  • Telegram response парсится для проверки ok: true
  • События логируются с per-channel статусом
  • Лимит 200 записей в журнале (FIFO)

Примеры интеграций

  • Zapier → webhook в Slack + email + задача в Jira
  • n8n → сложная автоматизация: парсинг + enrichment + DB
  • Discord → оповещения в dev-канал
  • Telegram → мгновенные push на телефон
  • Custom → свой микросервис для SIEM интеграции