Сбор статистических и информационных данных Платформы IVA MCU
Сбор статистических и информационных данных необходим для более эффективного управления Платформой IVA MCU. Сбор данных возможен через:
Сбор данных с помощью VictoriaMetrics
В Платформе IVA MCU в качестве встроенной системы мониторинга используется VictoriaMetrics, метрики из которой можно использовать и просматривать. В метриках VictoriaMetrics содержатся все данные, которые находятся в разделе Мониторинг web-панели администрирования. Для сбора метрик на внешнем сервере необходимо выполнить следующие действия:
-
установить Prometheus и VictoriaMetrics
-
в Prometheus: настроить хранение метрик Prometheus в VictoriaMetrics
-
в Prometheus: настроить Federation
В match[] можно указать следующие параметры (job) Платформы IVA MCU: victoria, node, ivcs Пример настройки Federation:
- job_name: 'federate' scrape_interval: 15s # Интервал сбора метрик honor_labels: true # Сохранять оригинальные метки metrics_path: /federate # Путь к эндпойнту федерации params: match[]: # Фильтр для выбора метрик - '{job="victoria"}' - '{job="node"}' - '{job="ivcs"}' -
в Prometheus: чтобы всем метрикам, собираемым с серверов IVA MCU, задать один IP-адрес, необходимо настроить метки labels для целевых объектов targets, в которых указан сервер Платформы IVA MCU, и metric_relabel_configs
Пример настройки:
static_configs: - targets: ['<ip_address_IVA>:11650'] # Список targets labels: # Метки для всех метрик targets в этом блоке new_label: <label_name> metric_relabel_configs: # Правила перемаркировки метрик - source_labels: [new_label, instance] target_label: instance regex: '(.*)<label_name>(.*);(.*)localhost:(.*)' replacement: '<ip_address_IVA>:$4' action: replaceгде: <ip_address_IVA> — IP-адрес Платформы IVA MCU
<label_name> — имя лейбла (метки), используемое для добавления метаданных к метрикам
На стороне Платформы IVA MCU доступ к метрикам VictoriaMetrics осуществляется через порт 11650 TCP, для открытия которого необходимо:
-
открыть файл /etc/iptables-config/ipv4/filter.d/0001-custom, выполнив команду:
sudo nano /etc/iptables-config/ipv4/filter.d/0001-custom -
добавить в файл /etc/iptables-config/ipv4/filter.d/0001-custom следующую запись:
-A INPUT -p tcp -m tcp –dport 11650 –-source IP_ADDRESSES -m comment --comment "VictoriaMetrics" -j ACCEPTгде IP_ADDRESSES — IP-адреса, с которых разрешен доступ до VictoriaMetrics
-
сохранить изменения и закрыть файл /etc/iptables-config/ipv4/filter.d/0001-custom
-
перезапустить сервис iptables-config.service, выполнив команду:
sudo systemctl restart iptables-config.service -
проверить статус сервиса iptables-config.service, выполнив команду:
sudo systemctl status iptables-config.serviceПример вывода:
Loaded: loaded (/lib/systemd/system/iptables-config.service; enabled; vendor preset: enabled) Active: active (exited) since Mon 2024-12-16 15:23:33 MSK; 56s ago Process: 8473 ExecStart=/usr/sbin/iptables-config start (code=exited, status=0/SUCCESS) Main PID: 8473 (code=exited, status=0/SUCCESS) CPU: 16ms Dec 16 15:23:33 ivcs-main systemd[1]: iptables-config.service: Succeeded. Dec 16 15:23:33 ivcs-main systemd[1]: Stopped iptables persister. Dec 16 15:23:33 ivcs-main systemd[1]: Starting iptables persister... Dec 16 15:23:33 ivcs-main systemd[1]: Finished iptables persister. -
убедиться, что на настраиваемом сервере присутствуют записи с портом 11650 TCP с разрешенными IP-адресами, выполнив команду:
sudo iptables -SВ выводе команды должны присутствовать строки с указанием порта 11650 TCP и перечнем IP-адресов, с которых разрешен доступ к VictoriaMetrics.
Пример вывода команды:
-A INPUT -s IP_ADDRESS -p tcp -m tcp --dport 11650 -m comment --comment "VictoriaMetrics" -j ACCEPTгде IP_ADDRESS — IP-адрес, с которого разрешен доступ до VictoriaMetrics
-
сохранить изменения, выполнив команду:
Если Платформа IVA MCU установлена на сервер с ОС Astra Linux, то команду sudo iva-cli live save-changes выполнять не нужно sudo iva-cli live save-changes
Сбор данных с помощью syslog
Платформа IVA MCU позволяет отправлять события журналов аудита и запросов в несколько SIEM-систем. Чтобы отправлять события журналов, необходимо настроить SIEM-коннекторы в web-панели администрирования.
SIEM-коннекторы можно настраивать для разных типов коннекторов, разных уровней логирования журнала аудита и для разных типов событий.
Более подробная информация:
-
настройка SIEM-коннекторов в разделе SIEM-коннекторы
-
формат syslog-сообщений в Платформе IVA MCU — в документе Формат syslog-сообщений
Сбор данных с помощью Zabbix-агента
Zabbix-агенты разворачиваются на наблюдаемых целях для активного мониторинга локальных ресурсов и приложений (статистика жестких дисков, памяти, процессоров и т. д.). Информацию о метриках, собираемых Zabbix-агентом, можно получить в официальной документации Zabbix.
Настройка Zabbix-агента в Платформе IVA MCU описана в разделе Настройка Zabbix для мониторинга Платформы.
| В Платформе IVA MCU, начиная с версии 23.0, используется Zabbix-agent 2 взамен ранее используемого Zabbix-agent, который был удален из системы |
Переход на Zabbix-agent2 описан в соответствующем разделе
| Рекомендуется настраивать Zabbix через web-панель администрирования |
Проверка версии Zabbix приведена в соответствующем разделе
Сбор данных с помощью SNMP
Платформа IVA MCU поддерживает интеграцию с внешними системами мониторинга по протоколу SNMP (1−3 версии). По данному протоколу внешняя система может собирать часть данных мониторинга из Платформы IVA MCU, а Платформа IVA MCU может отправлять определенные события (traps) во внешнюю систему.
Информация о настройке SNMP приведена в разделе Настройка SNMP.
Перечень доступных MIB:
-
IVCS-MIB — содержит информацию, специфичную для Платформы IVA MCU. Актуальная информация о IVCS-MIB и документация расположена в файле /usr/share/snmp/mibs/IVCS-MIB. В данном MIB описываются все MIB объекты (objects) и определенные события (traps), специфичные для Платформы IVA MCU
-
IF-MIB — содержит информацию о сетевых интерфейсах
-
HOST-RESOURCES-MIB — содержит информацию о ресурсах хоста (CPU, память и т. д.)
-
информация о других MIB доступна в директории /usr/share/snmp/mibs
Описание IVCS-MIB
IO-информация о каждом дисковом устройстве
| Название | OID метрики со значением | Описание | Дополнительная информация |
|---|---|---|---|
disksTableEntry |
.1.2.643.6.46.1.1.2.1.1.2 |
Имя дискового устройства |
-R-- String deviceName(2) Size: 1..32 |
.1.2.643.6.46.1.1.2.1.1.3 |
Количество объединенных запросов на чтение, которые были поставлены в очередь, в секунду |
-R-- Integer32 readRequestsMergedPerSecond(3) Textual Convention: Float |
|
.1.2.643.6.46.1.1.2.1.1.4 |
Количество объединенных запросов на запись, которые были поставлены в очередь, в секунду |
-R-- Integer32 writeRequestsMergedPerSecond(4) Textual Convention: Float |
|
.1.2.643.6.46.1.1.2.1.1.5 |
Количество (после объединения) выполняемых запросов на чтение в секунду |
-R-- Integer32 readRequestsCompletedPerSecond(5) Textual Convention: Float |
|
.1.2.643.6.46.1.1.2.1.1.6 |
Количество (после объединения) выполняемых запросов на запись в секунду |
-R-- Integer32 writeRequestsCompletedPerSecond(6) Textual Convention: Float |
|
.1.2.643.6.46.1.1.2.1.1.7 |
Количество считываемых секторов в секунду |
-R-- Integer32 sectorsReadPerSecond(7) Textual Convention: Float |
|
.1.2.643.6.46.1.1.2.1.1.8 |
Количество записываемых секторов в секунду |
-R-- Integer32 sectorsWrittenPerSecond(8) Textual Convention: Float |
|
.1.2.643.6.46.1.1.2.1.1.9 |
Средний размер (в секторах) выданных запросов |
-R-- Integer32 averageSizeOfRequests(9) Textual Convention: Float |
|
.1.2.643.6.46.1.1.2.1.1.10 |
Средняя длина очереди выданных запросов |
-R-- Integer32 averageQueueLength(10) Textual Convention: Float |
|
.1.2.643.6.46.1.1.2.1.1.11 |
Среднее время (в миллисекундах) обслуживания поступающих запросов ввода-вывода. Включает время нахождения запросов в очереди и время их обслуживания |
-R-- Integer32 averageWaitTime(11) Textual Convention: Float |
|
.1.2.643.6.46.1.1.2.1.1.12 |
Среднее время (в миллисекундах) обслуживания поступающих запросов на чтение. Включает время нахождения запросов в очереди и время их обслуживания |
-R-- Integer32 averageWaitTimeRead(12) Textual Convention: Float |
|
.1.2.643.6.46.1.1.2.1.1.13 |
Среднее время (в миллисекундах) обслуживания поступающих запросов на запись. Включает время нахождения запросов в очереди и время их обслуживания |
-R-- Integer32 averageWaitTimeWrite(13) Textual Convention: Float |
|
.1.2.643.6.46.1.1.2.1.1.14 |
Среднее время обслуживания (в миллисекундах) для запросов ввода-вывода, которые были отправлены устройству. Внимание! Данное поле недостоверно и будет удалено в будущей версии sysstat |
-R-- Integer32 averageServiceTime(14) Textual Convention: Float |
|
.1.2.643.6.46.1.1.2.1.1.15 |
Процент процессорного времени, в течение которого к устройству были направлены запросы ввода-вывода (использование пропускной способности устройства). Приближение значения к 100 %, может указывать на возможность возникновения узких мест в производительности |
-R-- Integer32 utilization(15) Textual Convention: Float |
Информация об основных процессах IVA MCU
| Название | OID метрики со значением | Описание | Дополнительная информация |
|---|---|---|---|
processesTableEntry |
.1.2.643.6.46.1.1.3.1.1.2 |
Справочный индекс для каждой группы отслеживаемых процессов (внутренний) |
-R-- EnumVal processId(2) Textual Convention: IvaProcess Values: audiodecoder(1), audioencoder(2), audiomixer(3), conversion(4), coturn(5), dtmfgenerator(6), filesink(7), filesource(8), imagesource(9), imp(10), ivcsserver(11), logger(12), media(13), monitoring(14), nginx(15), nginxmedia(16), voip(17), postgres(18), registry(19), rtmpsink(20), rtmpsource(21), scvideodecoder(22), scvideoencoder(23), videocomposer(24), videoconverter(25), videoencoder(26), vncsink(27), vvoiprtpgw(28), webrtcrtpgw2(29) |
.1.2.643.6.46.1.1.3.1.1.3 |
Имя процесса |
-R-- String processName(3) Size: 1..32 |
|
.1.2.643.6.46.1.1.3.1.1.4 |
Текущее количество запущенных процессов с указанным именем и всеми их дочерними процессами |
-R-- Gauge processesCount(4) Range: 0..65535 |
|
.1.2.643.6.46.1.1.3.1.1.5 |
Текущее количество потоков, принадлежащих процессу |
-R-- Gauge threadsCount(5) Range: 0..65535 |
|
.1.2.643.6.46.1.1.3.1.1.6 |
Количество открытых файловых дескрипторов (FDs) |
-R-- Gauge fds(6) Range: 0..65535 |
|
.1.2.643.6.46.1.1.3.1.1.7 |
Общее количество виртуальной памяти, выделенной запущенными сущностями этого процесса и всеми его дочерними процессами |
-R-- Integer32 virtualMemoryUsed(7) Textual Convention: KB Range: 0..2147483647 |
|
.1.2.643.6.46.1.1.3.1.1.8 |
Реальная память, выделенная запущенными сущностями этого процесса и всеми его дочерними процессами |
-R-- Integer32 rssMemoryUsed(8) Textual Convention: KB Range: 0..2147483647 |
|
.1.2.643.6.46.1.1.3.1.1.9 |
Количество основных ошибок страниц |
-R-- Counter pageFaults(9) |
|
.1.2.643.6.46.1.1.3.1.1.10 |
Байты, считываемые процессом в секунду |
-R-- Gauge readBytesPerSec(10) Range: 0..65535 |
|
.1.2.643.6.46.1.1.3.1.1.11 |
Байты, записываемые процессом в секунду |
-R-- Gauge writeBytesPerSec(11) Range: 0..65535 |
|
.1.2.643.6.46.1.1.3.1.1.12 |
Общее использование процессора запущенными сущностями этого процесса и всеми его дочерними процессами. Измеряется в процентах. Одно виртуальное ядро равно 100 % |
-R-- Unsigned cpuUsage(12) Textual Convention: Percent |
|
.1.2.643.6.46.1.1.3.1.1.13 |
Индикатор здоровья процесса |
-R-- EnumVal processErrorFlag(13) Textual Convention: ErrorFlag Values: noError(0), ProcessNotRunning(1) |
Информация и метрики, специфичные для java-процессов
| Название | OID метрики со значением | Описание | Дополнительная информация |
|---|---|---|---|
javaServicesTableEntry |
.1.2.643.6.46.1.1.5.1.1.2 |
Ссылочный индекс для каждого отслеживаемого java-процесса |
-R-- EnumVal javaServiceId(2) Textual Convention: IvaProcess Values: audiodecoder(1), audioencoder(2), audiomixer(3), conversion(4), coturn(5), dtmfgenerator(6), filesink(7), filesource(8), imagesource(9), imp(10), ivcsserver(11), logger(12), media(13), monitoring(14), nginx(15), nginxmedia(16), voip(17), postgres(18), registry(19), rtmpsink(20), rtmpsource(21), scvideodecoder(22), scvideoencoder(23), videocomposer(24), videoconverter(25), videoencoder(26), vncsink(27), vvoiprtpgw(28), webrtcrtpgw2(29) |
.1.2.643.6.46.1.1.5.1.1.3 |
Имя java-сервиса |
-R-- String javaServiceName(3) Size: 1..32 |
|
.1.2.643.6.46.1.1.5.1.1.4 |
Объем (в килобайтах) буферного пула в виртуальной машине Java (JVM) |
-R-- Integer32 bufferPoolCapacity(4) Textual Convention: KB Range: 0..2147483647 |
|
.1.2.643.6.46.1.1.5.1.1.5 |
Объем (в килобайтах) используемого буферного пула в виртуальной машине Java (JVM) |
-R-- Integer32 bufferPoolUsed(5) Textual Convention: KB Range: 0..2147483647 |
|
.1.2.643.6.46.1.1.5.1.1.6 |
Секунды, потраченные на сборку мусора в виртуальной машине Java (JVM) |
-R-- Counter gcCollectionSeconds(6) |
|
.1.2.643.6.46.1.1.5.1.1.7 |
Используемые килобайты данной области памяти в виртуальной машине Java (JVM) |
-R-- Integer32 memoryBytesUsed(7) Textual Convention: KB Range: 0..2147483647 |
|
.1.2.643.6.46.1.1.5.1.1.8 |
Текущее количество потоков в виртуальной машине Java (JVM) |
-R-- Gauge threadsCurrent(8) Range: 0..65535 |
Информация о версиях основных компонент (пакетов) Платформы IVA MCU
| Название | OID метрики со значением | Описание | Дополнительная информация |
|---|---|---|---|
moduleVersionTableEntry |
.1.2.643.6.46.1.1.6.1.1.2 |
Абсолютный индекс модуля |
-R-- EnumVal moduleId(2) Textual Convention: IvaModule Values: conversion(1), exim(2), filestorage(3), gnugk(4), ivcs-server(5), media(6), monitoring(7), nginx(8), nginx-media(9), ntp(10), postgresql(11), registry(12), coturn(13), voip-signalling-gateway(14), system(15) |
.1.2.643.6.46.1.1.6.1.1.3 |
Название модуля |
-R-- String moduleName(3) Size: 1..32 |
|
.1.2.643.6.46.1.1.6.1.1.4 |
Название пакета |
-R-- String packageName(4) Size: 1..32 |
|
.1.2.643.6.46.1.1.6.1.1.5 |
Версия пакета |
-R-- String version(5) Size: 1..32 |
Метрики по утилизации параметров лицензии
| Название | OID метрики со значением | Описание | Дополнительная информация |
|---|---|---|---|
ivcsServer/licenseUsage |
.1.2.643.6.46.1.2.3.1 |
Использование универсальных соединений |
-R-- Gauge |
.1.2.643.6.46.1.2.3.2 |
Использование универсальных WebRTC-соединений |
-R-- Gauge |
|
.1.2.643.6.46.1.2.3.3 |
Использование универсальных соединений конференций |
-R-- Gauge |
|
.1.2.643.6.46.1.2.3.4 |
Использование соединений WebRTC-конференций |
-R-- Gauge |
|
.1.2.643.6.46.1.2.3.5 |
Использование дополнительных докладчиков WebRTC-вебинаров |
-R-- Gauge |
|
.1.2.643.6.46.1.2.3.6 |
Использование WebRTC-соединений вебинаров |
-R-- Gauge |
|
.1.2.643.6.46.1.2.3.7 |
Использование лицензированных записей |
-R-- Gauge |
|
.1.2.643.6.46.1.2.3.8 |
Использование соединений WebRTC-звонков |
-R-- Gauge |
|
.1.2.643.6.46.1.2.3.9 |
Использование соединений VoIP-звонков |
-R-- Gauge |
Информация о доменах
| Название | OID метрики со значением | Описание | Дополнительная информация |
|---|---|---|---|
ivcsServerDomainTableEntry |
.1.2.643.6.46.1.2.4.1.2 |
Имя домена |
-R-- String domainName(2) Size: 1..64 |
.1.2.643.6.46.1.2.4.1.3 |
Число активных конференций в домене в данный момент |
-R-- Gauge domainConferences(3) Range: 0..65535 |
|
.1.2.643.6.46.1.2.4.1.4 |
Число активных web-пользователей в домене в данный момент |
-R-- Gauge domainWebUsers(4) Range: 0..65535 |
|
.1.2.643.6.46.1.2.4.1.5 |
Число активных SIP- / H.323-пользователей в домене в данный момент |
-R-- Gauge domainVVoIPUsers(5) Range: 0..65535 |
|
.1.2.643.6.46.1.2.4.1.6 |
Число мгновенных сообщений в минуту |
-R-- Gauge domainMessagesPerMinute(6) Range: 0..65535 |
|
.1.2.643.6.46.1.2.4.1.7 |
Число активных звонков в чате в минуту |
-R-- Gauge domainChatCalls(7) Range: 0..65535 |
|
.1.2.643.6.46.1.2.4.1.8 |
Число зарегистрированных пользователей |
-R-- Gauge domainRegisteredUsers(8) Range: 0..65535 |
Метрики модуля voip-signalling-gateway
| Название | OID метрики со значением | Описание | Дополнительная информация |
|---|---|---|---|
sgwService |
.1.2.643.6.46.1.8.1 |
Число активных B2B-звонков |
-R-- Gauge sgwB2BCalls(1) |
.1.2.643.6.46.1.8.2 |
Число активных SIP-звонков |
-R-- Gauge sgwSipCalls(2) |
|
.1.2.643.6.46.1.8.3 |
Число активных H323-вызовов |
-R-- Gauge sgwH323Calls(3) |
|
.1.2.643.6.46.1.8.4 |
Число активных MSSIP-вызовов |
-R-- Gauge sgwMsSipCalls(4) |
|
.1.2.643.6.46.1.8.5 |
Число активных SIP-регистраций |
-R-- Gauge sgwSipRegistrations(5) |
|
.1.2.643.6.46.1.8.6 |
Число активных H323-регистраций |
-R-- Gauge sgwH323Registrations(6) |
|
.1.2.643.6.46.1.8.7 |
Число активных SIP-диалогов |
-R-- Gauge sgwSipDialogs(7) |
|
.1.2.643.6.46.1.8.8 |
Число текущих активных SIP-диалогов |
-R-- Gauge sgwSipEarlyDialogs(8) |
|
.1.2.643.6.46.1.8.9 |
Число активных транзакций SIP-клиента |
-R-- Gauge sgwSipClientTransactions(9) |
|
.1.2.643.6.46.1.8.10 |
Число активных транзакций SIP-сервера |
-R-- Gauge sgwSipServerTransactions(10) |
Полезные команды
-
чтобы просмотреть MIB в виде дерева:
-
для IVCS-MIB выполнить команду:
snmptranslate -Tp IVCS-MIB::ivcsПример вывода команды:
+--ivcs(46) | +--services(1) | | | +--systemService(1) | | | | | +--systemEvents(1) | | | | | | | +--generalNotifications(0) | | | +--processDownEvent(1) | | | | | +--iostat(2) | | | | | | | +--disksTable(1) | | | | | | | +--disksTableEntry(1) | | | | Index: deviceIndex | | | | | | | +-- ---- Unsigned deviceIndex(1) | | | | Range: 1..65535 | | | +-- -R-- String deviceName(2) | | | | Size: 1..32 | | | +-- -R-- Integer32 readRequestsMergedPerSecond(3) | | | | Textual Convention: Float | | | +-- -R-- Integer32 writeRequestsMergedPerSecond(4) | | | | Textual Convention: Float | | | +-- -R-- Integer32 readRequestsCompletedPerSecond(5) | | | | Textual Convention: Float | | | +-- -R-- Integer32 writeRequestsCompletedPerSecond(6) | | | | Textual Convention: Float | | | +-- -R-- Integer32 sectorsReadPerSecond(7) | | | | Textual Convention: Float | | | +-- -R-- Integer32 sectorsWrittenPerSecond(8) | | | | Textual Convention: Float | | | +-- -R-- Integer32 averageSizeOfRequests(9) | | | | Textual Convention: Float | | | +-- -R-- Integer32 averageQueueLength(10) | | | | Textual Convention: Float | | | +-- -R-- Integer32 averageWaitTime(11) | | | | Textual Convention: Float | | | +-- -R-- Integer32 averageWaitTimeRead(12) | | | | Textual Convention: Float | | | +-- -R-- Integer32 averageWaitTimeWrite(13) | | | | Textual Convention: Float | | | +-- -R-- Integer32 averageServiceTime(14) | | | | Textual Convention: Float | | | +-- -R-- Integer32 utilization(15) | | | Textual Convention: Float | | | | | +--processes(3) | | | | | | | +--processesTable(1) | | | | | | | +--processesTableEntry(1) | | | | Index: processIndex | | | | | | | +-- ---- Unsigned processIndex(1) | | | | Range: 0..65535 | | | +-- -R-- EnumVal processId(2) | | | | Textual Convention: IvaProcess | | | | Values: audiodecoder(1), audioencoder(2), audiomixer(3), conversion(4), coturn(5), dtmfgenerator(6), filesink(7), filesource(8), imagesource(9), imp(10), ivcsserver(11), logger(12), media(13), monitoring(14), nginx(15), nginxmedia(16), voip(17), postgres(18), registry(19), rtmpsink(20), rtmpsource(21), scvideodecoder(22), scvideoencoder(23), videocomposer(24), videoconverter(25), videoencoder(26), vncsink(27), vvoiprtpgw(28), webrtcrtpgw2(29) | | | +-- -R-- String processName(3) | | | | Size: 1..32 | | | +-- -R-- Gauge processesCount(4) | | | | Range: 0..65535 | | | +-- -R-- Gauge threadsCount(5) | | | | Range: 0..65535 | | | +-- -R-- Gauge fds(6) | | | | Range: 0..65535 | | | +-- -R-- Integer32 virtualMemoryUsed(7) | | | | Textual Convention: KB | | | | Range: 0..2147483647 | | | +-- -R-- Integer32 rssMemoryUsed(8) | | | | Textual Convention: KB | | | | Range: 0..2147483647 | | | +-- -R-- Counter pageFaults(9) | | | +-- -R-- Gauge readBytesPerSec(10) | | | | Range: 0..65535 | | | +-- -R-- Gauge writeBytesPerSec(11) | | | | Range: 0..65535 | | | +-- -R-- Unsigned cpuUsage(12) | | | | Textual Convention: Percent | | | +-- -R-- EnumVal processErrorFlag(13) | | | Textual Convention: ErrorFlag | | | Values: noError(0), ProcessNotRunning(1) | | | | | +--javaServices(5) | | | | | | | +--javaServicesTable(1) | | | | | | | +--javaServicesTableEntry(1) | | | | Index: javaServiceIndex | | | | | | | +-- ---- Unsigned javaServiceIndex(1) | | | | Range: 0..65535 | | | +-- -R-- EnumVal javaServiceId(2) | | | | Textual Convention: IvaProcess | | | | Values: audiodecoder(1), audioencoder(2), audiomixer(3), conversion(4), coturn(5), dtmfgenerator(6), filesink(7), filesource(8), imagesource(9), imp(10), ivcsserver(11), logger(12), media(13), monitoring(14), nginx(15), nginxmedia(16), voip(17), postgres(18), registry(19), rtmpsink(20), rtmpsource(21), scvideodecoder(22), scvideoencoder(23), videocomposer(24), videoconverter(25), videoencoder(26), vncsink(27), vvoiprtpgw(28), webrtcrtpgw2(29) | | | +-- -R-- String javaServiceName(3) | | | | Size: 1..32 | | | +-- -R-- Integer32 bufferPoolCapacity(4) | | | | Textual Convention: KB | | | | Range: 0..2147483647 | | | +-- -R-- Integer32 bufferPoolUsed(5) | | | | Textual Convention: KB | | | | Range: 0..2147483647 | | | +-- -R-- Counter gcCollectionSeconds(6) | | | +-- -R-- Integer32 memoryBytesUsed(7) | | | | Textual Convention: KB | | | | Range: 0..2147483647 | | | +-- -R-- Gauge threadsCurrent(8) | | | Range: 0..65535 | | | | | +--moduleVersion(6) | | | | | +--moduleVersionTable(1) | | | | | +--moduleVersionTableEntry(1) | | | Index: moduleVersionIndex | | | | | +-- ---- Unsigned moduleVersionIndex(1) | | | Range: 0..65535 | | +-- -R-- EnumVal moduleId(2) | | | Textual Convention: IvaModule | | | Values: conversion(1), exim(2), filestorage(3), gnugk(4), ivcs-server(5), media(6), monitoring(7), nginx(8), nginx-media(9), ntp(10), postgresql(11), registry(12), coturn(13), voip-signalling-gateway(14), system(15) | | +-- -R-- String moduleName(3) | | | Size: 1..32 | | +-- -R-- String packageName(4) | | | Size: 1..32 | | +-- -R-- String version(5) | | Size: 1..32 | | | +--ivcsServerService(2) | | | | | +--ivcsServerEvents(1) | | | | | | | +--ivcsServerNotifications(0) | | | | | +--ivcsServerStatistics(2) | | | | | +--ivcsServerDomainTable(4) | | | | | +--ivcsServerDomainTableEntry(1) | | | Index: domainIndex | | | | | +-- ---- Unsigned domainIndex(1) | | | Range: 1..65535 | | +-- -R-- String domainName(2) | | | Size: 1..64 | | +-- -R-- Gauge domainConferences(3) | | | Range: 0..65535 | | +-- -R-- Gauge domainWebUsers(4) | | | Range: 0..65535 | | +-- -R-- Gauge domainVVoIPUsers(5) | | | Range: 0..65535 | | +-- -R-- Gauge domainMessagesPerMinute(6) | | | Range: 0..65535 | | +-- -R-- Gauge domainChatCalls(7) | | | Range: 0..65535 | | +-- -R-- Gauge domainRegisteredUsers(8) | | Range: 0..65535 | | | +--registryService(4) | | | +--impService(5) | | | +--postgresqlService(6) | | | +--nginxService(7) | | | +--sgwService(8) | | | +-- -R-- Gauge sgwB2BCalls(1) | +-- -R-- Gauge sgwSipCalls(2) | +-- -R-- Gauge sgwH323Calls(3) | +-- -R-- Gauge sgwMsSipCalls(4) | +-- -R-- Gauge sgwSipRegistrations(5) | +-- -R-- Gauge sgwH323Registrations(6) | +-- -R-- Gauge sgwSipDialogs(7) | +-- -R-- Gauge sgwSipEarlyDialogs(8) | +-- -R-- Gauge sgwSipClientTransactions(9) | +-- -R-- Gauge sgwSipServerTransactions(10) | +--ivcsMIBAdminInfo(2) | +--ivcsMIBCompliances(2) | | | +--ivcsMIBCompliance(1) | +--ivcsMIBGroups(3) | +--generalNotificationsGroup(1) +--iostatGroup(2) +--processesGroup(3) +--ivcsServerDomainGroup(4) +--javaServicesGroup(5) +--moduleVersionGroup(6) -
для IF-MIB выполнить команды:
snmptranslate -Tp IF-MIB::ifMIBObjects snmptranslate -Tp IF-MIB::interfaces -
для HOST-RESOURCES-MIB выполнить команду:
snmptranslate -Tp HOST-RESOURCES-MIB::hostДля других MIB также можно использовать команду snmptranslate
-
-
для получения текущих значений метрик:
-
для SNMPv2 выполнить команду:
snmpwalk -v 2c -c <community> <host> <oid>Если после выполнения команды snmpwalk отображается предупреждение No Such Object available on this agent at this OID, это значит, что данного OID не существует. Например, потому что он не был реализован Для получения значений метрик в виде таблицы вместо snmpwalk необходимо указать snmptable где: <community> — имя сообщества
Чтобы задать имя сообщества для приема запросов SNMPv2, необходимо: Перейти в раздел Системные настройки → Секция Настройки SNMP → Поле Имя сообщества → Ввести имя сообщества → Нажать кнопку Сохранить
Чтобы задать имя сообщества для отправки SNMPv2 нотификаций, необходимо: Перейти в раздел Системные настройки → Секция Настройки SNMPv2 нотификаций → Поле Имя сообщества → Ввести имя сообщества → Нажать кнопку Сохранить
<host> — IP-адрес или доменное имя сервера Платформы IVA MCU
<oid> — номер идентификатора объекта в дереве MIB
Чтобы вывести все метрики, необходимо указать .1
Чтобы вывести метрики только для IVCS-MIB, необходимо указать .1.2.643.6.46.1
Также можно указать запись вида: <название_MIB>::<название_OID>, например IVCS-MIB::disksTableEntry — для вывода информации о дисковых устройствах
-
для SNMPv3 выполнить команду:
snmpwalk -v 3 -u <username> -a <auth_protocol> -A <auth_pass_phrase> -x <privacy_protocol> -X <privacy_pass_phrase> -l authPriv -c <community> <host> <oid>Если после выполнения команды snmpwalk отображается предупреждение No Such Object available on this agent at this OID, это значит, что данного OID не существует. Например, потому что он не был реализован Для получения значений метрик в виде таблицы вместо snmpwalk необходимо указать snmptable где: <auth_protocol> — тип аутентификации для учетной записи SNMPv3 (MD5/SHA). Чтобы задать тип аутентификации, необходимо: Перейти в раздел Системные настройки → Секция Настройки SNMPv3 нотификаций → Поле Тип аутентификации → Выбрать тип аутентификации (MD5/SHA) → Нажать кнопку Сохранить
<auth_pass_phrase> — пароль аутентификации для учетной записи SNMPv3. Чтобы задать пароль аутентификации, необходимо: Перейти в раздел Системные настройки → Секция Настройки SNMPv3 нотификаций → Поле Пароль аутентификации → Ввести пароль аутентификации → Нажать кнопку Сохранить
<privacy_protocol> — тип конфиденциальности для учетной записи SNMPv3 (DES/AES). Чтобы задать тип конфиденциальности, необходимо: Перейти в раздел Системные настройки → Секция Настройки SNMPv3 нотификаций → Поле Тип конфиденциальности → Выбрать тип конфиденциальности (DES/AES) → Нажать кнопку Сохранить
<privacy_pass_phrase> — пароль конфиденциальности для учетной записи SNMPv3. Чтобы задать пароль конфиденциальности, необходимо: Перейти в раздел Системные настройки → Секция Настройки SNMPv3 нотификаций → Поле Пароль конфиденциальности → Ввести пароль конфиденциальности → Нажать кнопку Сохранить
<community> — имя сообщества для приема SNMPv3 запросов. Чтобы задать имя сообщества, необходимо: Перейти в раздел Системные настройки → Секция Настройки SNMP → Поле Имя сообщества → Ввести имя сообщества → Нажать кнопку Сохранить
<host> — IP-адрес или доменное имя сервера Платформы IVA MCU
<oid> — номер идентификатора объекта в дереве MIB
Чтобы вывести все метрики, необходимо указать .1
Чтобы вывести метрики только для IVCS-MIB, необходимо указать .1.2.643.6.46.1
Также можно указать запись вида: <название_MIB>::<название_OID>, например IVCS-MIB::disksTableEntry — для вывода информации о дисковых устройствах
<username> — имя пользователя для учетной записи SNMPv3. Чтобы задать имя пользователя:
-
для приема запросов SNMPv3, необходимо: Перейти в раздел Системные настройки → Секция Настройки SNMP → Поле Имя пользователя → Ввести имя пользователя → Нажать кнопку Сохранить
-
для отправки SNMPv3 нотификаций, необходимо: Перейти в раздел Системные настройки → Секция Настройки SNMPv3 нотификаций → Поле Имя пользователя → Ввести имя пользователя → Нажать кнопку Сохранить
-
-
-
отключить использование текущих настроек SNMP (из файла /etc/monitoring/application-override.properties): Перейти в раздел Системные настройки → Секция Настройки SNMP → Поле Использовать текущие настройки SNMP → Выключить флаговую кнопку → Нажать кнопку Сохранить
-
включить поддержку обработки SNMP-запросов от внешних систем: Перейти в раздел Системные настройки → Секция Настройки SNMP → Поле Включено → Снять флаговую кнопку → Нажать кнопку Сохранить
| Включение флаговых кнопок Включено в секциях Настройки SNMPv2 нотификаций и Настройки SNMPv3 нотификаций активирует отправку SNMPv2 и SNMPv3 нотификаций на адреса, указанные в поле Адрес |
Сбор данных с помощью API
С помощью интеграционного REST API можно получать информацию о системе, профилях пользователей, мероприятиях и т. д. С более подробным описанием интеграционного REST API можно ознакомиться в web-панели администрирования: Перейти в раздел Интеграционные приложения → Перейти по ссылке Интеграционное REST API
Документация по интеграционному REST API изменяется автоматически и зависит от версии Платформы IVA MCU.
Сбор данных через обращение к базе данных
С помощью запросов к базе данных можно получить информацию о настройках системы, пользователях, мероприятиях и т. д.
|
Перед подключением к базе данных необходимо убедиться, что на сервере настроены разрешения для доступа к базе данных:
|
| При наличии реплики базы данных рекомендуется выполнять запросы к реплике базы данных, если это возможно, для снижения нагрузки на мастера базы данных |
Открытие порта для доступа к базе данных
Для серверов Платформы IVA MCU, где в качестве базы данных используется ПО IVA Technologies необходимо выполнить следующие действия:
-
на сервере базы данных проверить, открыт ли порт для доступа к базе данных, выполнив команду:
sudo iptables -SПример вывода команды:
-A INPUT -s <IP_ADDRESS>/32 -p tcp -m tcp --dport 5432 -m comment --comment "[postgresql] DB access" -j ACCEPTгде <IP_ADDRESS> — IP-адреса, с которых разрешен доступ к серверу базы данных
-
при наличии записи с нужными IP-адресами необходимо сохранить изменения на сервере базы данных, выполнив команду:
Если Платформа IVA MCU установлена на сервер с ОС Astra Linux, то команду sudo iva-cli live save-changes выполнять не нужно sudo iva-cli live save-changes -
если запись отсутствует или в ней нет нужных адресов, с которых разрешен доступ к базе данных, то необходимо выполнить следующие действия на сервере базы данных:
-
открыть файл /etc/iptables-config/ipv4/filter.d/0001-custom, выполнив команду:
sudo nano /etc/iptables-config/ipv4/filter.d/0001-custom -
в файле /etc/iptables-config/ipv4/filter.d/0001-custom выполнить команду:
-A INPUT -p tcp -m tcp –dport 5432 –-source IP_ADDRESS_1,IP_ADDRESS_2,IP_ADDRESS_3 -m comment –comment "DB" -j ACCEPTгде IP_ADDRESS_1, IP_ADDRESS_2, IP_ADDRESS_3 — IP-адреса, с которых разрешен доступ к базе данных
-
сохранить изменения и закрыть файл /etc/iptables-config/ipv4/filter.d/0001-custom
-
на сервере базы данных перезапустить сервис iptables-config.service, выполнив команду:
sudo systemctl restart iptables-config.service -
проверить статус сервиса iptables-config.service, выполнив команду:
sudo systemctl status iptables-config.serviceПример вывода команды:
Loaded: loaded (/lib/systemd/system/iptables-config.service; enabled; vendor preset: enabled) Active: active (exited) since Mon 2024-12-16 15:23:33 MSK; 56s ago Process: 8473 ExecStart=/usr/sbin/iptables-config start (code=exited, status=0/SUCCESS) Main PID: 8473 (code=exited, status=0/SUCCESS) CPU: 16ms Dec 16 15:23:33 ivcs-main systemd[1]: iptables-config.service: Succeeded. Dec 16 15:23:33 ivcs-main systemd[1]: Stopped iptables persister. Dec 16 15:23:33 ivcs-main systemd[1]: Starting iptables persister... Dec 16 15:23:33 ivcs-main systemd[1]: Finished iptables persister. -
убедиться, что на сервере базы данных присутствуют записи с нужными IP-адресами, выполнив команду:
sudo iptables -SПример вывода команды:
-A INPUT -s IP_ADDRESS_1/32 -p tcp -m tcp --dport 5432 -m comment --comment "[postgresql] DB access" -j ACCEPT -A INPUT -s IP_ADDRESS_2/32 -p tcp -m tcp --dport 5432 -m comment --comment "[postgresql] DB access" -j ACCEPT -A INPUT -s IP_ADDRESS_3/32 -p tcp -m tcp --dport 5432 -m comment --comment "[postgresql] DB access" -j ACCEPTгде IP_ADDRESS_1, IP_ADDRESS_2, IP_ADDRESS_3 — IP-адреса, с которых разрешен доступ к базе данных
-
сохранить изменения, выполнив команду:
Если для базы данных используется ПО IVA Technologies, которое установлено на сервер с ОС Astra Linux, то команду sudo iva-cli live save-changes выполнять не нужно sudo iva-cli live save-changes
-
Увеличение квоты на подключение к базе данных
По умолчанию в Платформе IVA MCU существует один пользователь (ivcs_readonly) с правами только на чтение базы данных (по умолчанию название базы данных: ivcs). С помощью этого пользователя можно подключиться к базе данных и выполнять SQL-запросы с SELECT для получения информационных данных о настройках системы, пользователях, мероприятиях и т. д., но по умолчанию он имеет всего одну квоту на соединение, которая уже занята.
Для подключения этим пользователем к базе данных, например, из какой-нибудь системы мониторинга, необходимо увеличить квоту на количество соединений.
Чтобы увеличить квоту на количество соединений для пользователя с правами только на чтение базы данных, необходимо на сервере, где расположена база данных, выполнить команду:
sudo -u postgres -- psql -c "ALTER USER ivcs_readonly WITH CONNECTION LIMIT <limit_connections>;"
где <limit_connections> — максимальное количество подключений
Описание наиболее часто используемых таблиц баз данных
-
Мероприятия и комнаты
Таблица Conference — данные о мероприятиях и комнатах
Имя поля Тип Описание conference_id
uuid
Уникальный идентификатор мероприятия
duration
int8
Длительность мероприятия
start_date
timestamp
Время начала
deleted
boolean
Признак удаления
description
character varying(2048)
Описание мероприятия
name
character varying(1024)
Наименование мероприятия
periodical
boolean
Признак периодичности
conference_type
integer
Тип мероприятия:
0 — конференция (встреча, лекция, селектор)
1 — вебинар (RTMP, WebRTC)update_date
timestamp
Дата обновления
owner_id
uuid
ID пользователя, создателя мероприятия
conference_number
integer
Номер мероприятия (ID мероприятия)
blocked
boolean
Признак блокирования
security_level
integer
Уровень секретности:
0 — несекретно
1 — конфиденциально
2 — секретно
3 — совершенно секретноprevious_conference_number
integer
Предыдущий номер мероприятия при изменении номера
create_date
timestamp
Дата создания
Таблица Conference_session — данные о сессиях мероприятий и комнат
Имя поля Тип Описание Id
uuid
ID сессии мероприятия
duration
Integer
Длительность
start_date
timestamp
Время начала мероприятия (запланированное)
actual_start_date
timestamp
Время начала мероприятия (фактическое)
Deleted
boolean
Признак удаления
description
character varying(2048)
Описание мероприятия
name
character varying(1024)
Наименование мероприятия
session_number
Integer
Номер сессии мероприятия
conference_type
integer
Тип мероприятия:
0 – конференция (встреча, лекция, селектор)
1 – вебинар (RTMP, WebRTC)state
character varying(255)
Статус мероприятия
update_date
timestamp
Время обновления данных мероприятия
parent_id
uuid
ID родительского мероприятия
owner_id
uuid
ID пользователя, создателя мероприятия
create_date
timestamp
Дата создания
actual_end_date
timestamp
Фактическая дата окончания
Таблица Conference_session_participant — данные пользователей сессий мероприятий и комнат
Имя поля Тип Описание Id
uuid
uuid сессии участника мероприятия
deleted
boolean
Признак удаления
was_on_conference
boolean
Признак присутствия в мероприятии
profile_id
uuid
ID пользователя
conference_session_id
uuid
ID сессии мероприятия
role
Integer
Роли:
0 — рядовой участник
1 — переводчик
2 — докладчик
3 — модераторТаблица Сonference_session_period_statistic — данные статистики сессии мероприятий и комнат
Имя поля Тип Описание active_speaker
Boolean
Признак активности докладчика
end_date
timestamp
Дата окончания сессии мероприятия
start_date
timestamp
Дата начала сессии мероприятия
conference_session_id
uuid
ID сессии мероприятия
max_users
Integer
Максимальное количество пользователей в сессии мероприятия
max_speakers
integer
Максимальное количество докладчиков в сессии мероприятия
max_frame
integer
Максимальное количество frame-пользователей в сессии мероприятия
-
информация о пользователях
Таблица Profile — данные профилей пользователей
Имя поля Тип Описание profile_type
character varying(3)
Тип профиля:
USR — зарегистрированный пользователь
INV — незарегистрированный пользователь, приглашенный в мероприятие
GST — незарегистрированный пользователь, вошедший в мероприятие по гостевой ссылкеId
uuid
ID пользователя
name
character varying(255)
Наименование пользователя
note
character varying(2048)
Информация о себе
blocked
integer
Признак блокирования
user_type
character varying(255)
Тип пользователя:
USER — Пользователь
OPERATOR — Оператор
SECURITY_SERVICE — Служба безопасности
CHIEF_OPERATOR — Главный оператор
DOMAIN_ADMIN — Администратор домена
ADMIN_IVCS — Администратор системы
CHIEF_SYSTEM_ADMINISTRATOR — Главный администратор системыadditional_contact
character varying(255)
Дополнительный контакт
primary_email
character varying(255)
Email пользователя
primary_phone
character varying(512)
Телефон / адрес VVoIP-устройства
ldap_login
boolean
Признак, является ли пользователь LDAP
deleted
boolean
Признак удаления пользователя
vvoip_login
character varying(64)
VVoIP-логин
domain_id
uuid
ID домена
login
character varying(255)
Логин пользователя
security_level
integer
Уровень секретности:
0 — несекретно
1 — конфиденциально
2 — секретно
3 — совершенно секретноinternal_phone
character varying(64)
Номер на УАТС
-
чаты мероприятий и комнат
Таблица Сhat_message — данные чатов мероприятий и комнат
Имя поля Тип Описание Id
uuid
ID сообщения
message
character varying(2048)
Текст сообщения
send_date
timestamp
Дата отправки сообщения
author_participant_id
uuid
ID пользователя, автора сообщения
conference_session_id
uuid
ID сессии мероприятия
target_participant_id
uuid
ID пользователя, получателя персонального сообщения
deleted
boolean
Признак удаления сообщения
moderated_by_profile_id
uuid
ID пользователя, модерировавшего сообщение
deleted_by_profile_id
uuid
ID пользователя, удалившего сообщение
moderated_at
timestamp
Дата модерации
updated_at
timestamp
Дата обновления
edited
boolean
Признак изменения сообщения
moderation_status
character varying(32)
Статус модерации:
APPROVED — сообщение одобрено
NOT_MODERATED — сообщение еще не прошло модерацию
REJECTED — сообщение отклонено
| Структуру базы данных можно изучить более подробно после подключения к ней с помощью пользователя с правами только на чтение базы данных |