# Включение/выключение ClickHouse

Начиная с версии [10.4](https://webim.ru/webim-10-4/), в сервисе онлайн-консультирования **Webim** появилась возможность пользоваться улучшенным модулем **Статистики**, работающим на СУБД [ClickHouse](https://clickhouse.com). Ниже приведены инструкции по включению и отключению **ClickHouse** и модуля **Статистики v2**.

!!! Note "N.B."
    То, как именно обновляются данные в **Статистике v2**, зависит от способа наполнения ClickHouse. Подробнее: [Режимы подсчёта и обновления статистики](https://webim.ru/kb/for-analytics/statistics/calculation-modes.html).

!!! Note "Важно"
    Параметры `analytics_v2_*`, описанные ниже, актуальны начиная с версии **10.8**. В версиях 10.4–10.7 использовались прежние имена (`clickhouse_stats`, `stats_v2`, `dashboard_v2` и др.) — см. [описание параметров account config](https://webim.ru/kb/devops/server-account-config-parameters.html).

## Ручная установка и настройка ClickHouse

  1. Установите **ClickHouse 23.12** на отдельном сервере. Эта версия указана в [требованиях к программному обеспечению](https://webim.ru/kb/devops/sys-reqs-for-server/sys-reqs-server-sw.html). Аппаратные рекомендации — в [документации ClickHouse](https://clickhouse.com/docs/ru/guides/sizing-and-hardware-recommendations).

    !!! Note "Важно"
        Не используйте [быстрый старт ClickHouse](https://clickhouse.com/docs/ru/getting-started/quick-start/oss) (`curl https://clickhouse.com/ | sh`) и не ставьте пакеты `clickhouse-server` / `clickhouse-client` без номера версии: так устанавливается **текущий** релиз, а не версия из [требований к программному обеспечению](https://webim.ru/kb/devops/sys-reqs-for-server/sys-reqs-server-sw.html). **Webim** тестирует и поддерживает указанную там линейку.

    Команды ниже — для Debian и Ubuntu (apt). Для RPM-дистрибутивов (RHEL, CentOS и аналоги) используйте [официальную инструкцию ClickHouse](https://clickhouse.com/docs/ru/get-started/setup/self-managed/redhat) и фиксируйте версию пакетов из требований, не ставьте их без номера версии.

    На Debian и Ubuntu добавьте официальный репозиторий по [инструкции ClickHouse](https://clickhouse.com/docs/ru/get-started/setup/self-managed/debian-ubuntu) и зафиксируйте версию пакетов:

    ```
    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
    ARCH=$(dpkg --print-architecture)
    echo "deb [signed-by=/usr/share/keyrings/clickhouse-keyring.gpg arch=${ARCH}] https://packages.clickhouse.com/deb stable main" | sudo tee /etc/apt/sources.list.d/clickhouse.list
    sudo apt-get update
    apt-cache madison clickhouse-server | grep 23.12
    # подставьте вместо 23.12.X.Y номер сборки линейки 23.12 из вывода команды выше, один и тот же для всех трёх пакетов
    sudo apt-get install clickhouse-server=23.12.X.Y clickhouse-client=23.12.X.Y clickhouse-common-static=23.12.X.Y
    sudo apt-mark hold clickhouse-server clickhouse-client clickhouse-common-static
    sudo systemctl start clickhouse-server
    ```

    Команда `apt-mark hold` не даёт `apt` автоматически обновить ClickHouse до любой другой версии, в том числе более новой сборки той же линейки. Если нужной сборки нет в индексе репозитория, скачайте три пакета **в одной и той же** версии из [архива](https://packages.clickhouse.com/deb/pool/main/c/) и установите локальные `.deb` через `apt-get install`.

    Если ClickHouse запускается в Docker, указывайте тег сборки требуемой линейки, например `clickhouse/clickhouse-server:23.12.X.Y`, а не `latest`. `23.12.X.Y` замените на номер сборки из вывода `apt-cache madison`.

  1. Установите пароль для пользователя `default`. Для этого откройте файл `/etc/clickhouse-server/users.xml`, найдите в нём элемент `<password>`, находящийся по умолчанию в подразделе `<default>` раздела `<users>`. Между тегами элемента `<password>` введите новый пароль:

    ```
    <users>
    <default>
    <password>your-password</password>
    ```

  1. Разрешите пользователю `default` создавать других пользователей и выдавать им права. Для этого вам необходимо в открытом ранее файле `users.xml` найти элемент `<access_management>` и раскомментировать его, приведя к следующему виду:

    ```
    <access_management>1</access_management>
    ```

  1. В файле конфигурации `/etc/webim/db.json.d/db.json` допишите в объект `"dbs"` параметры БД **ClickHouse**:

    ```
    "stats_root":
      "default": {
        "type": "clickhouse",
        "host": "<DB IP address>",
        "port": 9000,
        "user": "default",
        "password": "<your-password>"
      }
    },
    "stats": {}
    ```

    Менеджмент БД со стороны сервера будет происходить через пользователя `default`. Позднее в **ClickHouse** будет создана учётная запись для Вашего аккаунта в **Webim**.

  1. Перейдите в [account config](https://webim.ru/kb/for-admins/service-pages/account-config-editor.html). Включите параметр `analytics_v2_chat_backend_population`, после чего перезагрузите **Chat Backend**.

  1. При необходимости включите параметр `analytics_v2_chat_backend_realtime_population` и задайте `analytics_v2_chat_backend_realtime_population_period` (в секундах), чтобы настроить период обновления realtime-данных.

  1. После перезагрузки активируйте нужные вам опции [account config](https://webim.ru/kb/for-admins/service-pages/account-config-editor.html) для отображения в меню разделов **ClickHouse**-статистики:

    * `analytics_v2_stats`: модуль **Статистики** на **ClickHouse**

    * `analytics_v2_dashboard`: **Панель управления** на **ClickHouse**

    * `analytics_v2_builder`: **Конструктор отчётов** на **ClickHouse**

    Ссылки на новую версию статистики заменят аналогичные ссылки на предыдущую версию.

## Отключение ClickHouse

Для отключения **ClickHouse** достаточно проделать следующие шаги:

  1. Удостоверьтесь, что опции [account config](https://webim.ru/kb/for-admins/service-pages/account-config-editor.html), отвечающие за **ClickHouse**-статистику, выключены (`analytics_v2_stats`, `analytics_v2_dashboard`, `analytics_v2_builder`, `analytics_v2_chat_backend_population` и `analytics_v2_chat_backend_realtime_population`).

    Параметр `analytics_v2_chat_backend_realtime_population_period` отдельно отключать не нужно: это числовая настройка периода, а не переключатель.

  1. В файле конфигурации `/etc/webim/db.json.d/db.json` удалите объекты `"stats_root"` и `"stats"`.

  1. Перезагрузите **Chat Backend**.

После этого вы можете отключить сервер **ClickHouse**:

```
sudo systemctl stop clickhouse-server
```

---

Источник: https://webim.ru/kb/devops/clickhouse-on-off.html
