Перейти к содержанию

Запуск сторонних сервисов#

В данном разделе описывается запуск баз данных в Docker-контейнерах. Они должны быть запущены перед подготовкой окружения и сервисами LP.

Сервисы мониторинга#

Сервисы мониторинга LUNA PLATFORM включают InfluxDB (используется по умолчанию), ClickHouse и Prometheus. Далее приведены инструкции по запуску баз данных InfluxDB и ClickHouse.

Информацию о выборе БД для мониторинга, а также о работе с Prometheus см. раздел "Мониторинг" руководства администратора.

При необходимости можно настроить визуализацию данных мониторинга с помощью сервиса LUNA Dashboards, включающего в себя настроенную систему визуализации данных Grafana. Кроме того, можно запустить инструмент для расширенной работы с логами Grafana Loki. См. инструкцию по запуску LUNA Dashboards и Grafana Loki в разделе "Визуализация мониторинга и логов с помощью Grafana".

Выберите предпочтительную базу данных и запустите ее с помощью соответствующей команды:

InfluxDB#

Примечание. Если вы не удаляли старый контейнер, пропустите данный шаг.

Для мониторинга сервисов LUNA PLATFORM требуется наличие запущенной базы данных Influx 2.0.8-alpine. Ниже приведены команды по запуску контейнера InfluxDB.

Дополнительную информацию см. в разделе "Мониторинг" в руководстве администратора.

Примечание. При необходимости можно использовать внешнюю БД InfluxDB 2.0.8-alpine. В таком случае можно пропустить команду ниже, однако вам придется задать пользовательские настройки для каждого сервиса LUNA PLATFORM.

Используйте команду docker run со следующими параметрами:

docker run \
-e DOCKER_INFLUXDB_INIT_MODE=setup \
-e DOCKER_INFLUXDB_INIT_BUCKET=default \
-e DOCKER_INFLUXDB_INIT_USERNAME=luna \
-e DOCKER_INFLUXDB_INIT_PASSWORD=password \
-e DOCKER_INFLUXDB_INIT_ORG=luna \
-e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=kofqt4Pfqjn6o0RBtMDQqVoJLgHoxxDUmmhiAZ7JS6VmEnrqZXQhxDhad8AX9tmiJH6CjM7Y1U8p5eSEocGzIA== \
-v /etc/localtime:/etc/localtime:ro \
-v /var/lib/luna/influx:/var/lib/influxdb2 \
--restart=always \
--detach=true \
--network=host \
--name influxdb \
dockerhub.visionlabs.ru/luna/influxdb:2.0.8-alpine

В команде выше создается стандартный бакет. Бакет для хранения данных мониторинга LUNA PLATFORM будет создан на этапе подготовки окружения с помощью утилиты Storages. Обратите внимание, что попытка подготовки окружения (создание бакета) для InfluxDB через утилиту Storages не будет успешной, если бакет уже существует и в команде подготовки окружения не укзан флаг -ii (игнорировать сущность если она уже есть).

ClickHouse#

Дополнительную информацию см. в разделе "Мониторинг" в руководстве администратора.

Примечание. При необходимости можно использовать внешнюю БД Clickhouse. В таком случае можно пропустить команду ниже, однако вам придется задать пользовательские настройки для каждого сервиса LUNA PLATFORM.

Используйте команду docker run со следующими параметрами:

docker run \
-e CLICKHOUSE_USER=luna \
-e CLICKHOUSE_PASSWORD=password \
-v /var/lib/luna/clickhouse/data:/var/lib/clickhouse \
-v /var/lib/luna/clickhouse/logs:/var/log/clickhouse-server \
-v /var/lib/luna/current/extras/conf/clickhouse_config.xml:/etc/clickhouse-server/config.xml \
--name=clickhouse \
--network=host \
--restart=always \
--detach=true \
--health-cmd="wget --no-verbose --tries=1 --spider http://localhost:8123/ping || exit 1" \
dockerhub.visionlabs.ru/luna/clickhouse-server:v.25.4.0

Обратите внимание, что по умолчанию логи ClickHouse сохраняются в файлы. Для этого примонтирована директория /var/lib/luna/clickhouse/logs.

Миграция с InfluxDB на ClickHouse#

Для перехода с InfluxDB на ClickHouse в уже развернутой LUNA PLATFORM и корректной подготовки окружения выполните приведенные ниже шаги.

Важно! Переход не включает перенос накопленных данных из InfluxDB в ClickHouse.

1․ Запустите контейнер Clickhouse командой, приведенной выше.

2․ Откройте конфигурационный файл Storages:

vi /var/lib/luna/current/extras/conf/storages_config.conf

и задайте в секции LUNA_MONITORING необходимые настройки для ClickHouse. Пример:

STORAGE_TYPE = clickhouse
SEND_DATA_FOR_MONITORING = 1
HOST = 127.0.0.1
PORT = 9000
HTTP_PORT = 8123
DB_USER = luna
DB_PASSWORD = password
DB_NAME = luna_monitoring
USE_SSL = 0
FLUSHING_PERIOD = 1 

3․ Отредактируйте секцию "LUNA_MONITORING" в настройках LUNA PLATFORM, чтобы сообщить системе какую базу данных для мониторинга необходимо использовать во всех сервисах (кроме сервиса Configurator - см. п.4).

Загрузить настройку можно одним из способов:

  • с помощью дамп-файла перед стартом LUNA PLATFORM:
vi /var/lib/luna/current/extras/conf/platform_settings.json
  • с помощью интерфейса сервиса Configurator после его непосредственного запуска. Для этого нужно перейти по адресу http://<your_server_ip_adress>:5070/, в поле "Setting name" ввести значение "LUNA_MONITORING", применить фильтры и задать значения в поле Value:
{
    "storage_type": "clickhouse",
    "send_data_for_monitoring": 1,
    "use_ssl": 0,
    "flushing_period": 1,
    "host": "127.0.0.1",
    "port": 9000,
    "http_port": 8123,
    "db_user": "luna",
    "db_password": "password",
    "db_name": "luna_monitoring"
}

4․ Поскольку настройки сервиса Configurator хранятся в его конфигурационном файле, для настройки мониторинга этого сервиса необходимо отредактировать монитируемый файл перед запуском контейнера:

/var/lib/luna/current/example-docker/luna_configurator/configs/luna_configurator_postgres.conf

В файле найдите секцию "LUNA_MONITORING" и задайте необходимые параметры подключения к ClickHouse.

5․ Выполните команду подготовки всего окружения (включая мониторинг) в разделе "Команда обновления окружения".

PostgreSQL#

Миграция с PostgreSQL 12 на PostgreSQL 16#

В LUNA PLATFORM v.5.53.0 обновился образ VisionLabs для PostgreSQL с 12 версии на 16 версию.

Если ранее использовался данный образ, то необходимо самостоятельно выполнить миграцию согласно официальной документации. При необходимости можно продолжить использовать PostgreSQL 12, указав образ "postgis-vlmatch:12" в команде запуска контейнера.

Монтирование данных PostgreSQL 12 из директории "/var/lib/luna/postgres" в контейнер для PostgreSQL 16 приведет к ошибке.

Запуск контейнера PostgreSQL#

Примечание. Если вы не удаляли старый контейнер, пропустите данный шаг.

Используйте следующую команду для запуска PostgreSQL.

docker run \
--env=POSTGRES_USER=luna \
--env=POSTGRES_PASSWORD=luna \
--shm-size=1g \
-v /var/lib/luna/postgresql/data/:/var/lib/postgresql/data/ \
-v /etc/localtime:/etc/localtime:ro \
--name=postgres \
--restart=always \
--detach=true \
--network=host \
--health-cmd="pg_isready -U luna -d postgres" \
dockerhub.visionlabs.ru/luna/postgis-vlmatch:16.1

-v /var/lib/luna/current/example-docker/postgresql/data/:/var/lib/postgresql/data/ — эта команда позволяет монтировать директорию "data" в контейнер PostgreSQL. Директория на сервере и директория в контейнере будут синхронизированы. Данные PostgreSQL из контейнера будут сохраняться в эту директорию.

--network=host — при необходимости изменить порт для PostgreSQL, следует изменить эту строку на -p 5440:5432. Здесь первый порт 5440 — локальный, а 5432 — порт в контейнере.

Все базы данных для сервисов LP следует создавать вручную, если используется уже установленный PostgreSQL.

Redis#

Примечание. Если вы не удаляли старый контейнер, пропустите данный шаг.

Примечание. При запуске Redis по умолчанию задан пароль lunapass. Крайне рекомендуется сменить пароль для повышения безопасности. Обратите внимание, что пароль должен быть указан в соответствующей настройке сервиса, например, в параметре "password" группы "LUNA_ATTRIBUTES_DB" сервиса Events. По умолчанию в дамп-файле уже прописан пароль lunapass.

Используйте следующую команду для запуска Redis.

docker run \
-v /etc/localtime:/etc/localtime:ro \
--name=redis \
--restart=always \
--detach=true \
--network=host \
dockerhub.visionlabs.ru/luna/redis:7.2 \
redis-server --requirepass lunapass