11 KiB
13. Плановое обслуживание
Регулярное обслуживание инфраструктуры необходимо для обеспечения стабильности, безопасности и производительности. В этом разделе описан регламент работ, включая обновления, очистку и фиксацию версий.
Содержание
- Обновление системы
- Обновление Docker-образов
- Фиксация версий
- Очистка логов и временных файлов
- Очистка Docker
- Проверка резервных копий
- Проверка сертификатов
- Ротация паролей
- Регламент обслуживания
Обновление системы
Пакеты ОС (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}}" &&&
Обновление образа
- Остановить контейнер: &&&bash docker stop &&&
- Удалить контейнер (если не используется
--rm): &&&bash docker rm &&& - Обновить образ (если используется тег
latest): &&&bash docker pull :latest &&& Или загрузить фиксированную версию. - Запустить контейнер заново (обычно через
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 (пароль шифрования)
Периодичность: раз в 6–12 месяцев.
Регламент обслуживания
| Действие | Периодичность | Ответственный | Примечание |
|---|---|---|---|
| Обновление пакетов безопасности (unattended-upgrades) | Ежедневно | Автоматически | Настроено через unattended-upgrades |
| Проверка наличия обновлений пакетов (apt) | Еженедельно | Администратор | apt list --upgradable |
| Обновление критических пакетов (вручную) | Еженедельно | Администратор | После проверки совместимости |
| Обновление Docker-образов | Раз в месяц | Администратор | Сначала тестовые, потом prod |
| Очистка логов и временных файлов | Ежемесячно | Администратор | docker system prune, logrotate |
| Проверка резервных копий | Ежемесячно | Администратор | Просмотр логов PBS, тестовое восстановление |
| Проверка сертификатов | Ежемесячно | Администратор | В NPM; автоматическое обновление обычно работает |
| Тестовое восстановление из бэкапа | Раз в квартал | Администратор | На изолированной среде |
| Ротация паролей | Раз в 6–12 месяцев | Администратор | Обновить пароли в Ansible Vault и в сервисах |
| Аудит безопасности (полный) | Раз в год | Администратор | Использовать Lynis, OpenVAS |
Окна обслуживания
- Плановые работы, требующие перезагрузки или остановки сервисов, проводить в выходные дни (суббота, 2:00–5:00) или в наименее загруженное время.
- Перед любыми изменениями делать резервную копию критических данных.
- После обновлений проверять работоспособность ключевых сервисов (NPM, Samba, Jellyfin, Immich).
Связанные разделы: