На спокойном сайте уходит 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.


к содержанию ↑

Что мониторить в первую очередь (приоритет)

  1. Исходящая почта – объём wp_mail / SMTP-логов провайдера, bounce, жалобы.
  2. Отправки форм – CF7, WPForms, Gravity: сабмиты в минуту, уникальные IP.
  3. Ошибки PHP – всплеск в debug.log или Sentry (если подключён).
  4. HTTP 5xx / 429 – nginx/Apache access log, Cloudflare analytics.
  5. Cron и очереди – просроченный wp-cron, раздутая таблица Action Scheduler.
  6. Авторизация – failed login (wp-login.php), XML-RPC, REST brute.

Одна метрика почты с baseline полезнее десяти графиков «на всякий случай».


к содержанию ↑

Статический порог vs аномалия

ПодходПример на WPКогда хватает
Жёсткий лимитне больше N писем/сутки у SMTPквота провайдера, бюджет
Порог по ошибкам5xx > 1% за 5 минявный даунтайм
Аномалияв 10 раз больше писем, чем в этот же час вчерапервый спам, утечка ключа, бот

Порог «>100 заявок в час» не сработает, если раньше максимум был 8. Аномалия – сработает.


к содержанию ↑

Что поставить на типичном VPS (без фанатизма)

Минимум (вечер настройки)

  1. Uptime снаружи – UptimeRobot / Hetrix / свой cron + curl на / и /wp-login.php (осторожно с rate limit).
  2. Логи nginx – goaccess или Loki/Promtail; алерт на рост 5xx по grep/скрипту.
  3. Почта – логи Postfix/Exim или панель SMTP (SendGrid, Mailgun): суточный объём + алерт на скачок.
  4. Плагин безопасности – 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 практик, чтобы алерты не бесили

  1. Baseline 7-14 дней – не доверяйте anomaly в первую неделю после миграции.
  2. Календарь – акции, рассылки, обновления плагинов помечайте (иначе ложняк после Newsletter плагина).
  3. Владелец алерта – кто в 2 ночи отключает SMTP / ставит maintenance mode.
  4. Runbook на одну страницу – проверить: последний плагин, wp_mail log, Action Scheduler, ключи API в .env.
  5. Kill switch – возможность отключить форму, REST route или SMTP в один клик (mu-plugin, nginx deny, firewall).
  6. Корреляция – рост писем + рост password-reset или admin-ajax.php = не «хостинг глючит», а abuse.
  7. Учебный алерт раз в квартал – симулируйте на staging всплеск сабмитов, проверьте, что Telegram/email дежурному пришёл.

к содержанию ↑

Типичные ошибки

  1. Только «сайт жив» – зелёный uptime при уходе 10k писем.
  2. Алерт без действия – в Slack, который все замьютили.
  3. Мониторинг только в админке WP – при взломе админка первая недоступна.
  4. Игнор wp-cron – фоновые задачи раздуваются незаметно.
  5. Один глобальный порог на все сайты – мультисайт и лендинг имеют разную норму.

к содержанию ↑

Чеклист на эту неделю

  • Включить суточный отчёт 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 – подскажу, куда копать под ваш хостинг.

Плагин рейтинга создан автором этого блога. Буду очень признателен, если вы сможете его поддержать (ссылка)

p.s. Если статья была полезной и вас переполняет чувство благодарности, можете поддержать меня долларом на патреоне

Об авторе

Web Developer. I have expirience in FrontEnd, Backend, Devops. PHP, Python, Javascript (Vue.js, React.js)

Все статьи