Repository navigation
v2.11.0 — Complete Webhooks (Slack/Discord/Telegram/Custom)
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.
Настройки страницы
- Откройте Webhooks в меню плагина
- Включите общий toggle
- Заполните URL/Token нужного канала
- Нажмите Test для проверки
- Выберите события (toggles)
- Сохраните
Примеры 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 интеграции