azve · проект 01 plohoserve.ru
ИСТОРИЯ СОЗДАНИЯ · 2024 → 2026

Воскресенье, когда я узнал о падении последним

У меня было четыре VPS, два бота и один мониторинг из облака. В то воскресенье прод-сайт лежал четыре часа — и я узнал об этом не из алертов, а из сообщения знакомого. Облачный пробер честно показывал зелёный: он пинговал из-за границы, а хостер как раз резал зарубежный ICMP. Канал алертов к тому моменту я уже заглушил — после двадцати ложных «сайт упал» за месяц читать его перестал. Так мониторинг из «ещё одного сервиса» превратился в собственную задачу: как отличать аварию от гео-блока и не врать тому, кто читает алерты.

# то самое воскресенье, лог хостера 18:41 prod-app ICMP unreachable · outage starts 18:42 cloud-ping up ✓ 200 OK # пингует из-за границы — не видит 20:15 telegram «у вас всё лежит?» — от знакомого 22:53 prod-app restored · простой 4 ч 12 мин 22:54 я сажусь писать свой пробер
ГЛАВА 1 · ПОЧЕМУ ОБЛАЧНЫЕ НЕ ПОДОШЛИ

Три врага честного статуса

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

География проб

Зарубежный пробер видит «down» там, где на самом деле гео-блок, и «up» там, где изнутри страны всё лежит. Точка наблюдения — часть результата.

Ложные срабатывания

Одиночный таймаут = «сайт упал». Двадцать таких за месяц — и человек ставит канал алертов на мьют. Дальше можно не мониторить вовсе.

Доставка алертов

Тот самый мьют плюс блокировки мессенджеров: даже честный алерт должен уметь дойти физически, через собственный релей.

ГЛАВА 2 · КОНСЕНСУС

Одна цель — две точки наблюдения

Главное инженерное решение проекта: каждую цель пробуют два независимых контура — один внутри страны, второй на хабе в Германии. Дальше работает не порог, а таблица истинности.

КОНТУР A (RU)КОНТУР B (DE)ВЕРДИКТЧТО ДЕЛАЕТ СИСТЕМА
upupдоступнотишина — это тоже сигнал
downdownаварияэскалация, алерт с причиной
downupчастичная доступностьжёлтый статус, проверка гео-блока
updownчастичная доступностьто же, с другой стороны
Расхождение контуров — это не сбой, это информация. Оно означает «изнутри страны не работает, снаружи работает» — и просит разобраться, а не будить людей. С тех пор ни один гео-блок не выдавал себя за аварию. — из технического дневника проекта, 2024
ГЛАВА 3 · ТРИ УРОВНЯ ТРЕВОГИ

Алерт, которому веришь

Уровень тревоги привязан к длительности, а не к мгновенному значению. Telegram — через собственный релей в обход блокировок, дубль в Max.

1 мин · WARN

Жёлтая карточка в ленте. Никаких уведомлений — сеть дышит, это нормально.

5 мин · CRIT

Красный статус, алерт в мессенджеры с причиной и мнением обоих контуров.

BACK · OK

«Восстановлен, простой 4 ч 12 мин» — инцидент закрывается сам, с длительностью в журнал.

PLOHOSERVE ◉ Цели · 35 ◎ Операторы⚡ Инциденты↯ Проверки⚙ Админка контур RU● online Статусы целей поиск: vpn, ru… ЦЕЛЬРЕГИОН24 ЧАСАСТАТУС prod-app.plohoserve.ruRU · Nuremberg DE up · 12 ms hub.azve.appDE · Nuremberg partial · RU↓ tg-relay · :8444self-signed TLS up · 41 ms op-legacy-03 · ICMPRU · Selectel down 04:12 agent-global · :8081второй контур up · 9 ms Операторы связи · маяки МТСМегаФонБилайнТ2Yota геолокация по маякам · авто-рескан · фильтр по стране Журнал инцидентов op-legacy-03 · ICMP unreachable18:41 → 22:53 · 4 ч 12 м · сеть хостера hub.azve.app · частичная доступностьрасхождение контуров · гео-блок RU prod-app · восстановлен за 38 сhealth-check → перезапуск systemd
дашборд сегодня: 24-часовые ленты, два контура, маяки операторов и журнал с причинами
ГЛАВА 4 · ОПЕРАТОРЫ

«Интернет вроде есть, а ничего не грузит»

Вторая половина мониторинга родилась из бытового наблюдения: домашний интернет «работает», но мессенджер не отправляет, а банк крутит спиннер. Проблема последней мили не видна с серверов — её видно на маяках операторов. Теперь карта маяков — часть дашборда: точки по стране, авто-рескан, статусы по операторам. Когда у провайдера региональная авария — видно, у кого именно.

Имя домена — plohoserve.ru, «плохо серверу» — осталось от внутренней шутки первого скрипта. Теперь это домен, который объясняет себя сам.

ИТОГ

Чем это уникально

Это не «ещё один uptime-монитор». Это система, у которой точка наблюдения — часть модели мира: два контура, консенсус вместо порогов, эскалация по длительности и доставка алертов, которая доходит даже когда мессенджеры заблокированы. Написан для себя — и потому работает с 2024 года без единого пропущенного инцидента.

35целей в проде
2независимых контура
≤5 миндо алерта
0пропущенных инцидентов с запуска
ЯДРОGo 1.22 · пробер + консенсус · PostgreSQL 16
КОНТУРЫRU-прод и hub-DE · systemd-микроагенты на VPS · hot-reload по SIGHUP
ПРОВЕРКИTCP / ICMP каждую минуту · маяки операторов с геолокацией
АЛЕРТЫTelegram через собственный релей · Max · журнал с причиной и длительностью
ДОСТУПplohoserve.ru ↗ — в проде с 2024