Keitaro
July 3

Как перенести Keitaro на другой сервер: Полное пошаговое руководство (2025)

Перенос трекера Keitaro на новый сервер — ответственная задача, которая может понадобиться при смене хостинга, апгрейде оборудования или масштабировании. Неправильные действия могут привести к потере данных, простою трафика и финансовым убыткам. Это руководство объединяет официальный метод переноса с помощью утилиты kctl, ручной подход для сложных случаев и решения всех известных проблем, чтобы ваш переезд прошел безболезненно.

Требования к новому серверу

Перед началом убедитесь, что новый сервер соответствует требованиям Keitaro:

  • Операционная система: CentOS 9 Stream (официально рекомендованная для максимальной совместимости).
  • ОЗУ: Минимум 2 ГБ, рекомендуется 4 ГБ для стабильной работы.
  • Диск: SSD или NVMe, минимум 20–30 ГБ свободного места.
  • Виртуализация: Только KVM (OpenVZ и другие не поддерживаются).
  • Доступ: Root-доступ через SSH (логин/пароль или SSH-ключ).
  • Сеть: Стабильное интернет-соединение для установки и активации лицензии.

Рекомендация: Используйте проверенных провайдеров (DigitalOcean, Hetzner, Vultr), чтобы избежать проблем с настройкой окружения.

Часть 1: Подготовка к переносу

Правильная подготовка минимизирует риски и время простоя.

1. Обновление Keitaro

Обновите трекер на старом сервере до последней версии:

  • Войдите в админ-панель (Maintenance → Update Keitaro).
  • Выберите канал stable (рекомендуется) или beta.
  • Нажмите Yes, install и дождитесь завершения.
  • Очистите кэш браузера.

Проблема: Обновление не выполняется из-за устаревшей ОС.
Решение: Если сервер работает на CentOS 7/8, свяжитесь с поддержкой Keitaro для инструкций по обновлению или переустановке ОС. Перед этим создайте резервную копию.

2. Снижение TTL домена

Чтобы минимизировать простой трафика:

  • За 24–48 часов до переноса зайдите в панель управления DNS вашего домена.
  • Уменьшите TTL для A-записи до 300 секунд (5 минут).
  • Проверьте текущий TTL командой: dig +nocmd ваш.домен A +noall +answer

3. Отключение трафика

  • Приостановите все кампании в админ-панели.
  • Проверьте отсутствие новых кликов в Maintenance → Status.
  • Если используется Cloudflare, включите режим "Under Attack" или отключите компрессию.

Проблема: Трафик продолжает поступать.
Решение: Проверьте логи (Maintenance → Logs → System Log). Убедитесь, что все потоки приостановлены.

4. Генерация SSH-ключа (рекомендуется)

Для безопасного и удобного переноса настройте доступ по SSH-ключу:

  • На новом сервере выполните:ssh-keygen -t rsa ssh-copy-id root@<IP_СТАРОГО_СЕРВЕРА>
  • Проверьте подключение: ssh root@<IP_СТАРОГО_СЕРВЕРА>.

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

Создайте дамп базы данных и сохраните файлы:

  • Через kctl (рекомендуемый способ):SSH_USER=root kctl transfers dump local /var/lib/kctl-transfers Укажите SSH_PASSWORD или SSH_PATH_TO_KEY, если требуется.
  • Через phpMyAdmin (альтернатива):
    • Войдите в phpMyAdmin (http://старый_сервер_IP/phpmyadmin).
    • Найдите имя базы данных в /var/www/keitaro/application/config/config.ini.php.
    • Экспортируйте базу в формате SQL (интерфейс должен быть на английском).
  • Сохраните файлы:
    • Лендинги: /var/www/keitaro/lander.
    • Списки ботов: /var/www/keitaro/var/bots.
    • Ключи шифрования: Сохраните SALT и POSTBACK_KEY из /var/www/keitaro/application/config/config.ini.php.

Проблема: Ошибка "Could not detect TRACKER_POSTBACK_KEY".
Решение: Игнорируйте предупреждение, если ключ не настроен. Убедитесь, что SALT скопирован корректно.

Проблема: Дамп не создается из-за нехватки места.
Решение: Проверьте место (df -h). Оптимизируйте базу (Maintenance → Optimize Database) или удалите старые логи (Maintenance → Logs).

Часть 2: Перенос с помощью kctl (официальный метод)

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

1. Установка Keitaro

Установите трекер на новом сервере:

curl https://keitaro.io/kctl.sh | bash -s -- install

Выберите канал stable для надежности.

Проблема: Ошибка "kctl: command not found".
Решение: Проверьте интернет-соединение и права root. Повторите команду или обратитесь в поддержку Keitaro.

2. Перенос данных

Запустите процесс в сессии screen для защиты от обрыва связи:

screen

Выполните копирование данных:

  • С SSH-ключом:kctl transfers copy-from <IP_СТАРОГО_СЕРВЕРА>
  • С паролем:SSH_PASSWORD=<ВАШ_ПАРОЛЬ> kctl transfers copy-from <IP_СТАРОГО_СЕРВЕРА>
  • С нестандартным портом:SSH_PORT=2222 SSH_PASSWORD=<ВАШ_ПАРОЛЬ> kctl transfers copy-from <IP_СТАРОГО_СЕРВЕРА>

Процесс может занять от минут до часов, в зависимости от объема данных. Дождитесь сообщения Everything is restored.

Проблема: Ошибка соединения с SSH.
Решение: Проверьте доступность старого сервера (ping <IP_СТАРОГО_СЕРВЕРА>), порт SSH и настройки файрвола.

Часть 3: Ручной перенос (альтернатива)

Если kctl не сработал (например, из-за отсутствия root-доступа или кастомизаций), используйте ручной метод.

1. Бэкап на старом сервере

  • Создайте дамп базы данных:mysqldump keitaro | gzip > /root/dump.sql.gz
  • Проверьте целостность дампа:gunzip -c /root/dump.sql.gz | head -n 10
  • Заархивируйте файлы лендингов и ботов:tar -czvf /root/landers.tar.gz /var/www/keitaro/lander tar -czvf /root/bots.tar.gz /var/www/keitaro/var/bots

2. Перенос и восстановление

  • Установите Keitaro на новом сервере (см. выше).
  • Перенесите файлы dump.sql.gz, landers.tar.gz и bots.tar.gz на новый сервер (например, через SCP или FTP).
  • Разверните файлы:tar -xzvf /root/landers.tar.gz -C /var/www/keitaro/ tar -xzvf /root/bots.tar.gz -C /var/www/keitaro/
  • Восстановите базу данных:SALT=<ВАШ_SALT> POSTBACK_KEY=<ВАШ_KEY> kctl transfers restore-from-sql local /root/dump.sql.gz

Проблема: Ошибка "Incorrect table definition".
Решение: Проверьте совместимость версий MySQL/MariaDB между серверами. Если версии различаются, обновите новый сервер до той же версии, что на старом (mysql --version).

Часть 4: Действия после переноса

1. Сброс лицензии

  • Войдите в личный кабинет на https://keitaro.io.
  • В разделе Licenses нажмите Unlink для старого сервера.
  • В админ-панели нового трекера (https://новый_сервер_IP/admin) введите лицензионный ключ.

Проблема: Лицензия не активируется.
Решение: Проверьте исходящие соединения (curl https://keitaro.io). Сбросьте кастомные настройки /etc/resolv.conf или обратитесь в поддержку.

2. Обновление DNS

  • Измените A-запись домена на новый IP-адрес.
  • Проверьте распространение DNS: dig ваш.домен.

3. Настройка Cron

  • На старом сервере проверьте задачи: crontab -l.
  • На новом сервере добавьте их: crontab -e. Пример задачи:* * * * * /var/www/keitaro/bin/kctl.sh

Проблема: Cron не работает.
Решение: Проверьте логи (tail -f /var/log/cron) и убедитесь, что путь к kctl.sh верный.

4. Проверка SSL

  • Перевыпустите SSL-сертификат:kctl-le-issue ваш.домен

Проблема: Ошибка Let’s Encrypt.
Решение: Проверьте, открыт ли порт 80 (telnet ваш.домен 80). Убедитесь, что домен указывает на новый IP.

Часть 5: Устранение проблем

  • Белый экран или ошибка 500:
    • Исправьте права: kctl system-permissions.
    • Проверьте версию PHP (php -v) и сравните с требованиями Keitaro.
    • Изучите логи: /var/log/nginx/error.log и /var/www/keitaro/var/log/system.log.
  • Ошибка подключения к базе данных:
    • Проверьте /var/www/keitaro/application/config/db.php. Убедитесь, что логин, пароль и хост совпадают с настройками нового сервера.
  • Медленная работа трекера:
    • Проверьте статус Redis: systemctl status redis.
    • Выполните тюнинг: kctl system-tune.
  • Лендинги не работают (404):
    • Проверьте наличие файлов в /var/www/keitaro/lander и права: ls -l /var/www/keitaro/lander.
  • Статистика не обновляется:
    • Проверьте выполнение Cron: grep CRON /var/log/syslog.

Финальный чек-лист

  • Админ-панель открывается по новому IP.
  • Лицензия активирована.
  • Домен указывает на новый IP (ping ваш.домен).
  • Тестовый клик регистрируется в статистике.
  • Логи не содержат ошибок (Maintenance → Logs).
  • Cron работает (проверьте /var/log/cron).

Заключение

Перенос Keitaro — это как пересадка сердца для вашего бизнеса. Следуя этому руководству, вы минимизируете риски и простои. Если возникнут сложности, обратитесь в поддержку Keitaro (support@keitaro.io, Telegram или live-чат с 06:00 до 16:00 GMT). Успешного переезда!