Skip to content
← Все статьи

Сайт периодически недоступен: как диагностировать

Коротко. Прерывистые падения коварны: к моменту проверки сайт уже снова работает. Поймать их ручной проверкой почти невозможно — нужен непрерывный мониторинг сайтов с коротким интервалом (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 downfail2ban, сетевые провалы, перезапуски
Падения после деплояРелиз сломал часть запросовЛоги приложения, откат релиза

Шаг 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 минута и мультирегиональной проверкой. См. также мультирегиональный мониторинг и гайд по мониторингу сайтов.

Проверьте ваш сайт прямо сейчас

Проверить свой сайт →
Другие статьи: Мониторинг
Мониторинг
Мониторинг LLM-API: латентность, стоимость, аптайм
15.06.2026 · 45 просм.
Мониторинг
Лучший бесплатный мониторинг аптайма 2026
15.06.2026 · 45 просм.
Мониторинг
Альтернативы Pingdom 2026
22.06.2026 · 34 просм.
Мониторинг
Лучшие инструменты мониторинга API в 2026 году
18.06.2026 · 62 просм.