Как настроить несколько серверов с Keitaro и центральной админкой?

Ниже представлена инстуркция настройки Keitaro на нескольких серверах: один с админкой и несколько под обработку трафика.

Внимание! Keitaro не проектировался под многосерверную архитектуру, поэтому настройка не простая и дальнейшее обслуживание может вызывать трудности.

Требования

  1. Лицензия на каждый сервер, где будет стоять трекер;
  2. Один сервер под базы данных и Redis;
  3. Сервер или несколько под обработку трафика.

Процедура настройки

Установка трекеров стандартной конфигурации

Установите трекер на основной сервер по методу Установка Keitaro.

Установите трекеры на остальные сервера методом Установка Keitaro, каждый с новым ключем лицензии. Будет установлен вес комплект ПО, но вы сможете удалить ненужное позже.

Настройка центрального Redis

На основном сервере откройте файл /etc/firewall.bash.

Найдите # Open ports. и добавьте инструкцию открытия порта:

# Open ports.
iptables -A INPUT -p tcp -m tcp --dport 6379 -j ACCEPT
...

Выполните обновление настроек фаерволла:

$ bash /etc/firewall.bash

Создайте хэш пароля:

echo "my-password-123" | sha256sum

Скопируйте и вставьте пароль в конфиг:

requirepass = 65c2371275a515e510b5f14d927592db061b0895f0de8ffe367027ca63a3853c

Откройте файл /etc/redis.conf и найдите строку # requirepass foobared. Сюда нужно будет убрать # и добавить кэш пароля.

Найдите bind 127.0.0.1 и закомментируйте:

# bind 127.0.0.1

Перезапустите redis:

sudo service redis-server restart

Настройка трекеров на новый Redis

В конфиге /var/www/keitaro/application/config/config.ini.php пропишите адрес Redis с хешем пароля:

[redis]
uri = passhash@x.x.x.x:6379/1

Настройка конфигов

На внешних серверах откройте файлы конфигурации:

/var/www/keitaro/application/config/config.ini.php

Найдите и установите значение:

slave_mode = true

Это отключит админки на этих трекера и крон.

Обновление внешних трекеров и баз

Обновление баз осуществляется через терминал:

php /var/www/keitaro/bin/cli.php geodbs:update_all     

Обновление трекера:

php /var/www/keitaro/bin/cli.php system_updates:update

Удаление оставшегося ПО

Если нужно освободить ресурсы на внешних серверах, можете удалить redis и mariadb:

yum remove redis mariadb

Обратите внимание, что если удалите mariadb, то не сможете потом зайти в админку внешнего трекера.

Как открыть доступ к MySQL извне?

Отредактируйте /etc/my.cnf.d/network.cnf и закомментируйте строку:

[mysqld]
# bind-address = 127.0.0.1

Отредактируйте /etc/firewall.bash и добавьте открытие порта 3306:

# Open ports.
iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
...

Перезагрузите mysql и firewall:

service mysql restart
bash /etc/firewall.bash