Tedval

Дешёвые проверки доступности, которые действительно будят

17 июня 2026

Соблазн собрать полноценный мониторинг с сотнями метрик возникает у всех. На небольшом проекте он заканчивается одинаково: дашборды красивые, никто в них не смотрит, а падение замечает пользователь. Работает обратный подход — очень мало проверок, но каждая означает конкретное действие.

Правило одного действия

Перед добавлением проверки полезно ответить: что я сделаю, когда она сработает в три часа ночи? Если ответа нет или он звучит как «посмотрю утром», проверка не нужна. Она либо станет фоновым шумом, либо приучит игнорировать оповещения, что хуже, чем не иметь их вовсе.

У меня осталось четыре:

ПроверкаЧто означает срабатывание
HTTP-код главной страницыСервис не отвечает или отвечает ошибкой
Свободное место на дискеЧерез несколько дней упадёт всё сразу
Срок сертификатаАвтопродление сломалось, есть время починить
Сервис в systemd активенПроцесс не поднялся после перезагрузки

Проверять снаружи, а не изнутри

Проверка, живущая на том же сервере, бесполезна ровно в тот момент, когда нужна: сервер лёг вместе с ней. Нужен внешний наблюдатель — сторонний сервис или просто другая машина.

Минимальный вариант на голом shell, если ставить нечего:

#!/bin/bash
URL="https://example.test/"
CODE=$(curl -s -o /dev/null -w '%{http_code}' --max-time 10 "$URL")
if [ "$CODE" != "200" ]; then
  curl -s -X POST "$WEBHOOK" -d "text=Проверка $URL вернула $CODE"
fi

Запускается по таймеру раз в пять минут. Такой скрипт покрывает главный сценарий отказа и стоит нисколько.

Про частоту и флап

Проверка раз в минуту звучит надёжнее, чем раз в пять, но приносит ложные срабатывания на любой сетевой икоте. Практичный компромисс — интервал в пять минут и требование двух неудач подряд перед оповещением. Реальное падение никуда не денется за десять минут, а разовые обрывы отсеются сами.

Отдельно стоит проверять сам канал оповещений. Мониторинг, который молчит потому, что у него протух токен для отправки сообщений, выглядит точно так же, как мониторинг, у которого всё хорошо.

Чего сознательно нет

Нет графиков загрузки процессора, нет алертов на память, нет счётчиков запросов. Не потому, что это плохо, а потому, что на этом масштабе они ничего не решают: высокая загрузка сама по себе не проблема, если сервис отвечает. А когда перестанет отвечать, об этом скажет первая же проверка.

← Swap на маленьком сервере Ротация логов →