Запуск сторонних сервисов#
В данном разделе описывается запуск баз данных в 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