Docs/docs/13-maintenance.md
Administrator 084f1fd41b Update 2 files
- /docs/13-maintenance.md
- /README.md
2026-03-20 16:42:19 +05:00

11 KiB
Raw Blame History

13. Плановое обслуживание

Регулярное обслуживание инфраструктуры необходимо для обеспечения стабильности, безопасности и производительности. В этом разделе описан регламент работ, включая обновления, очистку и фиксацию версий.

Содержание


Обновление системы

Пакеты ОС (apt)

Для всех хостов (Proxmox, LXC, ВМ) регулярно выполняйте обновление пакетов безопасности и критических исправлений.

Ручное обновление:

&&&bash apt update apt list --upgradable # посмотреть список apt upgrade -y # обновить пакеты apt autoremove -y # удалить ненужные зависимости &&&

Автоматические обновления безопасности:

На всех хостах следует настроить unattended-upgrades:

&&&bash apt install unattended-upgrades dpkg-reconfigure --priority=low unattended-upgrades # включить автоматические обновления &&&

Конфигурация /etc/apt/apt.conf.d/50unattended-upgrades должна содержать:

&&& Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}-security"; }; Unattended-Upgrade::Automatic-Reboot "false"; &&&

Обновление Proxmox

Proxmox обновляется через стандартный apt, но после обновления ядра требуется перезагрузка. Желательно планировать перезагрузку гипервизора в окно обслуживания.

&&&bash apt update apt dist-upgrade -y pveversion -v # проверить версию reboot &&&


Обновление Docker-образов

Просмотр текущих версий

&&&bash docker ps --format "table {{.Image}}\t{{.Names}}" &&&

Обновление образа

  1. Остановить контейнер: &&&bash docker stop &&&
  2. Удалить контейнер (если не используется --rm): &&&bash docker rm &&&
  3. Обновить образ (если используется тег latest): &&&bash docker pull :latest &&& Или загрузить фиксированную версию.
  4. Запустить контейнер заново (обычно через docker-compose up -d).

Обновление через docker-compose

&&&bash cd /path/to/service docker-compose pull docker-compose up -d --remove-orphans &&&

Рекомендация

  • Избегать использования :latest в production. Зафиксировать версии (см. раздел ниже).
  • Перед обновлением критических сервисов (Bitwarden, GitLab, базы данных) сделать резервную копию.

Фиксация версий

Docker-образы

В docker-compose.yml указывайте конкретную версию образа вместо latest. Пример:

&&&yaml services: npm: image: jc21/nginx-proxy-manager:2.12.3 # вместо :latest # ... &&&

Актуальные версии можно найти в документации сервисов или на Docker Hub.

Пакеты ОС

Для важных компонентов (например, ядро, Docker, базы данных) можно фиксировать версии с помощью apt-mark hold:

&&&bash apt-mark hold docker-ce apt-mark unhold docker-ce # когда нужно обновить &&&


Очистка логов и временных файлов

Логи системные

Логи в /var/log ротируются автоматически (logrotate). Проверить конфигурацию:

&&&bash cat /etc/logrotate.conf &&&

Принудительная ротация логов:

&&&bash logrotate -f /etc/logrotate.conf &&&

Логи Docker

Docker логи по умолчанию не ротируются, но можно настроить их ограничение в /etc/docker/daemon.json:

&&&json { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } &&&

После изменения перезапустить Docker:

&&&bash systemctl restart docker &&&

Временные файлы

Очистка /tmp (обычно очищается при перезагрузке). Можно настроить systemd-tmpfiles для регулярной очистки.


Очистка Docker

Удаление неиспользуемых образов, контейнеров, томов

&&&bash docker system prune -a -f # удалить всё неиспользуемое docker volume prune -f # удалить неиспользуемые тома docker image prune -a -f # удалить неиспользуемые образы &&&

Просмотр занимаемого места

&&&bash docker system df &&&


Проверка резервных копий

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

  • Проверка логов Proxmox Backup Server (или VZDump) на наличие ошибок.
  • Тестовое восстановление на изолированной среде (хотя бы раз в квартал).
  • Проверка, что бэкапы не устарели (срок хранения).

Проверка сертификатов

Let's Encrypt (NPM)

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

Проверить статус:

  • В интерфейсе NPM: SSL Certificates → статус каждого сертификата.
  • В логах NPM: &&&bash docker logs npm 2>&1 | grep -i "renew" &&&

Ручное обновление (если нужно)

В NPM есть кнопка "Renew Now". Также можно перезапустить контейнер:

&&&bash docker restart npm &&&


Ротация паролей

Рекомендуется менять пароли для:

  • Административных учётных записей (Grafana, GitLab, NPM, Bitwarden)
  • Пользователей Samba
  • Пользователей баз данных
  • Ansible Vault (пароль шифрования)

Периодичность: раз в 612 месяцев.


Регламент обслуживания

Действие Периодичность Ответственный Примечание
Обновление пакетов безопасности (unattended-upgrades) Ежедневно Автоматически Настроено через unattended-upgrades
Проверка наличия обновлений пакетов (apt) Еженедельно Администратор apt list --upgradable
Обновление критических пакетов (вручную) Еженедельно Администратор После проверки совместимости
Обновление Docker-образов Раз в месяц Администратор Сначала тестовые, потом prod
Очистка логов и временных файлов Ежемесячно Администратор docker system prune, logrotate
Проверка резервных копий Ежемесячно Администратор Просмотр логов PBS, тестовое восстановление
Проверка сертификатов Ежемесячно Администратор В NPM; автоматическое обновление обычно работает
Тестовое восстановление из бэкапа Раз в квартал Администратор На изолированной среде
Ротация паролей Раз в 612 месяцев Администратор Обновить пароли в Ansible Vault и в сервисах
Аудит безопасности (полный) Раз в год Администратор Использовать Lynis, OpenVAS

Окна обслуживания

  • Плановые работы, требующие перезагрузки или остановки сервисов, проводить в выходные дни (суббота, 2:005:00) или в наименее загруженное время.
  • Перед любыми изменениями делать резервную копию критических данных.
  • После обновлений проверять работоспособность ключевых сервисов (NPM, Samba, Jellyfin, Immich).

Связанные разделы: