Чек-лист запуска и план обслуживания

Домен

Имя — та часть сайта, которую нельзя восстановить из резервной копии. Проверяйте его первым и раз в квартал, а не один раз.

Подробности — в уроке 1.

Хостинг и сайт

Уроки 3 и 4 дают всё это на виртуальном хостинге; урок 5 делает то же на вашем сервере.

Сервер

Это чек-лист урока 8 в сжатом виде. Прогоняйте его после каждого крупного изменения, а не только при запуске.

Почта

Команды и значения записей — в уроке 9. Сайт может выйти в сеть без почты; бизнес — нет.

Расписание обслуживания

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

КогдаЧто делать
Каждый деньПрочитать результат резервного копирования. Взглянуть на проверку доступности и график диска. Прочитать журнал ошибок, если какая-то проверка красная.
Каждую неделюУстановить ожидающие обновления. Проверить свободное место и память. Прочитать журнал аутентификации на новых пользователей и странные адреса. Убедиться, что свежая резервная копия открывается.
Каждый месяцОбновить CMS, темы и плагины. Восстановить одну резервную копию в тестовую папку. Проверить срок и продление сертификата. Пересмотреть список аккаунтов с доступом к сайту, панели и регистратору. Прочитать журнал доступа на неожиданные пути.
Каждый кварталПересмотреть правила файрвола и слушающие порты. Удалить неиспользуемые сайты, базы данных и ящики. Сменить пароли, которыми пользуются несколько человек. Проверить запись WHOIS и блокировку переноса.
Раз в годЗапланировать пересборку на свежем образе системы. Прочитать заметки о выпуске дистрибутива. Сравнить бюджет тарифа с трафиком.

Команды — обычные из этого курса: cron запускает резервное копирование, sudo apt upgrade обновляет систему, df -h проверяет диск, а journalctl читает службы. Привычка важнее инструмента: напоминание в календаре, которое никто не игнорирует, — самый дешёвый мониторинг.

Когда сайт лежит

Идите снаружи внутрь и останавливайтесь на первом слое, который отвечает неправильно. Большинство ответов дают три инструмента: dig для имени, curl для страницы и df для диска. Порядок каждый раз один и тот же, поэтому его стоит запомнить.

1. Это сайт или посетитель? Спросите кого-нибудь ещё или используйте другую сеть, прежде чем что-то менять. Локальный кэш DNS или сбой у провайдера выглядят точно как сломанный сервер, если смотреть с одного места.

2. Разрешается ли имя?

dig +short example.com

Нет ответа или неверный адрес означают DNS: запись изменилась, домен истёк или DNS-серверы лежат. Сравните с публичным резолвером и прочитайте делегирование через dig +trace.

3. Отвечает ли порт?

nc -vz example.com 443

Connection to example.com 443 port [tcp/https] succeeded!

Тайм-аут означает файрвол, сеть провайдера или остановленный веб-сервер. Проверьте с самого сервера: если localhost отвечает, а интернет нет, проблема в пути.

4. Отвечает ли сайт по HTTP?

curl -I https://example.com

HTTP/2 502 server: nginx

502 означает, что Nginx жив, а PHP-FPM нет или путь к сокету неверен. 500 означает, что PHP выполнился, а приложение упало; читайте его журнал ошибок. 403 — проблема прав или индексного файла. 404 при правильном сервере — проблема настройки сайта. Сами коды — в статье коды состояния HTTP.

5. Диск заполнен? Заполненный диск ломает базу данных, журналы и сеансы сразу, а сообщения об ошибках указывают куда угодно, кроме диска.

df -h /

df -i /

Filesystem Size Used Avail Use% Mounted on /dev/vda1 39G 38G 0G 100% /

Сто процентов занято или сто процентов inode — вот ответ. Удалите старые журналы и старые резервные копии, затем найдите, что выросло: du -h /var/log/* | sort -h | tail. Не удаляйте файлы базы данных, чтобы освободить место; лучше перенесите резервную копию с сервера.

6. База данных работает?

systemctl status mariadb --no-pager

sudo journalctl -u mariadb -n 20 --no-pager

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

7. Что изменилось? Последнее развёртывание, последнее обновление плагина, последнее продление сертификата, последнее правило файрвола. На практике ответ почти всегда в последнем часе, и быстрее всего отменить изменение, а разбираться уже потом. Потом прочитайте журналы и разберитесь.

8. Когда ничего не помогает, восстанавливайте. Сайт, который нельзя починить за полчаса, — это сайт, который откатывают к последней хорошей копии, пока вы разбираетесь на копии. Поэтому в расписании есть проверка восстановления: в худший момент вам не захочется учить процедуру восстановления.

Записывайте, что нашли, даже когда ответ был простым. Следующая авария будет другой, и ваши записи станут самым быстрым путём ко второй строке диагностики.

Тест

1 Какую часть сайта нельзя восстановить из резервной копии сервера?

  1. Файлы сайта
  2. Базу данных
  3. Доменное имя
  4. Сертификат TLS
Ответ

c) Файлы, базы данных и сертификаты можно создать заново. Имя, которое истекло и было зарегистрировано кем-то другим, потеряно, и поэтому важны автопродление, блокировка и двухфакторная аутентификация.

2 Что предотвращает блокировка переноса домена?

  1. Загрузку сайта
  2. Переход к другому регистратору без вашего участия
  3. Изменения DNS
  4. Продление сертификата
Ответ

b) clientTransferProhibited запрещает перенос. Она не влияет на DNS, сайт или сертификат.

3 Какой тип записи несёт адрес сервера для example.com?

  1. MX
  2. A, а для IPv6 — AAAA
  3. TXT
  4. CNAME
Ответ

b) A хранит IPv4, AAAA — IPv6. CNAME в вершине не разрешён, а MX и TXT служат другим целям.

4 curl -I https://example.com отвечает 502. Что проверить первым?

  1. Дату окончания домена
  2. Что PHP-FPM работает и сокет в блоке сервера верен
  3. Записи MX
  4. Favicon
Ответ

b) 502 — плохой шлюз: Nginx не смог добраться до обработчика PHP. Проверьте службу и путь в fastcgi_pass.

5 Диск заполнен на сто процентов. Какие файлы безопасно удалить первыми?

  1. Файлы базы данных
  2. Старые ротированные журналы и старые резервные копии на том же сервере
  3. Файлы настройки Nginx
  4. Папку загрузок сайта
Ответ

b) Ротированные журналы и локальные копии — это копии. Файлы базы данных, настройка и загрузки — рабочие данные, и их нельзя удалять, чтобы освободить место.

6 Как часто нужно проверять восстановление резервной копии?

  1. Никогда, инструмент копирования надёжен
  2. Хотя бы раз в месяц, в отдельное место
  3. Только когда сайт лежит
  4. Один раз, при запуске сайта
Ответ

b) Ежемесячное восстановление ловит сломанную копию до того, как она понадобится. Восстановление только во время аварии превращает плохой день в катастрофу.

7 Какие три настройки останавливают подбор пароля SSH?

  1. Длинный пароль root, сменённый порт и баннер
  2. Только ключи, без входа root, fail2ban
  3. Два правила файрвола и новое имя хоста
  4. DNSSEC, HSTS и сертификат
Ответ

b) Ключи убирают пароль, который можно подобрать, запрет входа root убирает аккаунт, который пробуют все, а fail2ban убирает адрес, который продолжает пробовать.

8 Письмо с вашего домена проходит проверку SPF, но не проходит проверки DKIM и DMARC. Какова наиболее вероятная причина?

  1. Запись MX неверна
  2. Селектор DKIM или опубликованный открытый ключ не совпадает с ключом, который подписывает
  3. Порт 25 закрыт
  4. Запись PTR отсутствует
Ответ

b) SPF проверяет конвертного отправителя, и совпадения с доменом From нет, поэтому проверка DMARC тоже не пройдена. DKIM подписывает домен From, поэтому исправлять надо подпись, которая не прошла проверку: селектор, указывающий на другой ключ, или ключ, перегенерированный без обновления DNS, дают именно такой результат.

9 Какая задача обслуживания относится к месячному списку, а не к ежедневному?

  1. Чтение результата резервного копирования
  2. Восстановление резервной копии в тестовую папку
  3. Проверка графика доступности
  4. Чтение журнала ошибок
Ответ

b) Ежедневный список наблюдает, месячный доказывает. Проверка восстановления занимает час и спасает выходные.

10 Посетитель говорит, что сайт лежит, а ваш браузер показывает его нормально. Что делать первым?

  1. Переустановить сервер
  2. Проверить из другой сети и спросить, какую ошибку видит посетитель
  3. Восстановить последнюю резервную копию
  4. Изменить записи DNS
Ответ

b) Сайт может быть в порядке, а у посетителя — закэшированный ответ DNS, заблокированный адрес или истёкший сеанс. Подтвердите масштаб, прежде чем менять работающую систему.

Автор статьи: Arthur Isaev