На спокойном сайте уходит 30 писем в день – заявки с форм, WooCommerce, плагин рассылки. Вдруг за час улетает 15 000, хотя вы ничего не запускали. Порог «алерт если >500 писем» либо молчал (лимит далеко), либо орёт каждую неделю. Аномалии сравнивают сигнал с вашей нормой: этот час, этот день недели, этот тип трафика.
Ниже – практика для вебмастера на своём WP/VPS: что мониторить, чем закрыть дыру без дорогого enterprise-стека.
к содержанию ↑
Почему на WP это всплывает именно так
WordPress – не один процесс, а связка:
wp_mail()дергают формы, Woo, membership, newsletter-плагины, иногда кривые темы.- Cron (
wp-cron.phpили system cron) гоняет рассылки и импорты в фоне. - Плагины добавляют REST endpoints и AJAX без вашего внимания.
- Shared/VPS – лимиты SMTP и CPU приходят счётом, не дашбордом.
Классический uptime «сайт открывается» не видит: утечку SMTP, ботов в Contact Form 7, взлом xmlrpc.php, очередь failed jobs в Action Scheduler.
к содержанию ↑
Что мониторить в первую очередь (приоритет)
- Исходящая почта – объём
wp_mail/ SMTP-логов провайдера, bounce, жалобы. - Отправки форм – CF7, WPForms, Gravity: сабмиты в минуту, уникальные IP.
- Ошибки PHP – всплеск в
debug.logили Sentry (если подключён). - HTTP 5xx / 429 – nginx/Apache access log, Cloudflare analytics.
- Cron и очереди – просроченный
wp-cron, раздутая таблица Action Scheduler. - Авторизация – failed login (
wp-login.php), XML-RPC, REST brute.
Одна метрика почты с baseline полезнее десяти графиков «на всякий случай».
к содержанию ↑
Статический порог vs аномалия
| Подход | Пример на WP | Когда хватает |
|---|---|---|
| Жёсткий лимит | не больше N писем/сутки у SMTP | квота провайдера, бюджет |
| Порог по ошибкам | 5xx > 1% за 5 мин | явный даунтайм |
| Аномалия | в 10 раз больше писем, чем в этот же час вчера | первый спам, утечка ключа, бот |
Порог «>100 заявок в час» не сработает, если раньше максимум был 8. Аномалия – сработает.
к содержанию ↑
Что поставить на типичном VPS (без фанатизма)
Минимум (вечер настройки)
- Uptime снаружи – UptimeRobot / Hetrix / свой cron + curl на
/и/wp-login.php(осторожно с rate limit). - Логи nginx – goaccess или Loki/Promtail; алерт на рост 5xx по grep/скрипту.
- Почта – логи Postfix/Exim или панель SMTP (SendGrid, Mailgun): суточный объём + алерт на скачок.
- Плагин безопасности – Wordfence / Solid Security: уведомления о блокировках и failed login (не замена anomaly, но сигнал).
Средний уровень
- Netdata или Prometheus + node_exporter на VPS – CPU, RAM, disk, network.
- Grafana – дашборд: RPS, 5xx, latency; anomaly rule или простой «сравнить с вчера» скриптом.
- Sentry для PHP – всплеск исключений после обновления плагина.
WP-специфика
- Отключить виртуальный cron на проде, повесить system cron на
wp cron event run --due-now– иначе «тихие» пики задач. - Action Scheduler (Woo) – мониторить
pending/failed; аномальный ростfailed= интеграция или SMTP. - После деплоя – flush object cache и проверка форм (частый источник «вдруг всё посыпалось»).
7 практик, чтобы алерты не бесили
- Baseline 7-14 дней – не доверяйте anomaly в первую неделю после миграции.
- Календарь – акции, рассылки, обновления плагинов помечайте (иначе ложняк после Newsletter плагина).
- Владелец алерта – кто в 2 ночи отключает SMTP / ставит maintenance mode.
- Runbook на одну страницу – проверить: последний плагин,
wp_maillog, Action Scheduler, ключи API в.env. - Kill switch – возможность отключить форму, REST route или SMTP в один клик (mu-plugin, nginx deny, firewall).
- Корреляция – рост писем + рост
password-resetилиadmin-ajax.php= не «хостинг глючит», а abuse. - Учебный алерт раз в квартал – симулируйте на staging всплеск сабмитов, проверьте, что Telegram/email дежурному пришёл.
к содержанию ↑
Типичные ошибки
- Только «сайт жив» – зелёный uptime при уходе 10k писем.
- Алерт без действия – в Slack, который все замьютили.
- Мониторинг только в админке WP – при взломе админка первая недоступна.
- Игнор wp-cron – фоновые задачи раздуваются незаметно.
- Один глобальный порог на все сайты – мультисайт и лендинг имеют разную норму.
к содержанию ↑
Чеклист на эту неделю
- Включить суточный отчёт SMTP или лог исходящей почты.
- Зафиксировать «норму» сабмитов форм за 7 дней (хотя бы вручную из логов).
- System cron вместо
wp-cron.phpна проде. - Алерт на 5xx (хотя бы простой скрипт по access.log).
- Записать runbook: куда смотреть при всплеске писем, кто отключает SMTP.
- Проверить, что
xmlrpc.phpзакрыт или ограничен, если не нужен.
к содержанию ↑
Итог
На WordPress инциденты часто выглядят как «всё работает, просто счёт вырос». Наблюдение за аномалиями – must-have для почты, форм и фоновых задач. Начните с baseline по wp_mail и сабмитам, добавьте владельца и runbook – это дешевле одного домена в DNSBL.
Что уже мониторите на своих WP – только uptime или есть алерты на почту/формы? Напишите в комментариях на web7.pro – подскажу, куда копать под ваш хостинг.
Плагин рейтинга создан автором этого блога. Буду очень признателен, если вы сможете его поддержать (ссылка)

