Поиск

Релиз

Содержание

Нужна помощь?

Не нашли ответ на свой вопрос? Свяжитесь с нашей службой поддержки.

Обратиться в поддержку

8. Поддержка и обслуживание

Обновлено: 07 Декабрь 2025 Версия: 2.2

1. Резервное копирование

Резервное копирование базы данных

Создание резервной копии:

# Создание резервной копии PostgreSQL
pg_dump -U ask_user -d ask_db > backup_$(date +%Y%m%d_%H%M%S).sql

# Сжатие резервной копии
pg_dump -U ask_user -d ask_db | gzip > backup_$(date +%Y%m%d_%H%M%S).sql.gz

Автоматическое резервное копирование:

Создайте скрипт /opt/ask/backup.sh:

#!/bin/bash
BACKUP_DIR="/opt/backups"
DATE=$(date +%Y%m%d_%H%M%S)

# Создание директории для бэкапов
mkdir -p $BACKUP_DIR

# Бэкап базы данных
pg_dump -U ask_user -d ask_db | gzip > $BACKUP_DIR/db_$DATE.sql.gz

# Бэкап медиа-файлов
tar -czf $BACKUP_DIR/media_$DATE.tar.gz /opt/ask/media/

# Удаление старых бэкапов (старше 30 дней)
find $BACKUP_DIR -name "*.sql.gz" -mtime +30 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete

Сделайте скрипт исполняемым:

chmod +x /opt/ask/backup.sh

Добавьте в crontab для ежедневного выполнения:

# Ежедневный бэкап в 2:00 ночи
0 2 * * * /opt/ask/backup.sh

Резервное копирование медиа-файлов

Создание архива медиа-файлов:

tar -czf media_backup_$(date +%Y%m%d_%H%M%S).tar.gz /opt/ask/media/

Восстановление медиа-файлов:

tar -xzf media_backup_YYYYMMDD_HHMMSS.tar.gz -C /

2. Восстановление базы данных

Восстановление из резервной копии

Восстановление из несжатой копии:

psql -U ask_user -d ask_db < backup_20240101_120000.sql

Восстановление из сжатой копии:

gunzip < backup_20240101_120000.sql.gz | psql -U ask_user -d ask_db

Восстановление с очисткой базы данных:

# Остановка сервисов
sudo supervisorctl stop all

# Удаление базы данных
dropdb -U ask_user ask_db

# Создание новой базы данных
createdb -U ask_user ask_db

# Восстановление из резервной копии
gunzip < backup_20240101_120000.sql.gz | psql -U ask_user -d ask_db

# Применение миграций (если необходимо)
cd /opt/ask
source .venv/bin/activate
python manage.py migrate

# Запуск сервисов
sudo supervisorctl start all

Важно: Перед восстановлением создайте резервную копию текущего состояния базы данных.

3. Мониторинг логов

Просмотр логов Django

# Основной лог (если настроен)
tail -f /var/log/django/info.log

# Лог ошибок (если настроен)
tail -f /var/log/django/error.log

Просмотр логов Nginx

# Лог доступа
tail -f /var/log/nginx/access.log

# Лог ошибок
tail -f /var/log/nginx/error.log

Просмотр логов Gunicorn

tail -f /var/log/gunicorn/gunicorn.log

Просмотр логов Celery

# Лог воркера
tail -f /var/log/celery/worker.log

# Лог beat
tail -f /var/log/celery/beat.log

Настройка ротации логов

Создайте файл /etc/logrotate.d/ask:

/var/log/django/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 0644 www-data www-data
}

/var/log/celery/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 0644 www-data www-data
}

/var/log/gunicorn/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 0644 www-data www-data
}

4. Проверка работы системы

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

# Проверка статуса всех сервисов через Supervisor
sudo supervisorctl status

# Проверка статуса отдельных сервисов
sudo supervisorctl status gunicorn
sudo supervisorctl status celery
sudo supervisorctl status celerybeat

Проверка работы базы данных

# Подключение к базе данных
psql -U ask_user -d ask_db

# Проверка подключения
\conninfo

# Выход
\q

Проверка работы Redis

# Проверка подключения
redis-cli ping

# Должен вернуть: PONG

Проверка работы Celery

# Проверка статуса воркера
celery -A config inspect active

# Проверка зарегистрированных задач
celery -A config inspect registered

# Проверка статистики
celery -A config inspect stats

5. Решение типичных проблем

Проблема: Сервисы не запускаются

Решение:

  1. Проверьте логи: sudo supervisorctl tail -f gunicorn
  2. Проверьте права доступа к файлам
  3. Проверьте конфигурацию в /etc/supervisor/conf.d/
  4. Перезагрузите supervisor: sudo supervisorctl reread && sudo supervisorctl update

Проблема: Ошибки подключения к базе данных

Решение:

  1. Проверьте, запущен ли PostgreSQL: sudo systemctl status postgresql
  2. Проверьте настройки подключения в config/prod_settings.py
  3. Проверьте права пользователя базы данных
  4. Проверьте логи PostgreSQL: sudo tail -f /var/log/postgresql/postgresql-*.log

Проблема: Ошибки подключения к Redis

Решение:

  1. Проверьте, запущен ли Redis: sudo systemctl status redis-server
  2. Проверьте настройки Redis в config/settings.py
  3. Проверьте доступность порта: netstat -tuln | grep 6379

Проблема: Медленная работа системы

Решение:

  1. Проверьте использование ресурсов: htop или top
  2. Проверьте логи на наличие ошибок
  3. Проверьте размер базы данных
  4. Оптимизируйте запросы к базе данных
  5. Увеличьте количество workers Gunicorn (если CPU позволяет)