11 KiB
13. Плановое обслуживание
Регулярное обслуживание инфраструктуры необходимо для обеспечения стабильности, безопасности и производительности. В этом разделе описан регламент работ, включая обновления, очистку и фиксацию версий.
Содержание
- Обновление системы
- Обновление Docker-образов
- Фиксация версий
- Очистка логов и временных файлов
- Очистка Docker
- Проверка резервных копий
- Проверка сертификатов
- Ротация паролей
- Регламент обслуживания
Обновление системы
Пакеты ОС (apt)
Для всех хостов (Proxmox, LXC, ВМ) регулярно выполняйте обновление пакетов безопасности и критических исправлений.
Ручное обновление:
apt update
apt list --upgradable # посмотреть список
apt upgrade -y # обновить пакеты
apt autoremove -y # удалить ненужные зависимости
Автоматические обновления безопасности:
На всех хостах следует настроить unattended-upgrades:
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, но после обновления ядра требуется перезагрузка. Желательно планировать перезагрузку гипервизора в окно обслуживания.
apt update
apt dist-upgrade -y
pveversion -v # проверить версию
reboot
Обновление Docker-образов
Просмотр текущих версий
docker ps --format "table {{.Image}}\t{{.Names}}"
Обновление образа
- Остановить контейнер:
docker stop <container> - Удалить контейнер (если не используется
--rm):docker rm <container> - Обновить образ (если используется тег
latest):
Или загрузить фиксированную версию.docker pull <image>:latest - Запустить контейнер заново (обычно через
docker-compose up -d).
Обновление через docker-compose
cd /path/to/service
docker-compose pull
docker-compose up -d --remove-orphans
Рекомендация
- Избегать использования
:latestв production. Зафиксировать версии (см. раздел ниже). - Перед обновлением критических сервисов (Bitwarden, GitLab, базы данных) сделать резервную копию.
Фиксация версий
Docker-образы
В docker-compose.yml указывайте конкретную версию образа вместо latest. Пример:
services:
npm:
image: jc21/nginx-proxy-manager:2.12.3 # вместо :latest
# ...
Актуальные версии можно найти в документации сервисов или на Docker Hub.
Пакеты ОС
Для важных компонентов (например, ядро, Docker, базы данных) можно фиксировать версии с помощью apt-mark hold:
apt-mark hold docker-ce
apt-mark unhold docker-ce # когда нужно обновить
Очистка логов и временных файлов
Логи системные
Логи в /var/log ротируются автоматически (logrotate). Проверить конфигурацию:
cat /etc/logrotate.conf
Принудительная ротация логов:
logrotate -f /etc/logrotate.conf
Логи Docker
Docker логи по умолчанию не ротируются, но можно настроить их ограничение в /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
После изменения перезапустить Docker:
systemctl restart docker
Временные файлы
Очистка /tmp (обычно очищается при перезагрузке). Можно настроить systemd-tmpfiles для регулярной очистки.
Очистка Docker
Удаление неиспользуемых образов, контейнеров, томов
docker system prune -a -f # удалить всё неиспользуемое
docker volume prune -f # удалить неиспользуемые тома
docker image prune -a -f # удалить неиспользуемые образы
Просмотр занимаемого места
docker system df
Проверка резервных копий
Регулярно проверяйте, что резервные копии создаются и могут быть восстановлены.
- Проверка логов Proxmox Backup Server (или VZDump) на наличие ошибок.
- Тестовое восстановление на изолированной среде (хотя бы раз в квартал).
- Проверка, что бэкапы не устарели (срок хранения).
Проверка сертификатов
Let's Encrypt (NPM)
Сертификаты обновляются автоматически, но иногда процесс может зависнуть.
Проверить статус:
- В интерфейсе NPM: SSL Certificates → статус каждого сертификата.
- В логах NPM:
docker logs npm 2>&1 | grep -i "renew"
Ручное обновление (если нужно)
В NPM есть кнопка "Renew Now". Также можно перезапустить контейнер:
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).
Связанные разделы: