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

Запуск сервиса Call History:

./ecss-call-history.sh up

Остановка сервиса Call History без очистки docker container и docker network:

./ecss-call-history.sh stop

Остановка контейнеров сервиса Call History, с последующим удалением контейнеров, сетей, томов и образов, созданных с помощью команды ./ecss-call-history.sh up:

./ecss-call-history.sh down

Перезапуск сервиса Call History:

./ecss-call-history.sh restart

Проверка наличия обновлений в рамках текущей версии:

./ecss-call-history.sh pull

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

docker ps

Более подробно о командах смотрите в официальной документации по docker compose.

Логи

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

docker logs ecss-call-history-stable-call-history-db-1

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

docker logs ecss-call-history-stable-call-history-1

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

docker logs ecss-call-history-stable-call-history-1 --follow

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

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

docker ps

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

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

max-size: "50m" — максимальный размер файла лога;

max-file: "10" — максимальное количество файлов с логами указанного размера.

И перезапустить Call History Service:

./ecss-call-history.sh down
./ecss-call-history.sh up

После очистки контейнеров логи очищаются. Поэтому, перед остановкой Call History Service с очисткой контейнеров (./ecss-user-status.sh down), рекомендуется скопировать логи.

Файл конфигурации .env

#####################################################
# Global config
#####################################################
DOCKER_REPO="http://hub-ims.eltex-co.ru/"
TAG="2.12.0"
VOLUMES_DIR="./volumes"
RESTART_POLICY="always"



#####################################################
# call-history
#####################################################
ECSS_CALL_HISTORY_NODE_ENV="production"
# call-history DB
ECSS_CALL_HISTORY_DB_TAG="16.2-alpine3.18"
ECSS_CALL_HISTORY_DB_DATABASE="call_history"
ECSS_CALL_HISTORY_DB_USERNAME="root"
ECSS_CALL_HISTORY_DB_PASSWORD="password"
# call-history behavior
POLLING_INTERVAL=5000
POLLING_LIMIT=1000
LOG_LEVEL=log

# call-history cleanup
CALL_HISTORY_CLEANUP_THRESHOLD=1_month
CALL_HISTORY_CLEANUP_CRON= # default: every day at midnight

#####################################################
# External endpoints
#####################################################
# ecss-meeting DB
ECSS_MEETING_DB_HOST=my-ssw.org
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
# ecss-calls DB
ECSS_CALLS_DB_HOST=my-ssw.org
ECSS_CALLS_DB_PORT=3306
ECSS_CALLS_DB_NAME=ecss_calls_db
ECSS_CALLS_DB_USER=calls_db
ECSS_CALLS_DB_PASS=calls_db
ECSS_CALLS_DB_TIMEZONE=+07:00
# ecss-addressbook DB
ECSS_ADDRESS_BOOK_DB_HOST=my-ssw.org
ECSS_ADDRESS_BOOK_DB_PORT=3306
ECSS_ADDRESS_BOOK_DB_NAME=ecss_address_book
ECSS_ADDRESS_BOOK_DB_USER=address_book
ECSS_ADDRESS_BOOK_DB_PASS=address_book
# ecss databases charset
ECSS_MYSQL_CHARSET=utf8
# elph-chat-server
BEARER_TOKEN_PRIVATE_KEY=some-token-private-key
# sso token authorized issuer


AUTH_TOKEN_ISSUER=https://[elph-proxy]/elph/auth/realms/[elph-keycloak-realm]


DOCKER_REPO: URL Docker registry (репозиторий для образов контейнеров);
TAG: Версия образов;
VOLUMES_DIR: Директория для хранения данных контейнеров;
RESTART_POLICY: Политика перезапуска контейнеров;

ECSS_CALL_HISTORY_NODE_ENV: Окружение Node.js приложения;
ECSS_CALL_HISTORY_DB_TAG: Тег образа базы данных;
ECSS_CALL_HISTORY_DB_DATABASE: Имя БД истории вызовов;
ECSS_CALL_HISTORY_DB_USERNAME: Имя пользователя БД истории вызовов;
ECSS_CALL_HISTORY_DB_PASSWORD: Пароль пользователя БД истории вызовов;
POLLING_INTERVAL: Интервал опроса БД MySQL в миллисекундах;
POLLING_LIMIT: Лимит записей при опросе;
LOG_LEVEL: Уровень логирования задаётся с помощью значений: "fatal", "error", "warn", "log", "debug", "verbose" по снижению приоритета.

CALL_HISTORY_CLEANUP_THRESHOLD: Порог очистки истории звонков;
CALL_HISTORY_CLEANUP_CRON: Расписание очистки в формате cron;

ECSS_MEETING_DB_HOST: Хост базы данных ECSS MySQL MeetingDB;
ECSS_MEETING_DB_PORT: Порт базы данных ECSS MySQL MeetingDB;
ECSS_MEETING_DB_NAME: Имя базы данных ECSS MySQL MeetingDB;
ECSS_MEETING_DB_USER: Пользователь базы данных ECSS MySQL MeetingDB;
ECSS_MEETING_DB_PASS: Пароль базы данных ECSS MySQL MeetingDB;


ECSS_CALLS_DB_HOST: Хост базы данных ECSS MySQL CallsDB;
ECSS_CALLS_DB_PORT: Порт базы данных ECSS MySQLCallsDB;
ECSS_CALLS_DB_NAME: Имя базы данных ECSS MySQLCallsDB;
ECSS_CALLS_DB_USER: Пользователь базы данных ECSS MySQLCallsDB;
ECSS_CALLS_DB_PASS: Пароль базы данных ECSS MySQL CallsDB;
ECSS_CALLS_DB_TIMEZONE: Часовой пояс базы данных ECSS MySQL CallsDB;


ECSS_ADDRESS_BOOK_DB_HOST: Хост базы данных ECSS MySQL AddressBookDB;
ECSS_ADDRESS_BOOK_DB_PORT: Порт базы данных ECSS MySQL AddressBookDB;
ECSS_ADDRESS_BOOK_DB_NAME: Имя базы данных ECSS MySQL AddressBookDB;
ECSS_ADDRESS_BOOK_DB_USER: Пользователь базы данных ECSS MySQL AddressBookDB;
ECSS_ADDRESS_BOOK_DB_PASS: Пароль базы данных ECSS MySQL AddressBookDB;


ECSS_MYSQL_CHARSET: Кодировка баз данных;
BEARER_TOKEN_PRIVATE_KEY: Приватный ключ для подписи JWT токенов;
AUTH_TOKEN_ISSUER: URL сервера аутентификации (Keycloak) в формате https://my-elph-proxy.org/elph/auth/realms/my-elph-domain.

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

./ecss-call-history.sh stop && ./ecss-call-history.sh up

При использовании самоподписанных сертификатов необходимо добавить переменную NODE_TLS_REJECT_UNAUTHORIZED со значением "0" в docker-compose.yaml в блок environment сервиса call-history (располагается по пути ~/ecss-call-history/stable/docker-compose.yaml).

services:
  #####################################################
  # call-history
  #####################################################
  call-history:
    restart: ${RESTART_POLICY}
    image: ${DOCKER_REPO}/ecss/ecss-call-history/call-history:${TAG}
    environment:
      NODE_TLS_REJECT_UNAUTHORIZED: "0"
...
*Остальной docker-compose.yaml файл*


  • Нет меток