API и логирование IVA CS

API-документация

Для документирования API используется Swagger.

Swagger-описание — это файл (YAML или JSON) содержащий API-спецификацию.

Для доступа к Swagger необходимо перейти по адресу:

  • для формирования json-файла: https://<IP_address IVA CS>/api/v1/swagger.json

  • для формирования yaml-файла: https://<IP_address IVA CS>/api/v1/swagger.yaml

где <IP_address IVA CS> — IP-адрес сервера телефонии IVA CS

Логи сервисов логики SWL

Логи сервисов логики находятся в каталоге /var/log/ivasw.

Файл логов Описание

swl-auth.log

сервис аутентификации для WebSocket и REST

swl-backend.log

бэкенд-сервис: обработка запросов от API, работа с базой данных

swl-call.log

сервис обработки VoIP-вызовов: входящие звонки, маршрутизация, redirect, feature access code

swl-dtmf.log

сервис обработки сигналов DTMF, IVR-меню

swl-ldap.log

сервис синхронизации / аутентификации с LDAP

swl-location.log

сервис аутентификации / регистрации клиентских устройств (терминалов)

swl-notify.log

сервис отправки уведомлений на электронную почту (email)

swl-provision.log

сервис автоконфигурирования клиентских устройств (терминалов)

swl-registry.log

Service Registry — мониторинг / контроль запущенных сервисов логики, взаимодействие с ITS (конфигурирование, сбор загрузки сервисов)

swl-report.log

сервис генерирования отчетов по расписанию (журнал вызовов CDR)

swl-rest.log

сервис REST API (приём запросов с их последующей передачей в swl-backend)

swl-socket.log

сервис WebSocket API (приём запросов с их последующей передачей в swl-backend)

swl-status.log

сервис обработки статусов терминалов (BLF)

swl-storage.log

сервис хранения файлов (аудио, записи звонков, подготовленные файлы CDR, архивы с логами)

swl-sync.log

сервис синхронизации зон

Логи сервисов ITS

Логи сервисов ITS находятся в каталоге /var/log/ivasw/its.

Файл логов Описание

its*.log

общий лог сервисов ITS (хранение логов осуществляется с ротацией)

Дополнительные сервисы

/var/log/ivasw/ivasw-nats.log

лог сервиса NATS-Streaming

/var/log/postgresql/*

логи PostgreSQL-сервера

/var/log/nginx/*

логи nginx

/var/log/haproxy.log*

логи haproxy

/var/log/daemon.log*

стандартный системный лог сообщений сервисов

Настройка

Сервисы логики SWL

Для сервисов логики по умолчанию установлен уровень логирования INFO.

Для того чтобы изменить уровень логирования, в окружение запуска сервисов логики необходимо добавить переменную LOGLEVEL с указанием требуемого уровня.

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

Уровень логирования Тип

DEBUG

подробные сообщения, используемые во время отладки

INFO

информационные сообщения о том, что происходит во время работы

WARN

предупреждение о возникновении нежелательной ситуации

ERROR

ошибки, при которых система способна продолжать функционировать

FATAL

фатальные ошибки, в большинстве случаев приводящие к завершению работы

PANIC

ошибки, приводящие к немедленному окончанию работы

Сервисы ITS

Параметры уровней логирования указываются для каждого сервиса в конфигурации json при помощи следующего ключа:

optional\_base.log\_severity

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

{
    "zuri": "zrpc://nats\_backend/127.0.0.1:7900",
    "config": {
        "nats": {
            "url": "@NATS\_URL@",
            "cluster": "@NATS\_CLUSTER@",
            "client": "@NATS\_CLIENT@",
            "reconnect\_sec": 1,
            "timeout\_sec": 5
        }
    },
    "optional\_base": {
        "log\_severity": "DEBUG",
        "zrpc\_timeout\_sec": 1
    }
},

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

Уровень логирования Тип

DEBUG

сообщения, используемые во время отладки

TRACE

более подробные сообщения об ошибках, чем на уровне DEBUG

INFO

информационные сообщения о том, что происходит во время работы

WARNING

предупреждение о возникновении нежелательной ситуации

ERROR

ошибки, при которых система способна продолжать функционировать

CRITICAL

фатальные ошибки, в большинстве случаев приводящие к завершению работы

Изменение уровней логирования

В web-интерфейсе доступна возможность изменения уровней логирования для сервисов логики SWL и сервисов ITS.

Чтобы изменить уровень логирования, необходимо:

  1. раздел Обзор → вкладка Кластер

  2. выбрать сервис → Уровень логирования → выбрать уровень логирования в выпадающем списке

    Уровень логирования

Для сервисов логики SWL доступны также следующие варианты изменения уровня логирования, без необходимости их дальнейшего перезапуска:

  • API: Log

  • отправка системного сигнала конкретному процессу:

Сигнал Действие

pkill -SIGUSR1 swl-call

увеличить уровень логирования. Например, если выбран INFO, то переключить на DEBUG

pkill -SIGUSR2 swl-call

уменьшить уровень логирования. Например, если выбран DEBUG, то переключить на INFO