- Сервис онлайн-консультирования Webim
- -
- База знаний
- -
- Для девопсов
- -
- Мониторинг
- -
- Описание эндпоинтов мониторинга
-
-
-
- API сервиса Webim
- Webim Mobile SDK и мобильное приложение Webim для посетителя
- Встраивание чата Webim на сайт
- Идентификаторы посетителя
- Интеграция со сторонними сервисами
- Интерфейс виджета чата
- Логика обработки чатов
- Настройка сервиса Webim
- Операторы и РМО
- Отделы в сервисе Webim
- Панель приборов: ответы на вопросы
- Эксплуатация сервиса Webim
- Основные понятия и термины
- Сброс пароля
- Система управления ролями и правами доступа
- Шаг 1. Установка виджета Webim на сайт
- Шаг 2. Начальная настройка сервиса
- Шаг 3. Регистрация оператора
- Шаг 4. Подключение каналов общения
-
-
-
- 01. Обнаружение нового посетителя, ожидающего ответа
- 02. Выбор посетителя сайта из списка и начало диалога
- 03. Набор ответа посетителю, выбор шаблона
- 04. Запрос контактной информации у посетителя
- 05. Отправка файла посетителю
- 06. «Телепортация» пользователей
- 07. Переадресация диалога другому оператору
- 08. Отправка переписки на адрес электронной почты оператора
- 09. Назначение категории посетителю
- 10. Блокировка посетителя
- 11. Вставка гиперссылки в сообщение
- 12. Добавление cкрытых сообщений
- 13. Проверка орфографии
- Agent`s Handbook
- Горячие клавиши в РМО
- Загрузка файлов в диалог
- Исходящие диалоги
- Как включить оповещения в Google Chrome
- Очереди в РМО
- Работа с офлайн-обращениями в РМО
-
- Автоприглашения
- Активность сотрудников
- Алгоритмы назначения чатов
- Видимость диалогов
- Возможности и ограничения Webim в каналах общения
- Вход в систему
- Геолокация посетителей
- График работы
- Добавление кнопки Webim в E-mail
- Закрытие диалогов
- Логотип компании в заголовке чата
- Маршрутизация чатов между операторами и ботами
- Маска телефонного номера
- Настройка языков
- Общие настройки организации
- Ограничения по длине сообщений и полей
- Особенности функционала «Начать чат» в каналах общения
- Отделы
- Оценки
- Переназначение специализированных клавиш управления в РМО
- Приоритетные страницы
- Рассылки
- Регистрация операторов и назначение супервизоров
- Системные сообщения
- Список тайм-аутов
- Финансы
- Шаблоны ответов
-
-
- Встраивание административного интерфейса через iframe
- Горизонтальное масштабирование (кластеризация)
- Интеграция с почтовыми серверами
- Обработка файлов, загружаемых в чат
- Описание сервисных периодов Webim
- Параметры настроек сервера
- Редактор настроек аккаунта (account config)
- Редактор ресурсов
- Сетевые конфигурации сервиса Webim
-
-
-
- Webim Mobile SDK 3.0 для интеграции в мобильные приложения iOS
- Информация о выпусках (Release notes) – Webim Mobile SDK 3 для Android
- Информация о выпусках (Release notes) – Webim Mobile SDK 3 для iOS
- Справочник по Webim Mobile SDK – SDK для интеграции в мобильные приложения iOS (iPhone/iPad)
- Справочник по Webim Mobile SDK для интеграции в мобильные приложения Android
- Push-уведомления
- Webim Cordova Plugin
-
- Webim CRM postMessage Interface
- Как сделать ссылку кнопкой старта чата
- Маршрутизатор чатов
- Обработчики событий чата
- Процедура установки чата Webim на сайт в iframe
-
-
-
- Настройка интеграции с Facebook* (для версий до 10.0 включительно)
- Настройка интеграции с Facebook* с помощью приложения Webim
- Настройка интеграции с Instagram* с помощью приложения Webim
- Настройка приложения для интеграции с Facebook* (для версий до 10.0 включительно)
- Создание бизнес-аккаунта в Instagram*
- Создание страницы организации в Facebook*
- Skype
- Telegram
- Viber
- ВКонтакте
- Одноклассники
-
-
Описание эндпоинтов мониторинга
Список эндпоинтов
- /l/o/pingservice
- /l/a/pingservice
- /l/a/monitor
- /l/a/monitor/timer-stats
- /l/a/monitor/accounts-stat
- /l/a/monitor/zabbix/tornado
- /l/a/monitor/zabbix/channels
- /l/a/monitor/collected-to-store-objects
- /l/a/monitor/object-stats
- /l/i/instance-id
- /l/i/account-state?action=get_state
- /webim/service/monitor/get-tornado-ports.php
- /webim/service/monitor/get-all-env-list.php
- /webim/service/aux/check-php.php
- /webim/service/aux/check-tornados.php
- /webim/service/info.php
- /l/o/pingservice
- /l/a/pingservice
- /l/a/monitor
- /l/a/monitor/timer-stats
- /l/a/monitor/accounts-stat
- /l/a/monitor/zabbix/tornado
- /l/a/monitor/zabbix/channels
- /l/a/monitor/collected-to-store-objects
- /l/a/monitor/object-stats
- /l/i/instance-id
- /l/i/account-state?action=get_state
- /webim/service/monitor/get-tornado-ports.php
- /webim/service/monitor/get-all-env-list.php
- /webim/service/aux/check-php.php
- /webim/service/aux/check-tornados.php
- /webim/service/info.php
Структура URL для проверки следующая:
https://{hostname}{endpoint}
где {hostname}
— имя хоста, на котором размещается сервер Webim, вида {account}.webim.ru
для облачных клиентов и chat.mycompany.com
для hosted; {endpoint}
— эндпоинт мониторинга.
Для проверки для большинства эндпоинтов будет необходимо авторизоваться с сервисным логином и паролем Webim (базовая авторизация).
/l/o/pingservice
Данный эндпоинт используется для проверки работоспособности Chat.Backend
. Для проверки будет необходимо осуществить авторизацию в Agent Frontend. Авторизация осуществляется при помощи токена авторизации, передаваемого в файле cookie.
Для данного эндпоинта также необходимы query-параметры pinger-id
и ts
.
Пример curl-запроса:
curl --request GET \ --url 'https://companyname.webim.ru/l/o/pingservice?pinger-id=17595&ts=123' \ --header 'Connection: keep-alive' \ --header 'Cookie: WEBIM_LOCALE=ru; WEBIM_AUTH_TOKEN=SOME_TOKEN; WEBIM_ONLINE=true; WEBIM_URL=https%3A%2F%2Fcompanyname.webim.ru%2Fwebim; WEBIM_STATUS=online; _gcl_au=1.1.2083404752.1636631619; _ym_visorc=w; tmr_reqNum=21' \
В случае успеха сервер возвращает ответ:
200 {'result': 'ok'}
В противном случае вернёт ошибку сервера (5xx). Если пропущены query-параметры, то вернёт ошибку с кодом 4хх.
/l/a/pingservice
Для проверки будет необходимо авторизоваться в системе по сервисному логину и паролю.
Пример curl-запроса:
curl --request GET \ --url 'https://companyname.webim.ru/l/a/pingservice?=' \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz'
В случае успеха сервер возвращает ответ:
200 {'result': 'ok'}
В противном случае вернёт ошибку сервера (5xx).
/l/a/monitor
Для проверки будет необходимо авторизоваться в системе по сервисному логину и паролю.
Пример curl-запроса:
curl --request GET \ --url 'https://companyname.webim.ru/l/a/monitor?=' \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz'
Пример ответа:
{ "mainInfo": { "env": "wmdemo5", "port": 8267, "startTs": 1622648958.2465138, "startTime": "02-06-2021 18:49:18", "version": "10.3.4", "ubuntuVersion": "16.04", "branch": "release-10.3", "revision": "09523fed398a6351c595df37d6f5b1a2904952b7", "avgNTries": 0, "n": 0, "storingEnabled": true }, "host": "wmdemo5.webim.ru" }
Сервер возвращает ответ, содержащий следующие параметры:
Параметр | Тип | Пример | Описание |
---|---|---|---|
env | String | «wmdemo5» | Окружение (environment) Webim. |
port | Integer | 8267 | Номер порта. |
startTs | Float | 1622648958.2465138 | Время последнего рестарта бэкенда. |
startTime | String | «02-06-2021 18:49:18» | Время последнего рестарта бэкенда. |
version | String | «10.3.4» | Версия (сборка) Webim. |
ubuntuVersion | String | «16.04» | Версия ОС. |
branch | String | «release-10.3» | Ветка кода Webim. |
revision | String | «09523fed398a6351c595df37d6f5b1a2904952b7» | Хэш коммита, по которому сделана данная сборка Webim, в guid-формате. |
avgNTries | Integer | 0 | Среднее число попыток связи фронтэнда клиента с бэкендом Webim при использовании long polling — чем больше значение, тем хуже связь. |
n | Integer | 0 | Количество циклов обновления числа попыток связи фронтэнда клиента с бэкендом Webim. |
storingEnabled | Boolean | true | Возможна ли запись в базу данных. |
host | String | «wmdemo5.webim.ru» | Имя хоста Webim. |
/l/a/monitor/timer-stats
Для проверки будет необходимо авторизоваться в системе по сервисному логину и паролю.
Пример curl-запроса:
curl --request GET \ --url 'https://companyname.webim.ru/l/a/monitor/timer-stats?=' \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz'
Пример ответа:
{ "last_min": { "timer: hide_chats_if_necessary": { "count": 2, "execution_times": [ 4.220008850097656e-05, 4.3392181396484375e-05 ], "func_name": "t" }, "timer: recheck_all_session_subset": { "count": 1, "execution_times": [ 4.2438507080078125e-05 ], "func_name": "t" }, ... "failed": [ { "timer_name": "CachedBelongingToCurrentTornadoInstance update_data async", "func_name": "__update_data", "execution_time": 15.081258773803711, "ts": 1623233952.7438087 }, { "timer_name": "CachedPrevPeriodsStatistics update_data async", "func_name": "__update_data", "execution_time": 27.347047567367554, "ts": 1623246738.8386502 }, ... ] }
Сервер возвращает ответ, содержащий следующие параметры:
Параметр | Описание |
---|---|
last_min | Словарь текущих задач, запущенных в таймерах за последние 60 секунд. |
failed | Словарь задач, запущенных в таймерах и завершившихся ошибкой. |
Параметры словаря last_min
:
Параметр | Тип | Пример | Описание |
---|---|---|---|
<имя таймера>.count | Integer | 2 | Количество раз выполнения текущей задачи, запущенной в последние 60 секунд. |
<имя функции>.execution_times | Array of floats | [ 4.220008850097656e-05, 4.3392181396484375e-05 ] |
Массив, содержащий значения времени выполнения задачи (количество значений соответствует количеству раз выполнения задачи). |
<имя функции>.func_name | String | «t» | Наименование задачи, запущенной в таймере в течение последних 60 секунд. |
Параметры словаря failed
:
Параметр | Тип | Пример | Описание |
---|---|---|---|
timer_name | String | «CachedBelongingToCurrentTornadoInstance update_data async» | Имя таймера, в котором была запущена задача, завершившаяся ошибкой. |
func_name | String | «update_data» | Наименование задачи, запущенной в таймере и завершившейся ошибкой. |
execution_time | Float | 27.347047567367554 | Время, в течение которого задача пыталась быть выполнена. |
ts | Float | 1623246738.8386502 | ? |
/l/a/monitor/accounts-stat
Мониторинг данных аккаунта.
Для проверки будет необходимо авторизоваться в системе по сервисному логину и паролю.
Пример curl-запроса:
curl --request GET \ --url 'https://companyname.webim.ru/l/a/monitor/accounts-stat?=' \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz'
Пример ответа на запрос:
[ { "name": "TOTAL", "sessions_cnt": 10, "visible_sessions_cnt": 10, "alive_sessions_cnt": 10, "pages_cnt": 5, "alive_pages_cnt": 5, "online_operators_cnt": 6, "working_operators_cnt": 6, "chats_cnt": 10, "offline_chats_cnt": 1, "in_queue_cnt": 2, "failed_to_store_objects_cnt": 1, "collected_to_store_objects_cnt": 2, "being_stored_now_objects_cnt": 5, "being_stored_now_processed_objects_cnt": 11, "not_belongs_to_tornado_instance": 1 }, { "name": "companyname", "domain": "companyname.webim.ru", "sessions_cnt": 10, "visible_sessions_cnt": 10, "alive_sessions_cnt": 10, "pages_cnt": 5, "alive_pages_cnt": 5, "online_operators_cnt": 6, "working_operators_cnt": 6, "chats_cnt": 10, "offline_chats_cnt": 1, "in_queue_cnt": 2, "failed_to_store_objects_cnt": 1, "collected_to_store_objects_cnt": 2, "being_stored_now_objects_cnt": 5, "being_stored_now_processed_objects_cnt": 11, "not_belongs_to_tornado_instance": 1, "ignore_not_belongs_to_tornado_instance": false } ]
Сервер возвращает ответ, содержащий следующие параметры:
Параметр | Тип | Пример | Описание |
---|---|---|---|
sessions_cnt | Integer | 10 | Количество чат-сессий (VisitSession). |
visible_sessions_cnt | Integer | 10 | Количество отображаемых чат-сессий. |
alive_sessions_cnt | Integer | 10 | Количество alive чат-сессий. |
pages_cnt | Integer | 5 | Всего посещаемых страниц (VisitedPage). |
alive_pages_cnt | Integer | 5 | Количество посещаемых страниц (alive). |
online_operators_cnt | Integer | 6 | Количество операторов онлайн. |
working_operators_cnt | Integer | 6 | Количество работающих операторов. |
chats_cnt | Integer | 10 | Всего чатов. |
offline_chats_cnt | Integer | 1 | Всего офлайн-чатов. |
in_queue_cnt | Integer | 2 | Количество чатов в очереди. |
failed_to_store_objects_cnt | Integer | 1 | Количество объектов для сохранения в базу данных с ошибкой сохранения. |
collected_to_store_objects_cnt | Integer | 2 | Количество объектов в очереди. |
being_stored_now_objects_cnt | Integer | 5 | Количество объектов в процессе сохранения. |
being_stored_now_processed_objects_cnt | Integer | 11 | Количество обработанных объектов (в процессе). |
not_belongs_to_tornado_instance | Integer | 1 | Количество запросов, направленных не к тому экземпляру tornado. |
/l/a/monitor/zabbix/tornado
Для проверки будет необходимо авторизоваться в системе по сервисному логину и паролю.
Пример curl-запроса:
curl --request GET \ --url 'https://companyname.webim.ru/l/a/monitor/zabbix/tornado?=' \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz'
Пример ответа на запрос:
{ "sessions_cnt": 1, "working_operators_cnt": 0, "chats_cnt": 0, "accounts_cnt": 1, "failed_to_store_objects_cnt": 0, "collected_to_store_objects_cnt": 0 }
Сервер возвращает ответ, содержащий следующие параметры:
Параметр | Тип | Пример | Описание |
---|---|---|---|
sessions_cnt | Integer | 1 | Количество чат-сессий (VisitSession). |
working_operators_cnt | Integer | 0 | Количество работающих операторов. |
chats_cnt | Integer | 0 | Всего чатов. |
accounts_cnt | Integer | 1 | Количество активных аккаунтов Webim на данном бэкенде. |
failed_to_store_objects_cnt | Integer | 0 | Количество объектов для сохранения в базу данных с ошибкой сохранения. |
collected_to_store_objects_cnt | Integer | 0 | Количество объектов для сохранения в базу данных (в очереди). |
/l/a/monitor/zabbix/channels
Для проверки будет необходимо авторизоваться в системе по сервисному логину и паролю.
Пример curl-запроса:
curl --request GET \ --url 'https://companyname.webim.ru/l/a/monitor/zabbix/channels?=' \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz'
Пример ответа на запрос:
{ "channels": { "odnoklassniki": { "error_cnt": 1 }, "facebook": { "error_cnt": 1 } }
NB: в данном примере ответа на запрос присутствует поле "facebook"
, относящееся к корпорации Meta, чья деятельность (включая платформы Facebook и Instagram) признана экстремистской и запрещена в РФ.
Сервер возвращает ответ, содержащий словарь из каналов, по которым были возвращены ошибки. Словарь содержит следующие параметры::
Параметр | Тип | Пример | Описание |
---|---|---|---|
channels.<название канала>.error_cnt | Integer | 1 | Общее число ошибок (для каждого канала). |
/l/a/monitor/collected-to-store-objects
Возвращает словарь классов объектов на сохранение и количество ошибок по ним.
Для проверки будет необходимо авторизоваться в системе по сервисному логину и паролю с указанием аргументов.
Пример curl-запроса:
curl --request GET \ --url 'https://companyname.webim.ru/l/a/monitor/collected-to-store-objects?mode=stats&account_name=companyname&collector_name=collected_to_store&num=100' \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz'
/l/a/monitor/object-stats
Возвращает словарь системных объектов со статистикой ObjGraph по ним с лимитом 50 штук.
Для проверки будет необходимо авторизоваться в системе по сервисному логину и паролю.
Пример curl-запроса:
curl --request GET \ --url https://companyname.webim.ru/l/a/monitor/object-stats \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz'
/l/i/instance-id
Возвращает значение параметра TORNADO_INSTANCE_ID, который генерируется во время запуска Webim Chat Backend. Изменение значения параметра говорит о перезапуске Webim Chat Backend.
Для проверки будет необходимо авторизоваться в системе по сервисному логину и паролю.
Пример curl-запроса:
curl --request GET \ --url https://companyname.webim.ru/l/i/instance-id \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz'
Пример ответа:
9b5ad6b158354197bcfb949c55756c4c
/l/i/account-state?action=get_state
Возвращает параметр ‘blocked’ — заблокирован ли аккаунт (true/false).
Для проверки будет необходимо авторизоваться в системе по сервисному логину и паролю.
Пример curl-запроса:
curl --request GET \ --url 'https://companyname.webim.ru/l/i/account-state?action=get_state' \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz'
Пример ответа:
{ "blocked": false }
/webim/service/monitor/get-tornado-ports.php
Для проверки будет необходимо авторизоваться с сервисным логином и паролем Webim.
Возвращает список TCP-портов, на которых отвечает Webim Chat Backend.
Пример curl-запроса:
curl --request GET \ --url https://companyname.webim.ru/webim/service/monitor/get-tornado-ports.php \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz' \ --cookie 'WEBIM_LOCALE=ru; PHPSESSID=asur94kg5skdnm5kdg7sukc7f4'
Пример ответа:
[ "8364", "8366", "8378", "8239", "8371", "8320", "8290", "8280", "8264", "8263", "8370", "8266", "8267" ]
/webim/service/monitor/get-all-env-list.php
Возвращает словарь окружений на сервере. Содержит названия хостов, ip-адреса и окружения.
Для проверки будет необходимо авторизоваться с сервисным логином и паролем Webim.
Пример curl-запроса:
curl --request GET \ --url https://companyname.webim.ru/webim/service/monitor/get-all-env-list.php \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz' \ --cookie 'WEBIM_LOCALE=ru; PHPSESSID=asur94phj6kfhm5akfh4tkc7f4'
Пример ответа:
[ { "host": "s1", "env": "eta", "ip": "31.41.158.42" }, { "host": "s1", "env": "epsilon", "ip": "31.41.158.42" } ]
Сервер возвращает ответ, содержащий следующие параметры:
Параметр | Тип | Пример | Описание |
---|---|---|---|
host | String | «s1» | Название хоста. |
env | String | «eta» | Окружение (environment) Webim. |
ip | String | «31.41.158.42» | IP-адрес хоста. |
/webim/service/aux/check-php.php
Проверяет работоспособность всех PHP-пулов Webim. Результаты пишутся в файл php-check.log и my_php.log.
Для проверки будет необходимо авторизоваться с сервисным логином и паролем Webim.
Пример curl-запроса:
curl --request GET \ --url https://companyname.webim.ru/webim/service/aux/check-php.php \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz' \ --cookie 'WEBIM_LOCALE=ru; PHPSESSID=asur94phj3fdnm5aut1sukc7f4'
/webim/service/aux/check-tornados.php
Проверяет работоспособность всех Webim Chat Backend. Результаты пишутся в файл tornado-check.log и my_php.log.
Для проверки будет необходимо авторизоваться с сервисным логином и паролем Webim.
Пример curl-запроса:
curl --request GET \ --url https://companyname.webim.ru/webim/service/aux/check-tornados.php \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz' \ --cookie 'WEBIM_LOCALE=ru; PHPSESSID=asur94phj3fdnm5aut1sukc7f4'
/webim/service/info.php
Для проверки будет необходимо авторизоваться с сервисным логином и паролем Webim.
Пример curl-запроса:
curl --request GET \ --url https://companyname.webim.ru/webim/service/info.php \ --header 'Authorization: Basic d2FkbWluOm1lZ2FwYXNz' \ --cookie 'WEBIM_LOCALE=ru; PHPSESSID=asur94phj3fdnm5aut1sukc7f4'
Пример ответа:
array(12) { ["tornado port"]=> string(4) "8267" ["agent backend port"]=> string(4) "6015" ["account name"]=> string(7) "companyname" ["script location"]=> string(7) "companyname" ["tornado location"]=> string(0) "" ["server"]=> string(14) "s999.webim.ru " ["branch"]=> string(13) "release-10.3 " ["revision"]=> string(41) "09523fed398a6351c5kfh637d6f5b1a6875232b7 " ["version"]=> string(6) "10.3.4" ["https"]=> string(8) "https://" ["uptime"]=> string(71) " 21:48:59 up 36 days, 22:02, 0 users, load average: 1.62, 0.65, 0.35 " ["connections"]=> NULL }
Сервер возвращает ответ, содержащий следующие параметры:
Параметр | Тип | Пример | Описание |
---|---|---|---|
tornado port | String | «8267» | TCP/IP порт Webim Chat Backend. |
agent backend port | String | «6015» | TCP/IP порт Webim Agent Backend. |
account name | String | «companyname» | Название аккаунта Webim. |
script location | String | «companyname» | Имя PHP-окружения. |
tornado location | String | Имя окружения Chat Backend. | |
server | String | «s999.webim.ru» | Hostname сервера, на котором работает PHP. |
branch | String | «release-10.3» | Имя ветки с исходным кодом. |
revision | String | «09523fed398a6351c595df37d6f5b1a2904952b7» | Ревизия исходного кода. |
version | String | «10.3.4» | Версия Webim. |
https | String | «https://» | Протокол http/https. |
uptime | String | «21:48:59 up 36 days, 22:02, 0 users, load average: 1.62, 0.65, 0.35» | Время с момента старта ОС на сервере, на котором запущен Webim. |
connections | String | Соединения PHP-бэкенда с СУБД. |