Чек-лист ежемесячного обслуживания сервера

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

Обновления

  • Установить обновления безопасности операционной системы. На большинстве серверов это одна команда и перезапуск нескольких служб.
  • Проверить, не требуется ли перезагрузка — после обновления ядра она нужна. Её откладывают месяцами, и в итоге сервер загружается «впервые за год» в самый неудачный момент, когда что-то уже сломалось.
  • Обновить движок сайта, плагины и темы. Для коммерческого проекта — сначала на тестовой копии.
  • Посмотреть, не выходит ли из поддержки версия PHP или базы данных. Об этом полезно узнать за полгода, а не в день отключения.

Место и ресурсы

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

Резервные копии

  • Убедиться, что копии действительно создаются. Не «настройка включена», а есть свежие файлы правдоподобного размера.
  • Проверить, что они лежат не только на этом же сервере.
  • Раз в квартал — развернуть одну копию и убедиться, что проект на ней работает. С замером времени.
  • Проверить, что старые копии удаляются и не съедают место постепенно.

Безопасность

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

Сертификаты и домены

  • Срок действия SSL-сертификатов. Автоматическое продление иногда молча ломается — например, после изменения DNS-записей.
  • Срок регистрации доменов. Забытый домен — авария, которая решается дороже и дольше любой серверной.
  • Почта: доходят ли письма с сайта, в порядке ли записи SPF и DKIM, не попадают ли уведомления в спам.

Раз в квартал и раз в год

Квартал: тестовое восстановление из резервной копии с замером времени; ревизия доступов — у кого они есть и нужны ли; проверка, что документация соответствует тому, как всё устроено на самом деле.

Год: пересмотр конфигурации сервера под текущую нагрузку. Часто выясняется одно из двух: ресурсов давно не хватает или, наоборот, их избыточно много и за них переплачивают уже второй год. Плюс план по версиям ПО, которые скоро выйдут из поддержки.

Как это вести

Заводится один документ — таблица или страница — со списком пунктов и датами проверок. Не ради отчётности, а по вполне практической причине: через полгода он показывает динамику. Диск заполнялся на два процента в месяц, а теперь на восемь — это видно только в сравнении.

Второй практический смысл: если человек, который этим занимался, уходит из проекта, работа не начинается с нуля.

Коротко

Час в месяц звучит как немного — и это действительно немного по сравнению с любой аварией. Основная сложность не в сложности пунктов, а в том, что за них обычно никто не отвечает персонально: пока всё работает, к серверу просто не подходят.

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