Урок 7 из 8 · 20 мин · обновлено

Мониторинг и резервные копии

Зачем нужен мониторинг и что отслеживать: ресурсы, доступность сервисов, место на диске, сроки сертификатов, журналы. Оповещения и системы мониторинга. Резервные копии по правилу 3-2-1, проверка восстановления и автоматизация по расписанию через cron.

Зачем нужен мониторинг

Плохой сценарий: директор звонит и говорит, что сайт не работает. Хороший: система мониторинга прислала сисадмину сообщение «на сервере осталось 10% места», и он почистил старые журналы за два дня до проблемы.

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

Что отслеживать

Что Почему важно
Загрузка процессора и памяти сервер может тормозить или падать под нагрузкой
Место на диске закончилось место — останавливаются базы данных и журналы
Доступность сервисов отвечает ли сайт, почта, 1С
Сроки сертификатов и доменов истёк сертификат — браузеры показывают предупреждение и не пускают на сайт
Журналы ошибки и подозрительные входы
Резервные копии выполнилась ли ночная копия

Быстрая ручная проверка сервера:

Терминал
uptime          # сколько работает и средняя нагрузка
free -h         # память
df -h           # место на дисках
top             # кто грузит процессор и память
journalctl -p err -b    # ошибки с момента загрузки

Системы мониторинга и оповещения

Вручную за десятками серверов не уследить. Используют системы мониторинга: они каждую минуту собирают показатели, рисуют графики и присылают оповещения, когда что-то выходит за пределы. В российских компаниях часто встречаются Zabbix, Prometheus с Grafana и их аналоги.

Главное правило оповещений: присылать то, что требует действий. Если система шлёт сотню сообщений в день о мелочах, их перестают читать — и пропускают настоящую проблему.

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

Диски ломаются, сотрудники удаляют не те файлы, программы-шифровальщики портят данные. Резервная копия — единственный способ вернуть данные.

Правило 3-2-1:

  • 3 копии данных — рабочая и ещё две;
  • на 2 разных носителях — например, второй диск и сетевое хранилище;
  • 1 копия — в другом месте: в другом офисе или облаке. Пожар, затопление или шифровальщик не должны уничтожить все копии сразу.

Что ещё важно:

  • автоматизация — копия, которую делают «когда вспомнят», однажды не будет сделана;
  • несколько версий — копия за вчера, неделю и месяц: если файл испортили неделю назад, вчерашняя копия не поможет;
  • проверка восстановления — раз в месяц восстановите что-нибудь из копии. Копия, из которой ни разу не восстанавливались, может оказаться пустой или битой.

Расписание: cron

Регулярные задачи в Linux запускает cron. Расписание редактируют командой crontab -e:

Текст
# минута  час  день  месяц  день_недели  команда
0 2 * * *   /home/admin/backup.sh
30 9 * * 1  /home/admin/report.sh

Первая строка — каждый день в 02:00. Вторая — по понедельникам в 09:30. Звёздочка значит «любое значение».

Попробуйте сами. Напишите скрипт, который упаковывает папку ~/documents в архив с датой в имени и кладёт его в ~/backup. Добавьте его в cron на каждый день в 23:00. Подумайте, чего не хватает, чтобы схема соответствовала правилу 3-2-1.

Решение

Скрипт ~/backup.sh:

Терминал
#!/bin/bash
mkdir -p ~/backup
tar -czf ~/backup/documents-$(date +%F).tar.gz -C ~ documents

Права и проверка:

Терминал
chmod u+x ~/backup.sh
~/backup.sh
ls -lh ~/backup

Строка для crontab -e:

Текст
0 23 * * * /home/anna/backup.sh

Вместо anna — ваше имя пользователя: в cron лучше писать полный путь.

Чего не хватает до 3-2-1: архивы лежат на том же диске, что и данные. Сломается диск — пропадут и данные, и копии. Нужна вторая копия на другом носителе и одна — в другом месте. А ещё — удалять старые архивы, чтобы не закончилось место, и хотя бы раз распаковать архив и проверить, что файлы целы.

Мини-тест: проверьте себя

Закрепите урок: несколько вопросов, разбор ответов — в конце.

  1. Зачем сисадмину мониторинг, если пользователи и так сообщат о сбое?

  2. Что означает правило 3-2-1?

  3. Что значит строка cron 0 2 * * * /home/admin/backup.sh?