Команды управления

Остановка Chat Server без очистки docker container и docker network:

./ecss-elph-chat-server.sh stop

Остановка Chat Server с очисткой docker container и docker network:

./ecss-elph-chat-server.sh down

Запуск Chat Server:

./ecss-elph-chat-server.sh up

Рестарт Chat Server:

./ecss-elph-chat-server.sh restart

Просмотр запущенных контейнеров:

docker ps



Логи

Для просмотра логов баз данных:

docker logs elph-chat-server-stable-mongo-1

Для просмотра логов сервера:

docker logs elph-chat-server-stable-server-1

Для просмотра логов в реальном времени добавить "--follow" в конце команды:

docker logs elph-chat-server-stable-server-1 --follow



Конфигурация

Конфигурация Chat Server хранится в файле ./elph-chat-server/stable/.env

Чтобы перейти в файл конфигурации введите команду:

<nano/vim/mcedit> elph-chat-server/stable/.env

# ELPH-CHAT-SERVER CONFIGFILE 2.5^
# Модули конфигурации расположены в порядке важности
# Без сконфигурированных параметров подключения к БД не запустится сервер
# Без нужных серверу параметров он откажется запускаться
# Без сконфигурированного провайдера аутентификации не будет доступа к учетным записям
# ...

# ######################## Docker ########################
# Источник docker-образов
DOCKER_REPO="hub-ims.eltex-co.ru"
# Версия docker-образов
TAG="2.5.0"
# ---------- Менять не нужно ----------
NGINX_TAG=1.23.3-${TAG}
MONGO_TAG=4.4-${TAG}
SERVER_TAG=${TAG}
VOLUMES_DIR="./volumes"

DEPLOY_PLATFORM=docker
# ########################

# ######################## Параметры подключения к mongodb ########################
MONGO_URL=mongodb://mongo:27017/elph?replicaSet=rs01
MONGO_OPLOG_URL=mongodb://mongo:27017/local?replicaSet=rs01
# ########################

# ####################### Для работы сервера ########################
# ---------- Необходимо сконфигурировать ----------
# Публичный адрес сервера (по которому он будет доступен через ecss-elph-proxy)
PUBLIC_URL="https://test-proxy.eltex"
# ---------- Менять не нужно ----------
ROOT_URL="https://test-chat.eltex:3443"
PORT=3000
NODE_PATH=/usr/bin/node
NODE_ENV=production
# ########################

# ######################## Авторизация на Chat Server ########################
# Chat Server может работать в режиме, когда он сам выписывает токен
# Приватный ключ для подписи токена пользователя (!!! Должен быть изменен с дефолтного значения и одинаков на всех сервисах !!!)
BEARER_TOKEN_PRIVATE_KEY='sometokensometokensometokensometokensometokensometokensometokensometokensometoken'
# Или может работать в режиме работы с чужим токеном Openid connect
# В таком случае, должен быть указан адрес сервера, ключам которого должен доверять сервис
# Адрес сервиса SSO-авторизации
AUTH_TOKEN_ISSUER='http://auth.eltex:5000'

# ######################## Аутентификация через ECSS10 ########################
# Параметры подключения к ecss-web-api (ecss-core)
ECSS_CORE_HOST="test-ecss-core.eltex"
# ---------- Опционально ----------
ECSS_CORE_DOMAIN="test_domain"
ECSS_CORE_USE_DEFAULT_DOMAIN="true"
ECSS_CORE_PORT=8086
ECSS_CORE_SERVICE=call
# ########################

# ######################## Получение доп. информации о пользователе (аватар/дисплейнейм) ########################
# Параметры подключения к ecss-mysql (БД adress_book — для синхронизации display name и аватара пользователя)
ECSS_ADDRESSBOOK_HOST="test-ecss-core.eltex"
# ---------- Опционально ----------
ECSS_ADDRESSBOOK_PORT=3306
ECSS_ADDRESSBOOK_DB_USER="ecss_chat"
ECSS_ADDRESSBOOK_DB_PASSWORD="ecss_chat"
ECSS_ADDRESSBOOK_DB_NAME="ecss_address_book"
ECSS_ADDRESSBOOK_DB_CONNECTION_LIMIT=10

# Параметры подключения к ecss-mysql (БД meeting-db — для работы чатов телеконференций)
# По умолчанию идентичен ECSS_ADDRESSBOOK_HOST. Если нужно поменять, то нужно отредактировать docker-compose.yml
ECSS_MEETING_DB_PORT=3306
ECSS_MEETING_DB_NAME=ecss_meeting_db
ECSS_MEETING_DB_USER=ecss_meeting_db
ECSS_MEETING_DB_PASS=ecss_meeting_db

# При входе, если последнее обновление было больше чем это, то обновить данные
UPDATE_ADDRBOOK_AVATAR_EVERY_MS=80000

# Префикс перенаправления на ecss-elph-api
ECSS_AVATAR_URL_ORIGIN_PREFIX="https://test-proxy.eltex/elph_api/loadlocal/"
# ########################


# ######################## Разметка сообщений (markdown, katex, autolink) ########################
# Разрешенные "подозрительные домены"
# Чтобы подсвечивались ссылки в сообщениях на ресурсы, которые не являются публичными доменами, нужно внести их в список
# список (через запятую) пример: domain.asd,evil.troian.loc
MESSAGEPARSER_AUTOLINK_CUSTOM_DOMAINS=eltex.loc
# ########################

# ######################## Тех. поддержка (сбор обратной связи, отчетов/клиентских логов) ########################
# ---------- Опционально ----------
# Включить создание supportuser
OVERWRITE_SETTING_Support_User=true
OVERWRITE_SETTING_Support_User_Welcome_Message="Добро пожаловать в чат технической поддержки!"
OVERWRITE_SETTING_Support_User_Password="password"
OVERWRITE_SETTING_Support_User_Name="Поддержка Elph"
# ########################

# ######################## Системные отчеты использования системы ########################
# ---------- Опционально ----------
### Разрешить системе отправлять сообщения пользователям (нужно для отправки отчета о системе)
SYSTEM_ADMIN_MESSAGES=true
### Генерировать отчет использования системы
SYSTEM_REPORTS_ENABLE=true
### Отправлять отчет каждые (<число>_<week|month>)
SYSTEM_REPORTS_INTERVAL="1_week"
# ########################

# ######################## Системное уведомление в чате пользователей о заполненности диска на сервере базы данных ########################
# ---------- Опционально ----------
### Включить уведомления
USED_SPACE_REPORTER_ENABLE=true
### Отправлять уведомления, если дисковое пространство заполнено больше чем на N%
USED_SPACE_REPORTER_PERCENT_LIMIT=85
USED_SPACE_REPORTER_INTERVAL=1_day

# ######################## Специфичная настройка ########################
# ---------- Опционально ----------
# Разрешить работу с не подтвержденными SSL сертификатами (самоподписанные/локальные/и т. д.)
NODE_TLS_REJECT_UNAUTHORIZED=0
# Слать push-уведомления через apple-сервер либо через песочницу apple (false), на работу android push-уведомлений не влияет
OVERWRITE_SETTING_Push_production=true
# Настройка времени жизни токена авторизации в секундах (по умолчанию — час)
JWT_CUSTOM_EXP=
# ---------- Менять не нужно ----------
OVERWRITE_SETTING_API_CORS_Origin='*'
OVERWRITE_SETTING_API_Enable_CORS=true
OVERWRITE_SETTING_Iframe_Restrict_Access=false
OVERWRITE_SETTING_Initial_Channel_Created=true
# ########################

# NGINX_ACCESS_LOGS=./log/ecss-chat-server.access.log
# Для монтирования своих сертификатов (по умолчанию — самоподписанные)
# NGINX_CERTS=
# NGINX_RPIVATE_SSL_KEYS=

# ######################## Фильтры для логов ########################
# Определение здесь значений отключит все логгеры, кроме тех, что здесь описаны.
# Для нормальной работы оставить пустыми, если нет необходимости отлаживать.
# ---------- Опционально ----------
### Будут выводиться логи только из определенных здесь лейблов.
LOGGER_LOG_LABELS=
### Будут выводиться логи только с определенным здесь уровнем.
LOGGER_LOG_LEVEL=
# ########################

# общая шина
RABBITMQ_URL="amqp://guest:guest@test-status-service.eltex:5672/"

# Использовать в дефолтных аватарах первую букву имени
OVERWRITE_SETTING_UI_Use_Name_Avatar=true

# Настройка поиска в чате по сообщениям
# true — поиск по шаблону, включая спецсимволы и сложные комбинации
# false — полнотекстовый поиск, работает быстрее поиска по шаблону, поиск только целых слов, игнорирует регистр и спец символы
OVERWRITE_SETTING_Message_AlwaysSearchRegExp=true


Основные конфигурационные параметры

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

Обязательный к изменению параметр: BEARER_TOKEN_PRIVATE_KEY — секретный ключ для генерации токена авторизации. По умолчанию стоит демонстрационное значение, которое важно поменять для обеспечения безопасности сервера. Значением может выступать любая комбинация символов >256 бит (примерно 32 символа). Значение данного параметра должно быть одинаковое в конфигурационном файле Chat Server и на всех сервисах: User Status Service, Call History Service и Address Book Service.

PUBLIC_URL=https://<ip_address_chat_server> #Внешний адрес Chat Server, по которому он будет доступен для пользователей.

ROOT_URL="https://test-chat.eltex:3443" #Адрес хоста Chat Server

ECSS_CORE_HOST=<ip_address_elph_api> #Адрес ядра ECSS

ECSS_ADDRESSBOOK_HOST=<ip_address_mysql> #Адрес ecss-mysql

ECSS_AVATAR_URL_ORIGIN_PREFIX=https://<ip_address_elph_proxy>/elph_api/loadlocal/ #Адрес Elph-API для доступа к аватарам, подробнее об этом в разделе «Настройка аватаров».

RABBITMQ_URL=RABBITMQ_URL="amqp://guest:guest@[rabbitMQ_address]:5672/" # Адрес брокера RabbitMQ. Начиная с версии 2.4.0, поставляется совместно с User Status Service.

Если используется один стандартный домен, то производится настройка параметров ECSS_CORE_USE_DEFAULT_DOMAIN и ECSS_WEB_API_DOMAIN:

ECSS_CORE_USE_DEFAULT_DOMAIN="true" #Все пользователи без домена при логине будут отправляться на стандартный домен. При "false" Chat Server будет ожидать имя домена в авторизационных данных от клиента.

ECSS_WEB_API_DOMAIN=<domain_name> #Имя домена ECSS, с которым будет работать Chat Server. При ECSS_CORE_USE_DEFAULT_DOMAIN="false" допускается оставить значение параметра ECSS_WEB_API_DOMAIN пустым.



Настройка системных отчетов использования системы

Отчеты по использованию системы по умолчанию настроены на отправку отчетов раз в неделю пользователю supportuser.

Список интервалов, поддерживаемых для отправки отчетов: weeks, months. Указывать меньший интервал не рекомендуется.

SYSTEM_REPORTS_INTERVAL="1_week"

Пример отчета использования системы:



Уведомления о заполненности диска на сервере базы данных

Список пользователей, получающих отчет, настраивается аналогично настройке системных отчетов использования системы (USED_SPACE_REPORTER_SUBSCRIBERS_USERNAMES).

Список интервалов поддерживаемых для отправки отчетов: day, weeks, months. Указывать меньший интервал не рекомендуется.

USED_SPACE_REPORTER_PERCENT_LIMIT — процент заполненности диска, при достижении которого начинают отправляться уведомления. По умолчанию равен 85. При заполненности диска менее указанного процента, отчеты о заполненности приходить не будут.

USED_SPACE_REPORTER_INTERVAL=1_day
USED_SPACE_REPORTER_PERCENT_LIMIT=85

Пример уведомления о заполненности диска:

Остальные параметры являются опциональными. Изменять их необходимо в случае, если используется нестандартная схема развёртывания ECSS-10.

Обратите внимание на архитектуру: Chat Server должен иметь доступ к ecss-mysql, иначе не будут работать аватары и имена пользователей в чате. Для этого настройте маску доступа к mysql.

Введите команду:

dpkg-reconfigure ecss-mysql

Откроется диалоговое окно с вопросом о маске, например, для доступа всех IP-адресов можно задать маску: %.%.%.%.

Более подробно про настройку ecss-mysql можно почитать в разделе «Настройка SSW для работы c Elph».



Сетевые окончания

3443 — https-порт для доступа к Chat Server.



Логирование

Начиная с версии 2.5.0, добавлена ротация логов.

По умолчанию пишутся 10 файлов по 50 Мб. Логи расположены в /var/lib/docker/containers/<container>/.

Вывести список контейнеров можно командой:

docker ps

Для настройки параметров ротации нужно отредактировать docker-compose.yaml, расположенный в elph-chat-server/stable/. В данном файле под каждый контейнер отведен свой блок настроек:

    logging:
      driver: "json-file" 
      options:
        max-size: "50m" 
        max-file: "10" 

И перезапустить Chat Server:

./ecss-elph-chat-server.sh down
./ecss-elph-chat-server.sh up

После очистки контейнеров логи очищаются. Поэтому, перед остановкой Chat Server с очисткой контейнеров (./ecss-elph-chat-server.sh down), рекомендуется скопировать логи.


  • Нет меток