1. Домой
  2. Документы
  3. MiStats
  4. Установка и конфигурация

Установка и конфигурация

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

Минимальные требования к серверу для установки Mistats:

  • Процессор: 4 ядра с частотой более 3.5 ГГц
  • ОЗУ: 8 Гб
  • ПЗУ: 60 Гб

Установка

Для работы MiStats необходимо иметь следующие версии ПО:

  1. Smarty >= 2.0
  2. ClickHouse

Примечание 1: Для работы ClickHouse требуется поддержка инструкций SSE 4.2 для процессора

Примечание 2: рекомендуемая ОС для установки ClickHouse — Debian 11

Установка ClickHouse

sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
curl -fsSL 'https://packages.clickhouse.com/rpm/lts/repodata/repomd.xml.key' | sudo gpg --dearmor -o /usr/share/keyrings/clickhouse-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/clickhouse-keyring.gpg] https://packages.clickhouse.com/deb stable main" | sudo tee \
    /etc/apt/sources.list.d/clickhouse.list
sudo apt-get update

sudo apt-get install -y clickhouse-server clickhouse-client

sudo service clickhouse-server start

Установка MiStats

Скачивание пакета доступно в Личном кабинете оператора. После успешного скачивания требуется распаковать пакет и установить нужные зависимости:

sudo dpkg -i mistats-*.deb
pip install -r /usr/share/microimpuls/mistats/backend/requirements.txt

Далее следует настроить связь между Mistats и Сlickhouse, команды открытия CLI для Сlickhouse:

# если Сlickhouse и MiStats находятся на одном сервере
clickhouse-client

# eсли ClickHouse стоит на выделенном сервере 
clickhouse-client --host <HOSTNAME> --secure --port 9940 --user <USERNAME> --password <PASSWORD>

Создание БД и пользователя:

create database smarty_stats;
export CHPASSWORD=`pwgen -s 16`
echo $CHPASSWORD
echo “create user smarty@'<IP>' identified by 'CHPASSWORD';” | clickhouse-client -d smarty_stats -u default --password <passowrd_default_user>
echo “create role smarty;” | clickhouse-client -d smarty_stats -u default --password <passowrd_default_user>
echo “grant all on smarty_stats.* to smarty;” | clickhouse-client -d smarty_stats -u default --password <passowrd_default_user>
echo “grant smarty to smarty@<IP>;” | clickhouse-client -d smarty_stats -u default --password <passowrd_default_user>
sed -i -e ‘s/CH_PASSWORD = None/'"CH_PASSWORD = $DBPASSWORD"'/g’ /usr/share/microimpuls/mistats/backend/settings/configuration.py

После всех действий необходимо отредактировать файл /usr/share/microimpuls/mistats/backend/settings/configuration.py следующим образом:

CH_HOST = "localhost" # IP ClickHouse
CH_PORT = None # Порт ClickHouse
CH_DATABASE = "smarty_stats" # Название базы данных
CH_USER = “smarty@<IP>” # Название аккаунта
CH_PASSWORD = “CHPASSWORD” # Пароль аккаунта
PORT = 8095 # Порт хоста сервера, на который будет отправляться статистика
HOST = "0.0.0.0" # IP хоста сервера, на который будет отправляться статистика
UVICORN_WORKERS = 2 # Количество воркеров
LOG_LEVEL = "info" # Уровень логирования

Далее следует первичная инициализация ClickHouse:

python /usr/share/microimpuls/mistats/backend/commands/init_db.py

Примечание 3: если при запуске выдаётся ошибка “No module named Clickhouse” необходимо выполнить в терминале команду
export PYTHONPATH=»/usr/share/microimpuls/mistats/backend»

И непосредственно запуск MiStats:

python /usr/share/microimpuls/mistats/backend/run.py

Для фоновой работы процесса создайте файл mistats.service в папке /etc/systemd/system со следующим содержимым:

[Unit]
Description=MiStats service
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/python /usr/share/microimpuls/mistats/backend/run.py

[Install]
WantedBy=multi-user.target

После создания service-файла запустите команды:

sudo systemctl enable mistats.service
sudo systemctl start mistats.service

Настройка подключения к MiStats на стороне Smarty

В конфигурационном файле Smarty в секцию INSTALLED_APPS требуется добавить параметр viewstats (если модуль viewstats ранее не настраивался) и удостовериться, что лицензионный ключ допускает использование данного модуля.

Далее требуется добавить в конфиг опцию

VIEWSTATS_MISTATS_BASE_URL = 'HOST:PORT'

где:

  • HOST — адрес хоста, указанный в конфиге MiStats
  • PORT — адрес порта

Для применения настроек необходимо перезагрузить uWSGI:

sudo service uwsgi restart