Set up three-tier synchronization: Syncthing (real-time), GitHub (version control), rsync (disaster recovery). Includes complete documentation for future Claude sessions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
19 KiB
19 KiB
🎯 AI-Impress Server - Полное руководство администратора
Версия: 4.0
Дата: 2025-11-03
Для: Администраторов без технического опыта
📋 СОДЕРЖАНИЕ
- Быстрый старт
- Ежедневные задачи
- Все установленное ПО
- Где что находится
- Пароли и доступы
- Резервные копии
- Мониторинг и алерты
- Как исправить проблемы
- Автоматизация
- FAQ - Частые вопросы
🚀 БЫСТРЫЙ СТАРТ
Подключение к серверу
ssh ubuntu@51.89.231.46
Главные команды
# Проверить все сервисы
/opt/05-backups/scripts/admin.sh status
# Полный отчет о сервере
/opt/infrastructure-docs/scripts/server-full-report.sh
# Проверка здоровья системы
/opt/05-backups/scripts/health-check-alerting.sh
# Помощь
/opt/05-backups/scripts/admin.sh help
📅 ЕЖЕДНЕВНЫЕ ЗАДАЧИ
✅ Что проверять каждый день
- Проверить алерты в Slack - канал #alerts
- Проверить email - admin@ai-impress.com
- Открыть мониторинг - https://grafana.ai-impress.com
- Проверить сайты работают:
🔍 Быстрая проверка (2 минуты)
# SSH на сервер
ssh ubuntu@51.89.231.46
# Запустить быструю проверку
/opt/05-backups/scripts/health-check-alerting.sh
# Если все ОК - увидите зеленую галочку ✅
# Если проблемы - получите список с инструкциями
💻 ВСЕ УСТАНОВЛЕННОЕ ПО
🏛️ Критические сервисы (НЕЛЬЗЯ УДАЛЯТЬ!)
| Сервис | Назначение | Что сломается если удалить |
|---|---|---|
| Traefik | Обратный прокси, SSL | ВСЕ сайты перестанут работать |
| PostgreSQL | База данных | ВСЕ приложения потеряют данные |
| Redis | Кеш и очереди | N8N, Authentik сломаются |
| Vault | Хранилище паролей | Потеряете доступ ко всем паролям |
💼 Бизнес-приложения
| Приложение | URL | Можно ли удалить |
|---|---|---|
| Outline | wiki.ai-impress.com | ⚠️ Да, но потеряете документацию |
| N8N | n8n.ai-impress.com | ⚠️ Да, но остановятся автоматизации |
| Mautic | marketing.ai-impress.com | ⚠️ Да, но потеряете контакты |
| Odoo | odoo.ai-impress.com | ⚠️ Да, но потеряете ERP данные |
| Authentik | auth.ai-impress.com | ❌ Нельзя - сломается вход везде |
🔧 Инструменты
| Инструмент | URL | Назначение |
|---|---|---|
| Grafana | grafana.ai-impress.com | Мониторинг и графики |
| Portainer | portainer.ai-impress.com | Управление Docker через веб |
| Uptime Kuma | uptime.ai-impress.com | Проверка доступности сайтов |
| pgAdmin | pgadmin.ai-impress.com | Управление PostgreSQL |
📂 ГДЕ ЧТО НАХОДИТСЯ
Структура сервера
/opt/ # Все приложения
├── 00-infrastructure/ # Критическая инфраструктура
│ ├── traefik/ # Обратный прокси
│ ├── postgres/ # Главная БД
│ ├── vault/ # Хранилище секретов
│ │ └── .vault-token # 👈 Токен для доступа к Vault
│ └── redis/ # Кеш
│
├── 01-network/ # Сетевые сервисы
│ └── authentik/ # SSO авторизация
│
├── 02-core/ # Основные приложения
│ ├── outline/ # Wiki
│ ├── n8n/ # Автоматизация
│ └── supabase/ # Backend
│
├── 03-business/ # Бизнес приложения
│ ├── mautic/ # Маркетинг
│ ├── odoo/ # ERP
│ └── documenso/ # Подписание документов
│
├── 04-tools/ # Инструменты мониторинга
│ ├── monitoring/ # Grafana, Prometheus, Loki
│ ├── portainer/ # Docker UI
│ └── uptime-kuma/ # Uptime monitoring
│
├── 05-backups/ # Система резервных копий
│ ├── scripts/ # 🎯 ВСЕ СКРИПТЫ УПРАВЛЕНИЯ ЗДЕСЬ!
│ ├── logs/ # Логи скриптов
│ └── reports/ # JSON отчеты
│
└── infrastructure-docs/ # Документация
├── scripts/ # Скрипты генерации отчетов
└── reports/ # 📄 MD отчеты о сервере
/mnt/
├── backups/ # 💾 ВСЕ БЕКАПЫ ЗДЕСЬ!
└── psql-data/ # 🗄️ ВСЕ БАЗЫ ДАННЫХ ЗДЕСЬ!
├── pgdata/ # postgres-main
├── supabase-db/ # Supabase
└── mautic-db/ # Mautic
🔐 ПАРОЛИ И ДОСТУПЫ
Где хранятся пароли?
Все пароли в Vault и Vaultwarden (Bitwarden).
Как получить пароль?
# SSH на сервер
ssh ubuntu@51.89.231.46
# Установить переменные
export VAULT_ADDR="http://127.0.0.1:8200"
export VAULT_TOKEN="hvs.jYguDdf2IzobXG8b9QWyATV8"
# Посмотреть все секреты
vault kv list aimpress/
# Получить конкретный пароль
vault kv get aimpress/mautic
vault kv get aimpress/odoo
vault kv get aimpress/postgres/admin
Структура секретов в Vault
secret/
├── monitoring # Slack webhook, email для алертов
└── outline # Outline API credentials
aimpress/
├── postgres/
│ ├── admin # Главный админ PostgreSQL
│ ├── outline # Пользователь БД для Outline
│ ├── mautic # Пользователь БД для Mautic
│ └── odoo # Пользователь БД для Odoo
├── mautic # Админ Mautic
├── odoo # Админ Odoo
├── authentik # Админ Authentik
├── grafana # Админ Grafana
└── portainer # Админ Portainer
Как добавить новый секрет?
export VAULT_ADDR="http://127.0.0.1:8200"
export VAULT_TOKEN="hvs.jYguDdf2IzobXG8b9QWyATV8"
# Добавить секрет
vault kv put aimpress/новый_сервис \
username="admin" \
password="супер_секретный_пароль" \
api_key="ключ_апи"
# Проверить
vault kv get aimpress/новый_сервис
Веб-интерфейс Vaultwarden
- URL: https://vault.ai-impress.com
- Для команды и удобного доступа к паролям
- Синхронизация с Vault: каждые 4 часа автоматически
💾 РЕЗЕРВНЫЕ КОПИИ
Где хранятся бекапы?
/mnt/backups/ # Главная директория бекапов
Автоматические бекапы
| Что | Когда | Скрипт |
|---|---|---|
| Полный бекап | Каждый день в 03:00 | backup-full-enhanced.sh |
| Недельный бекап | Воскресенье в 02:00 | backup-full-enhanced.sh |
| БД PostgreSQL | Каждый день в 03:00 | (включено в полный) |
| Vault секреты | Каждые 4 часа | vault-bitwarden-sync.sh |
| Конфигурации | Каждый день в 02:00 | config-manager.sh |
Ручной бекап
# Полный бекап всего
/opt/05-backups/scripts/backup-full-enhanced.sh
# Только базы данных
docker exec postgres-main pg_dumpall -U aimpress_admin | \
gzip > /mnt/backups/postgres-$(date +%Y%m%d).sql.gz
# Экспорт Vault секретов
/opt/05-backups/scripts/vault-bitwarden-sync.sh export
Восстановление из бекапа
# 1. Найти нужный бекап
ls -lh /mnt/backups/
# 2. Восстановить БД
gunzip < /mnt/backups/postgres-20251103.sql.gz | \
docker exec -i postgres-main psql -U aimpress_admin
# 3. Перезапустить сервисы
docker restart <имя_контейнера>
📊 МОНИТОРИНГ И АЛЕРТЫ
Куда приходят алерты?
- Slack - канал #alerts
- Email - admin@ai-impress.com
Что проверяется автоматически?
✓ Критические сервисы работают (Traefik, PostgreSQL, Redis, Vault)
✓ Все сайты отвечают
✓ Диск не заполнен (> 90%)
✓ Память не переполнена (> 90%)
✓ Нет слишком много нездоровых контейнеров
✓ Бекапы создаются регулярно
✓ Контейнеры не перезапускаются постоянно
Проверки запускаются
- Каждые 30 минут - health-check-alerting.sh
- Каждый день в 06:00 - полный отчет о сервере
- Каждый день в 04:30 - системная диагностика
Как протестировать алерты?
# Проверка системы и отправка в Slack (если есть проблемы)
/opt/05-backups/scripts/health-check-alerting.sh
🔧 КАК ИСПРАВИТЬ ПРОБЛЕМЫ
Сайт не работает (502/503)
# 1. Проверить Traefik
docker logs traefik --tail 50
# 2. Проверить контейнер сайта
docker ps | grep <название>
docker logs <название> --tail 100
# 3. Перезапустить
docker restart <название>
# 4. Если не помогло - перезапустить Traefik
docker restart traefik
База данных не работает
# 1. Проверить PostgreSQL запущен
docker ps | grep postgres-main
# 2. Посмотреть логи
docker logs postgres-main --tail 100
# 3. Проверить место на диске
df -h /mnt/psql-data
# 4. Попробовать подключиться
docker exec postgres-main psql -U aimpress_admin -c "SELECT 1;"
# 5. Перезапустить (осторожно!)
docker restart postgres-main
Закончилось место на диске
# 1. Посмотреть что занимает место
du -sh /opt/* /mnt/* | sort -h | tail -10
# 2. Очистить Docker
docker system prune -af
# 3. Удалить старые логи
find /opt -name "*.log" -mtime +7 -delete
find /var/log -name "*.log" -mtime +7 -exec truncate -s 0 {} \;
# 4. Удалить старые бекапы (старше 60 дней)
find /mnt/backups -mtime +60 -delete
# 5. Проверить результат
df -h
Контейнер постоянно перезапускается
# 1. Посмотреть логи для ошибки
docker logs <контейнер> --tail 200
# 2. Проверить количество перезапусков
docker inspect --format='{{.RestartCount}}' <контейнер>
# 3. Остановить авто-перезапуск временно
docker update --restart=no <контейнер>
# 4. Запустить вручную и смотреть логи
docker start <контейнер> && docker logs -f <контейнер>
# 5. Исправить проблему из логов
Vault запечатан (sealed)
# Распечатать Vault
/opt/00-infrastructure/vault/unseal.sh
# Проверить статус
docker exec vault vault status
⚙️ АВТОМАТИЗАЦИЯ
Что работает автоматически?
Каждые 15 минут
- Мониторинг синхронизаций сервисов
Каждые 30 минут
- Health check - проверка здоровья системы и алерты
Каждые 4 часа
- Vault export - экспорт секретов в бекап
Ежедневно
| Время | Задача |
|---|---|
| 01:00 | Удаление старых логов (> 30 дней) |
| 02:00 | Бекап конфигураций |
| 02:00 | Недельный полный бекап (воскресенье) |
| 03:00 | Полный системный бекап |
| 03:00 | Аудит безопасности (понедельник) |
| 04:30 | Системная диагностика |
| 05:00 | Загрузка отчетов |
| 05:30 | Отчеты мониторинга |
| 06:00 | Полный отчет о сервере |
Еженедельно
| День | Время | Задача |
|---|---|---|
| Суббота | 02:00 | Обслуживание БД |
| Понедельник | 03:00 | Аудит безопасности |
Просмотр расписания
# Посмотреть все задачи cron
crontab -l
# Посмотреть логи cron задач
ls -lh /opt/05-backups/logs/cron-*.log
tail -50 /opt/05-backups/logs/cron-health-check.log
❓ FAQ - ЧАСТЫЕ ВОПРОСЫ
Как узнать что установлено?
/opt/05-backups/scripts/admin.sh status
Как посмотреть логи приложения?
docker logs -f --tail 100 <имя_контейнера>
# Примеры:
docker logs -f outline
docker logs -f postgres-main
docker logs -f traefik
Как перезапустить приложение?
docker restart <имя_контейнера>
# Или через docker-compose:
cd /opt/<путь_к_приложению>
docker-compose restart
Как удалить ненужное приложение?
# ⚠️ ВНИМАНИЕ: Создайте бекап сначала!
# 1. Бекап базы данных (если есть)
/opt/05-backups/scripts/backup-full-enhanced.sh
# 2. Остановить контейнер
docker stop <имя_контейнера>
# 3. Удалить контейнер
docker rm <имя_контейнера>
# 4. Удалить из docker-compose.yml
cd /opt/<путь>
nano docker-compose.yml # Удалить секцию сервиса
# 5. Пересоздать стек
docker-compose up -d
Как обновить приложение?
# 1. Бекап!
/opt/05-backups/scripts/backup-full-enhanced.sh
# 2. Перейти в папку приложения
cd /opt/<путь>
# 3. Скачать новый образ
docker-compose pull
# 4. Пересоздать контейнеры
docker-compose up -d
# 5. Проверить логи
docker-compose logs -f
Как изменить пароль?
Для веб-приложений:
- Зайти в веб-интерфейс приложения
- Settings → Users → Change Password
- Сохранить новый пароль в Vault
Для PostgreSQL:
# Генерация нового пароля
NEW_PASS=$(openssl rand -base64 32)
# Изменить в БД
docker exec postgres-main psql -U aimpress_admin -c \
"ALTER USER <username> WITH PASSWORD '$NEW_PASS';"
# Сохранить в Vault
export VAULT_ADDR="http://127.0.0.1:8200"
export VAULT_TOKEN="hvs.jYguDdf2IzobXG8b9QWyATV8"
vault kv put aimpress/postgres/<service> password="$NEW_PASS"
# Обновить в приложении
cd /opt/<путь>
nano docker-compose.yml # Изменить DB_PASSWORD
docker-compose restart
Где посмотреть использование ресурсов?
# Память и CPU
docker stats --no-stream
# Диск
df -h
# Самые большие директории
du -sh /opt/* /mnt/* | sort -h | tail -10
# Топ процессов
top -bn1 | head -20
📞 ПОЛЕЗНЫЕ ССЫЛКИ
Веб-интерфейсы
- Wiki: https://wiki.ai-impress.com
- Мониторинг: https://grafana.ai-impress.com
- Uptime: https://uptime.ai-impress.com
- Docker UI: https://portainer.ai-impress.com
- Пароли: https://vault.ai-impress.com
Документация
- Полные отчеты:
/opt/infrastructure-docs/reports/ - Логи скриптов:
/opt/05-backups/logs/ - Эта инструкция:
/opt/infrastructure-docs/ADMIN_GUIDE.md
🎯 ИТОГОВЫЙ ЧЕКЛИСТ АДМИНИСТРАТОРА
Каждый день
- Проверить Slack алерты
- Проверить email admin@ai-impress.com
- Открыть https://grafana.ai-impress.com
- Проверить все сайты открываются
Каждую неделю
- Посмотреть отчеты в Outline (коллекция Reports)
- Проверить размер бекапов:
du -sh /mnt/backups - Проверить место на диске:
df -h
Каждый месяц
- Проверить что бекапы можно восстановить
- Обновить критические приложения (если есть обновления)
- Почистить старые бекапы (> 60 дней)
- Проверить логи на ошибки
Версия документа: 4.0
Последнее обновление: 2025-11-03
Контакты: admin@ai-impress.com
Slack: #alerts
Сгенерировано автоматически системой администрирования AI-Impress