Коротко. Прерывистые падения коварны: к моменту проверки сайт уже снова работает. Поймать их ручной проверкой почти невозможно — нужен непрерывный мониторинг сайтов с коротким интервалом (1 минута или 30 секунд), который фиксирует каждый сбой с таймстампом и кодом ответа. Затем сопоставьте моменты падений с нагрузкой, деплоями, исчерпанием ресурсов и пиками трафика. Мультирегиональная проверка покажет, лежит ли сайт глобально или только из одной точки.
Почему прерывистые падения сложно поймать
Если сайт падает на 30-90 секунд раз в несколько часов, ручная проверка «зайти и посмотреть» бесполезна — вероятность застать падение мизерна. Нужна система, которая стучится постоянно и логирует каждый ответ.
Главный принцип диагностики прерывистых падений: не лови момент глазами, лови его данными. Непрерывный мониторинг с короткими интервалами превращает невидимую проблему в таблицу с таймстампами.
Шаг 1. Включите непрерывный мониторинг
- Поставьте интервал проверки 1 минута (или 30 секунд для коротких сбоев).
- Логируйте код ответа, время отклика и текст ошибки каждой проверки.
- Включите алерты, чтобы знать о падении в реальном времени.
Шаг 2. Простой health-check скрипт
Если хотите собрать данные сами, минимальный непрерывный чекер:
#!/bin/bash
URL="https://example.com"
while true; do
TS=$(date '+%Y-%m-%d %H:%M:%S')
RESULT=$(curl -o /dev/null -s -w "%{http_code} %{time_total}" \
--max-time 15 "$URL")
echo "$TS $RESULT" >> /var/log/healthcheck.log
# 000 = таймаут/нет соединения; 5xx = ошибка сервера
sleep 30
done
Через сутки в логе будут видны точные моменты падений. Дальше — корреляция.
Шаг 3. Сопоставьте падения с событиями
| Симптом по логам | Вероятная причина | Что проверить |
|---|---|---|
| Падения в одно и то же время суток | Cron/бэкап/ротация логов | Расписание задач, нагрузка от cron |
| Падения на пиках трафика | Исчерпание воркеров/памяти | Лимиты PHP-FPM, RAM, connection pool |
| Код 5xx урывками | Сбои БД или внешнего API документацию | Логи БД, таймауты внешних сервисов |
| Код 000 (таймаут) | Сеть/firewall/origin down | fail2ban, сетевые провалы, перезапуски |
| Падения после деплоя | Релиз сломал часть запросов | Логи приложения, откат релиза |
Шаг 4. Проверьте ресурсы сервера во времени
- Память: утечки приводят к периодическому OOM-killer и рестартам.
- CPU: пики при тяжёлых задачах роняют отзывчивость.
- Дисковое пространство: переполнение лога/диска ломает запись и отдачу.
- Connection pool БД: исчерпание соединений даёт периодические 5xx.
Шаг 5. Проверьте из нескольких регионов
Прерывистая недоступность может быть сетевой, а не серверной. Если из RU сайт падает, а из EU/US в тот же момент отвечает 200 — проблема на маршруте между регионом и сервером, а не в самом сервере.
Мультирегиональная проверка отвечает на ключевой вопрос: «это сервер мигает или сеть между мной и сервером?». Без неё легко чинить не ту проблему.
Шаг 6. Автоматизируйте через API мониторинга
Чтобы завести мониторинг программно (например, для каждого нового сервиса), используйте REST API:
POST /api/v4/monitors
X-API-Key: ваш_ключ
Content-Type: application/json
{
"url": "https://example.com",
"check_type": "http",
"interval_minutes": 1,
"expected_code": 200,
"notify_telegram": true,
"check_regions": "ru-msk,eu-de,us-east"
}
Как enterno.io помогает
enterno.io создан ровно под эту задачу. Мониторинг аптайма проверяет сайт каждую минуту (30 секунд на старших планах) и ловит короткие падения, которые ручная проверка пропускает, фиксируя каждый сбой с таймстампом и кодом ответа. Мультирегиональная проверка RU(ru-msk)/EU/US показывает, лежит ли сайт глобально или только из одной точки. Инциденты автоматически открываются и закрываются, формируя историю падений; публичные статус-страницы показывают аптайм клиентам. Алерты — Telegram, Slack, email, webhook. SSL-мониторинг (пороги 14/3 дня) ловит грядущее истечение сертификата. REST API v4 заводит мониторы программно. enterno.io диагностирует и предупреждает — корневую причину на сервере устраняет владелец.
FAQ
Какой интервал нужен для коротких падений?
Если сбои короче минуты, ставьте интервал 30 секунд. С интервалом 5 минут вы пропустите большинство кратких провалов.
Сайт «иногда не открывается», но логи сервера чистые?
Тогда проблема, скорее всего, до сервера: сеть, firewall, DNS или CDN. Мультирегиональная проверка и health-check со стороны клиента это покажут.
Как отличить серверный сбой от сетевого?
Сопоставьте моменты падений из разных регионов. Если падает везде одновременно — сервер. Если только из одной точки — сеть/маршрут.
Падения совпадают с ночным временем — почему?
Частая причина — cron-задачи, бэкапы или ротация логов, которые грузят сервер. Проверьте расписание и вынесите тяжёлые задачи в непиковые часы с лимитом ресурсов.
Следующий шаг: включите мониторинг с интервалом 1 минута и мультирегиональной проверкой. См. также мультирегиональный мониторинг и гайд по мониторингу сайтов.