IVA ДОКУМЕНТАЦИЯ ОБНОВЛЕНИЯ

Мониторинг системы с использованием SNMP

В данном разделе описаны примеры настройки мониторинга IVA CS по протоколу SNMP на основе решения Zabbix.

Zabbix располагает различными инструментами для мониторинга программного обеспечения и оборудования. Для отслеживания состояния оборудования (серверов IVA CS или хостов кластера), локальных ресурсов и приложений (статистика жестких дисков, памяти, процессоров и т. д.) используются специальные агенты Zabbix, а для мониторинга сервера телефонии IVA CS можно использовать возможность получения данных по SNMP-протоколу.

В разделе описываются метрики, предоставляемые IVA CS по протоколу SNMP.

С полным списком метрик, собираемых Zabbix-агентом, можно ознакомиться в официальной документации Zabbix

Настройка SNMP

SNMP-сервер по умолчанию выключен.

Включение SNMP-сервера выполняется через системные настройки — сервис swl_monitor.

Чтобы настроить параметры SNMP-сервера через системные настройки, необходимо:

  1. перейти в раздел Настройки → вкладка Системные настройки → в строке Поиск ввести swl_monitor → будут отображены все системные настройки для сервиса swl_monitor

    Базовые настройки swl_monitor
  2. указать применяемые параметры системных настроек сервиса swl_monitor:

    Пример:

    Ключ настройки Значение Параметр

    snmp.enable

    true

    Включить передачу данных по SNMP

    snmp.address

    0.0.0.0:9012

    IP-адрес и порт, на котором SNMP-сервер обрабатывает запросы

    snmp.user_name

    ivasw

    Имя пользователя SNMPv3 для авторизации и получения данных

    snmp.authentication_protocol

    SHA256

    Протокол аутентификации SNMPv3

    snmp.authentication_passphrase

    ivaswSTrP@SSWRD

    Пароль аутентификации SNMPv3

    snmp.privacy_protocol

    AES256

    Протокол шифрования SNMPv3

    snmp.privacy_passphrase

    ivaswSTrP@SSWRD

    Пароль шифрования SNMPv3

  3. после изменения системных настроек SNMP необходимо перезапустить сервис swl_monitor:

    Перезапуск сервиса swl_monitor необходимо выполнять на тех хостах кластера, на которых необходимо получить актуальные настройки для SNMP

    ОбзорКластерВыбрать хостВыбрать группу сервисов logicВыбрать сервис swl_monitorНажать кнопку Перезапустить сервисПодтверждениеПодтвердить перезапуск сервиса, нажав кнопку Да

Протоколы и безопасность

SNMP-сервер работает по протоколу UDP.

В штатном режиме используется SNMPv3 с аутентификацией и шифрованием — уровень безопасности authPriv.

Поддерживаемые протоколы аутентификации:

  • NoAuth

  • MD5

  • SHA (используется по умолчанию)

  • SHA224

  • SHA256

  • SHA384

  • SHA512

Поддерживаемые протоколы шифрования:

  • NoPriv

  • DES

  • AES (используется по умолчанию)

  • AES192

  • AES256

  • AES192C

  • AES256C

Получение метрик по SNMP

Дерево OID

OID (Object Identifier) — цифровой идентификатор для получения SNMP-менеджером конкретной метрики.

Базовый OID для всех метрик IVA CS: 1.3.6.1.4.1.54321.100

Все скалярные (основные) метрики (например: версия системы, параметры хоста, статистика звонков) расположены в ветке .1 с OID: 1.3.6.1.4.1.54321.100.1. Для получения значения скалярных меток достаточно использовать утилиту snmpget.

OID в таблице указаны относительно базового.

Полный OID формируется следующим образом: <Базовый OID><OID метрики>

Пример полного OID для загрузки CPU: 1.3.6.1.4.1.54321.100.1.2.5

1.3.6.1.4.1.54321.100                  Базовый OID                        Тип метрики: хост / кластер     Тип данных
│
├── .1                                 Скалярные метрики
│   ├── .1.x                           Версия системы
│   │     ├── .1 (OctetString)         Версия IVA CS                      Хост                            текст
│   │     ├── .2 (OctetString)         Патч                               Хост                            текст
│   │     └── .3 (OctetString)         Дата сборки                        Хост                            текст
│   ├── .2.x                           Параметры хоста
│   │     ├── .1 (OctetString)         Статус хоста                       Хост                            текст
│   │     ├── .2 (OctetString)         Имя хоста                          Хост                            текст
│   │     ├── .3 (OctetString)         IP-адрес                           Хост                            текст
│   │     ├── .4 (Counter64)           Uptime (сек)                       Хост                            числовое целое
│   │     ├── .5 (OpaqueDouble)        Загрузка CPU (%)                   Хост                            числовое с плавающей точкой
│   │     ├── .6 (Counter64)           Используемая память (байт)         Хост                            числовое целое
│   │     └── .7 (Counter64)           Общая память (байт)                Хост                            числовое целое
│   ├── .3.x                           Хранилище
│   │     └── .1 (Counter64)           Размер файлов (байт)               Хост                            числовое целое
│   ├── .4.x                           Статистика звонков
│   │     ├── .1 (Counter64)           Количество всех RTP-пакетов        Кластер                         числовое целое
│   │     └── .2 (Counter64)           Количество потерянных RTP-пакетов  Кластер                         числовое целое
│   ├── .5.x                           Активные звонки
│   │     └── .1 (Counter64)           Текущее количество звонков         Кластер                         числовое целое
│   ├── .6.x                           Сервисы
│   │     ├── .1 (Counter64)           Количество запущенных сервисов     Хост                            числовое целое
│   │     └── .2 (OctetString)         Информация о сервисах              Хост                            JSON
│   └── .7.x                           Шлюзы
│         ├── .1 (Counter64)           Количество шлюзов                  Кластер                         числовое целое
│         └── .2 (OctetString)         Информация о шлюзах                Кластер                         JSON

Получение данных SNMP с помощью snmpget и snmpwalk

Для выполнения запросов необходимо использовать консоль хоста, на котором установлены утилиты snmpget и snmpwalk.

При использовании настроек по умолчанию:

  • для получения одной метрики:

    snmpget -v3 \
      -n public \
      -u ivasw \
      -l authPriv \
      -a SHA256 -A 'ivaswSTrP@SSWRD' \
      -x AES256 -X 'ivaswSTrP@SSWRD' \
      <HOST_IVA_CS>:<PORT> \
      1.3.6.1.4.1.54321.100<OID>
  • для получения всех метрик:

    snmpwalk -v3 \
      -n public \
      -u ivasw \
      -l authPriv \
      -a SHA256 -A 'ivaswSTrP@SSWRD' \
      -x AES256 -X 'ivaswSTrP@SSWRD' \
      <HOST_IVA_CS>:<PORT> \
      1.3.6.1.4.1.54321.100

Параметры команд:

Маркер Значение Описание

-v3

Версия протокола SNMPv3

-n

public

Контекстный идентификатор запроса

-u

ivasw

Имя пользователя — из параметра snmp.user_name

-l

authPriv

Используемый уровень безопасности (аутентификация + шифрование)

-a

SHA256

Протокол аутентификации — из параметра snmp.authentication_protocol

-A

ivaswSTrP@SSWRD

Пароль аутентификации — из параметра snmp.authentication_passphrase

-x

AES256

Протокол шифрования — из параметра snmp.privacy_protocol

-X

ivaswSTrP@SSWRD

Пароль шифрования — из параметра snmp.privacy_passphrase

<HOST_IVA_CS>

10.0.207.151 (пример)

IP-адрес хоста сервера телефонии IVA CS, на котором выполняется запрос

<PORT>

9012

Порт, на котором SNMP-сервер обрабатывает запросы — из параметра snmp.address

<OID>

.1.2.5 (пример)

OID метрики из дерева OID

Примеры запросов и ответов

При вводе некорректных данных запрос будет отклонен
  1. имя хоста

    # Запрос
    snmpget -v3 \
      -n public \
      -u ivasw \
      -l authPriv \
      -a SHA256 -A 'ivaswSTrP@SSWRD' \
      -x AES256 -X 'ivaswSTrP@SSWRD' \
      10.0.207.151:9012 \
      1.3.6.1.4.1.54321.100.1.2.2
    # Ответ
    SNMPv2-SMI::enterprises.54321.100.1.2.2 = STRING: "ivacs0"
  2. загрузка CPU

    # Запрос
    snmpget -v3 \
      -n public \
      -u ivasw \
      -l authPriv \
      -a SHA256 -A 'ivaswSTrP@SSWRD' \
      -x AES256 -X 'ivaswSTrP@SSWRD' \
      10.0.207.151:9012 \
      1.3.6.1.4.1.54321.100.1.2.5
    # Ответ
    SNMPv2-SMI::enterprises.54321.100.1.2.5 = Opaque: Float: 12.500000
  3. количество активных звонков

    # Запрос
    snmpget -v3 \
      -n public \
      -u ivasw \
      -l authPriv \
      -a SHA256 -A 'ivaswSTrP@SSWRD' \
      -x AES256 -X 'ivaswSTrP@SSWRD' \
      10.0.207.151:9012 \
      1.3.6.1.4.1.54321.100.1.5.1
    # Ответ
    SNMPv2-SMI::enterprises.54321.100.1.5.1 = Counter64: 3
Информация собирается не мгновенно, а периодически — раз в минуту (базовая настройка)

Настройка и использование Zabbix

Более подробно про работу с Zabbix — официальная документация Zabbix
  1. войти в Zabbix и авторизоваться под собственными учетными данными пользователя:

    • поле Имя пользователя: ввести логин пользователя

    • поле Пароль: ввести пароль пользователя

    • нажать кнопку Войти

      Авторизация в Zabbix
  2. создать новый хост:
    Перейти к разделу Мониторинг (Monitoring) → Открыть вкладку Узлы сети (Hosts) → Нажать кнопку Создать узел сети (Create host) → Новый узел сети (New host) → Вкладка Узел сети (Host)

    Новый узел сети
  3. настроить параметры хоста:

    • поле Имя узла сети (Host name): ввести уникальное имя хоста, например iva_cs

    • поле Группы узлов сети (Host groups): выбрать группу хостов сети, к которой будет принадлежать добавляемый хост, например Testing

    • секция Интерфейсы: добавить используемый интерфейс — нажать кнопку Добавитьвыбрать SNMP:

      • поле IP адрес: ввести IP-адрес хоста — сервера телефонии IVA CS, например 10.0.207.51

      • поле Подключаться через: выбрать IP — подключение к хосту с использованием IP-адреса

      • поле Порт: ввести порт, на котором SNMP-сервер обрабатывает запросы, например 9012

      • поле Версия SNMP: выбрать SNMPv3 — версия используемого SNMP

      • поле Максимальное количество повторений (Max repetition count): ввести 5 — количество повторений собственных массовых запросов SNMP (по умолчанию 10)

      • поле Имя контекста (Context name): ввести public

      • поле Имя безопасности (Security name): ввести ivasw

      • поле Уровень безопасности (Security level): выбрать authPriv

      • поле Протокол аутентификации (Authentication protocol): выбрать SHA256

      • поле Пароль аутентификации (Authentication passphrase): ввести ivaswSTrP@SSWRD

      • поле Протокол безопасности (Privacy protocol): выбрать AES256

      • поле Ключевая фраза безопасности (Privacy passphrase): ввести ivaswSTrP@SSWRD

      • поле Использование объединенных запросов (Use combined requests): установить флаговую кнопку

    • поле Наблюдение через (Monitored by): выбрать Сервер

    • поле Активировано (Enabled): установить флаговую кнопку

    • нажать кнопку Добавить (Add)

      Параметры нового хоста
  4. проверить доступность:
    Перейти к разделу Мониторинг (Monitoring) → Открыть вкладку Узлы сети (Hosts) → Название добавленного хоста: столбец Доступность / AvailabilitySNMP: зеленый (мониторинг хоста доступен) / красный (мониторинг хоста не доступен)

    Доступность мониторинга
  5. добавить элемент данных:
    Перейти к разделу Мониторинг (Monitoring) → Открыть вкладку Узлы сети (Hosts) → Нажать на название добавленного хостаНажать Элементы данных (Items) → Элементы данных (Items)→ Нажать кнопку Создать элемент данных (Create item) → Новый элемент данных (New item) → Вкладка Элемент данных (Item)

    Добавление элемента данных
  6. настроить параметра элемента данных:

    • поле Имя (Name): ввести название элемента данных, например test.CS.Calls

    • поле Тип (Type): выбрать тип элемента данных — SNMP агент (SNMP agent)

    • поле Ключ (Key): ввести ключ элемента данных, например test.cs.active_calls

    • поле Тип информации (Type of information): выбрать тип данных, например, Числовой (с плавающей точкой) (Numeric (float)) (выбор типа зависит от типа данных выбранной метрики из дерева OID — колонка Тип)

    • поле Интерфейс узла сети (Host interface): выбрать интерфейс хоста — в формате <HOST_IVA_CS>:<PORT>

    • поле SNMP OID: ввести OID, например 1.3.6.1.4.1.54321.100.1.5.1

    • поле Интервал обновления (Update interval): ввести 1m

    • секция Пользовательские интервалы (Custom intervals):

      • поле Тип (Type): выбрать Переменный (Flexible)

    • поле История (History): выбрать Хранить до (Store up to) и указать 1d

    • поле Динамика изменений (Trends): выбрать Хранить до (Store up to) и указать 365d

    • поле Активировано (Enabled): установить флаговую кнопку

    • нажать кнопку Добавить (Add)

      Параметры элемента данных

Для визуализации элементов данных (построения графиков) необходимо:
Перейти к разделу Мониторинг (Monitoring) → Открыть вкладку Узлы сети (Hosts) → В строке добавленного хоста нажать ГрафикиНастроить параметры отображения

График элементов данных

Пример возможной визуализации:

Пример визуализации