Мониторинг и резервное копирование
Узнавать о проблеме раньше клиентов
Что это за работа
Настраиваю наблюдаемость: метрики, логи, дашборды и оповещения в Telegram. Плюс резервные копии, которые действительно проверены восстановлением, а не просто лежат в папке.
Что входит
- Дашборды Grafana под ваши бизнес-метрики
- Оповещения в Telegram при сбое
- Бэкапы с регулярной проверкой восстановления
- Публичная страница статуса для ваших клиентов
Когда за этим обращаются
О том, что сайт лежал четыре часа, вы узнали от клиента. Или от рекламщика, который спросил, почему заявки в понедельник упали до нуля. Хуже варианта нет: деньги потеряны, репутация просела, а по логам уже не восстановить, что именно случилось.
Второй повод — «иногда тормозит». Пользователи жалуются, разработчики не могут повторить, все смотрят друг на друга. Без метрик такой спор длится месяцами, потому что доказать нечего ни одной стороне.
Третий, самый болезненный — восстановление, которое не сработало. Копии делались, папка была, файлы лежали. А когда понадобилось, выяснилось, что база выгружалась незакрытой и разворачивается с ошибкой, или бэкап последние полгода записывал ноль байт, и никто не проверял.
И четвёртый — диск, забитый под завязку в три часа ночи, сертификат, истёкший в воскресенье, память, которую медленно съедала утечка две недели. Всё это видно заранее, если кто-то смотрит.
Что именно я настраиваю
Метрики: загрузка процессора, память, место на дисках, сеть, состояние контейнеров и служб, время ответа сайта, количество ошибок, длина очередей. Хранятся с историей, чтобы можно было сравнить сегодняшнее поведение с прошлой неделей, а не гадать, нормально это или нет.
Логи со всех сервисов в одном месте с поиском. Когда что-то сломалось, разница между «искать по семи серверам» и «ввести запрос в одно поле» — это разница между часом и минутой.
Проверки снаружи: открывается ли сайт из интернета, за сколько, валиден ли сертификат и сколько ему осталось, отвечает ли API. Внутренний мониторинг не заметит, что сервер жив, а к нему не пройти из-за проблемы у провайдера.
Дашборды — не абстрактные графики железа, а то, на что вы реально смотрите: сколько заявок за сегодня, откуда пришли, всё ли работает. Отдельная страница для руководителя и отдельная техническая, потому что это разные вопросы.
И оповещения в Telegram: сообщение приходит при реальной проблеме и при её устранении, чтобы было видно, что всё вернулось в норму.
Оповещения, которые не хочется выключить
Главная болезнь мониторинга — шум. Система, присылающая тридцать сообщений в день, обучает людей их игнорировать, и на тридцать первом, том самом важном, никто не реагирует. Такой мониторинг хуже, чем никакого, потому что создаёт ложное чувство защищённости.
Поэтому правил у меня немного и они жёсткие. Оповещение приходит, только если требуется действие человека — иначе это не оповещение, а запись в журнал. У каждого есть порог и выдержка по времени, чтобы секундный всплеск не будил никого. Связанные события группируются: упал сервер — приходит одно сообщение, а не двадцать про каждый сервис на нём.
И в тексте сразу пишется, что произошло, чего это касается и что обычно с этим делают. Оповещение вида «CRITICAL: check_disk failed» в три ночи бесполезно; «На сервере с базой осталось 5% места, растут логи, обычно чистится командой X» — полезно.
Разделяю по срочности: критичное будит, важное приходит в рабочее время, остальное копится в еженедельном отчёте.
Копии, из которых действительно можно восстановиться
Правило трёх копий, которому уже много лет и которое до сих пор работает: три экземпляра данных, на двух разных носителях, один — за пределами площадки. Копия на том же сервере не спасёт от гибели сервера, копия в том же дата-центре не спасёт от проблем дата-центра.
Копии делаю с проверкой целостности и с версиями за несколько дней, а не только последней. Это защита от шифровальщика: если он зашифровал данные, а копия перезаписалась ночью, у вас теперь две зашифрованные копии. Хранилище настраиваю так, чтобы уже сделанные копии нельзя было изменить или удалить с самого сервера.
И самое важное — регулярная пробная разморозка. Раз в месяц копия автоматически разворачивается на тестовом стенде, проверяется, что база открывается и данные на месте, и результат приходит отчётом. Вот это отличает бэкап от папки с файлами, и именно этот пункт чаще всего отсутствует у тех, кто ко мне приходит.
Что вы получаете и сколько это стоит
От 35 000 ₽ за настройку под ключ, два-пять дней работы. В результате: собранные метрики и логи, дашборды под ваш бизнес, оповещения в Telegram, внешние проверки, настроенные копии с проверкой восстановления и короткая инструкция, что делать при типовых авариях.
Строю на открытых инструментах — Prometheus, Grafana, Loki. Лицензий платить не нужно, всё живёт на вашем сервере, данные никуда не уходят, и при желании вы полностью управляете этим сами.
По желанию — публичная страница статуса для ваших клиентов. Простая вещь, которая заметно снижает поток обращений во время аварии: вместо звонков люди видят, что вы в курсе и работаете над этим.
Ресурсов такой набор требует немного: на среднем сервере он занимает меньше гигабайта памяти и обычно помещается рядом с основным проектом без отдельной машины.
Как мы будем работать
Сначала разговор: вы описываете задачу своими словами, я задаю уточняющие вопросы. Потом смотрю на месте или удалённо и называю точную цену и срок — до этого момента вы ничего не платите. Дальше работа, сдача с проверкой при вас и год гарантии. Подробнее о том, как я работаю.
Частые вопросы
Наоборот, для одного сервера это особенно важно: у него нет соседа, который подхватит нагрузку, и любая его проблема — это остановка всего. Для такого случая делаю облегчённый вариант: внешняя проверка доступности, контроль места на диске и памяти, оповещения в Telegram и надёжные копии. Настраивается за день и стоит заметно дешевле полного набора.
Внешняя проверка отвечает только на вопрос «открывается или нет». Она не покажет, что диск заполнится через двое суток, что память течёт, что база отвечает вдвое медленнее, чем месяц назад, и что ночная копия последнюю неделю пустая. Внешние сервисы полезны как дополнение — я их тоже подключаю, — но заменить наблюдение изнутри они не могут.
По договорённости. При разовой настройке оповещения идут вам или вашей команде, и я оставляю инструкцию по типовым ситуациям. При сопровождении получаю их я и реагирую в оговорённое время. Частый промежуточный вариант: критичные аварии мне, остальное вашему сотруднику — так вы не платите за круглосуточное дежурство там, где оно не нужно.
Всё хранится на вашем сервере, наружу ничего не уходит. Метрики за месяц-два для среднего проекта занимают единицы гигабайт, логи — от нескольких гигабайт в зависимости от разговорчивости приложений. Настраиваю сроки хранения так, чтобы место не кончалось: подробности за две недели, сжатая история за год. При необходимости настраиваю более долгое хранение под требования к журналам.
Да, и это хорошая отдельная задача на несколько часов. Беру вашу последнюю копию, разворачиваю на тестовом стенде и смотрю, что реально восстанавливается: открывается ли база, целы ли файлы, за какое время всё поднимается. Результат — отчёт с честным ответом, сколько времени займёт восстановление и какие данные вы потеряете при аварии сегодня. Довольно часто этот отчёт становится неприятным сюрпризом, и лучше узнать это в спокойной обстановке.
Обсудим вашу задачу?
Диагностика и смета бесплатны: я разбираюсь, что нужно, называю цену и срок, и только после этого мы решаем, работаем или нет. Выезд по Москве и ближнему Подмосковью, остальное — удалённо.
Тема обращения — «Мониторинг и резервное копирование» — подставится в форму сама.