SBC поддерживает мониторинг и конфигурирование при помощи протокола SNMP (Simple Network Management Protocol).
Реализованы следующий функции мониторинга:
- сбор общей информации об устройстве, показаниях датчиков, установленном ПО;
- состояние SIP-интерфейсов;
- сбор статистики SIP.
Реализованы следующие функции управления:
- обновление программного обеспечения устройства;
- сохранение текущей конфигурации;
- перезагрузка устройства;
- управление SIP-абонентами.
В таблицах с описанием OID в колонке “запросы” будет принят следующий формат описания:
- Get – значение объекта или дерева можно прочитать, отправив GetRequest.
- Set – значение объекта можно установить, отправив SetRequest (обратите внимание, при установке значения через SET к OID следует привести к виду “OID.0”);
- {} – имя объекта или OID;
- N – в команде используется числовой параметр типа integer;
- U – в команде используется числовой параметр типа unsigned integer;
- S – в команде используется строковый параметр;
- A – в команде используется IP-адрес (обратите внимание, некоторые команды, принимающие как аргумент IP-адрес, используют строковый тип данных “s”).
Таблица 1 – Примеры команд.
Описание запроса | Команда |
Get {} | snmpwalk -v2c -c public -m + -SBC $ip_sbc activeCallCount |
Get {}.x | snmpwalk -v2c -c public -m +ELTEX-SBC $ip_sbc pmExist.1 snmpwalk -v2c -c public -m +ELTEX-SBC $ip_sbc pmExist.2 и т.д. |
Set {} N | snmpset -v2c -c public -m +ELTEX-SBC $ip_sbc \ sbcSyslogHistoryPort.0 i 514 |
Set {} 1 | snmpset -v2c -c private -m +ELTEX-SBC $ip_sbc sbcReboot.0 i 1 |
Set {} U111 | snmpset -v2c -c public -m +ELTEX-SBC $ip_sbc \ getGroupUserByID.0 u 2 |
Set {} S | snmpset -v2c -c private -m +ELTEX-SBC $ip_sbc \ sbcUpdateFw.0 s \ "smg1016m_firmware_sbc_1.9.0.51.bin 192.0.2.2" |
Set {} "NULL"111 | snmpset -v2c -c private -m +ELTEX-SBC $ip_sbc \ getUserByNumber.0 s "NULL" |
Set {} A111 | snmpset -v2c -c private -m +ELTEX-SBC $ip_sbc \ sbcSyslogTracesAddress.0 a 192.0.2.44 |
Примеры выполнения запросов:
Ниже приведённые запросы эквивалентны. Пример запроса объекта sbcActiveCallsCount, который отображает число текущих вызовов на SBC.
$ snmpwalk -v2c -c public -m +ELTEX-SBC 192.0.2.1 sbcActiveCallCount ELTEX-SBC::sbcActiveCallCount.0 = INTEGER: 22
$ snmpwalk -v2c -c public -m +ELTEX-SBC 192.0.2.1 sbc.42.1 ELTEX-SBC::sbcActiveCallCount.0 = INTEGER: 22
$ snmpwalk -v2c -c public -m +ELTEX-SBC 192.0.2.1 1.3.6.1.4.1.35265.1.49.42.1
ELTEX-SBC::sbcActiveCallCount.0 = INTEGER: 22
$ snmpwalk -v2c -c public 192.0.2.1 1.3.6.1.4.1.35265.1.49.42.1 SNMPv2-SMI::enterprises.35265.1.49.42.1.0 = INTEGER: 22
Описание OID из MIB ELTEX-SMG
Таблица 2 – Общая информация и датчики.
Имя | OID | Запросы | Описание | ||
sbc | 1.3.6.1.4.1.35265.1.49 | Get | {} | Корневой объект для дерева OID | |
sbcDevName | 1.3.6.1.4.1.35265.1.49.1 | Get | {} | Имя устройства | |
sbcDevType | 1.3.6.1.4.1.35265.1.49.2 | Get | {} | Тип устройства (всегда 49) | |
sbcFwVersion | 1.3.6.1.4.1.35265.1.49.3 | Get | {} | Версия ПО | |
sbcUptime | 1.3.6.1.4.1.35265.1.49.5 | Get | {} | Время работы ПО | |
sbcUpdateFw | 1.3.6.1.4.1.35265.1.49.25 | Set | {} | S | Обновление ПО. Для этого следует сделать запрос Set с параметрами (разделить пробелом):
|
sbcReboot | 1.3.6.1.4.1.35265.1.49.27 | Set | {} | 1 | Перезагрузка оборудования |
sbcSave | 1.3.6.1.4.1.35265.1.49.29 | Set | {} | 1 | Сохранение конфигурации |
sbcFreeSpace | 1.3.6.1.4.1.35265.1.49.32 | Get | {} | Свободное место на встроенной флэш-памяти | |
sbcFreeRam | 1.3.6.1.4.1.35265.1.49.33 | Get | {} | Количество свободной оперативной памяти | |
sbcMonitoring | 1.3.6.1.4.1.35265.1.49.35 | Get | {} | Отображение датчиков температуры и скорости вращения вентиляторов, корневой объект | |
sbcTemperature1 | 1.3.6.1.4.1.35265.1.49.35.1 | Get | {} | Температурный датчик 1 | |
sbcTemperature2 | 1.3.6.1.4.1.35265.1.49.35.2 | Get | {} | Температурный датчик 2 | |
sbcFan0 | 1.3.6.1.4.1.35265.1.49.35.3 | Get | {} | Датчик оборотов вентилятора 1 | |
sbcFan1 | 1.3.6.1.4.1.35265.1.49.35.4 | Get | {} | Датчик оборотов вентилятора 2 | |
sbcFan2 | 1.3.6.1.4.1.35265.1.49.35.5 | Get | {} | Датчик оборотов вентилятора 3 | |
sbcFan3 | 1.3.6.1.4.1.35265.1.49.35.6 | Get | {} | Датчик оборотов вентилятора 4 | |
sbcPowerModuleTab le | 1.3.6.1.4.1.35265.1.49.36 | Get | {} | Информация о состоянии блоков питания, корневой объект. Для дочерних объектов указывается номер БП: 1 или 2 | |
sbcPowerModuleEnt ry | 1.3.6.1.4.1.35265.1.49.36.1 | Get {} | см. sbcPowerModuleTable | ||
pmExist | 1.3.6.1.4.1.35265.1.49.36.1.2.x | Get {}.x | Установлен ли БП 1 - установлен 2 - не установлен | ||
pmPower | 1.3.6.1.4.1.35265.1.49.36.1.3.x | Get {}.x | Подаётся ли питание на БП 1 - подаётся 2 - не подаётся | ||
pmType | 1.3.6.1.4.1.35265.1.49.36.1.4.x | Get {}.x | Тип установленного БП 1 - PM48/12 2 - PM220/12 3 - PM220/12V 4 - PM150-220/12 | ||
sbcCpuLoadTable | 1.3.6.1.4.1.35265.1.49.37 | Get {} | Загрузка CPU, корневой объект. Показывает процент загрузки процессора по типам задач. Для дочерних объектов указывается номер процессора: sbc1016M - 1 sbc2016 - 1..4 | ||
sbcCpuLoadEntry | 1.3.6.1.4.1.35265.1.49.37.1 | Get {} | см. sbcCpuLoadTable | ||
cpuUsr | 1.3.6.1.4.1.35265.1.49.37.1.2.x | Get {}.x | % CPU, приложения пользователя | ||
cpuSys | 1.3.6.1.4.1.35265.1.49.37.1.3.x | Get {}.x | % CPU, приложения ядра | ||
cpuNic | 1.3.6.1.4.1.35265.1.49.37.1.4.x | Get {}.x | % CPU, приложения с изменённым приоритетом | ||
cpuIdle | 1.3.6.1.4.1.35265.1.49.37.1.5.x | Get {}.x | % CPU, нахождение в простое | ||
cpuIo | 1.3.6.1.4.1.35265.1.49.37.1.6.x | Get {}.x | % CPU, операции ввода-вывода | ||
cpuIrq | 1.3.6.1.4.1.35265.1.49.37.1.7.x | Get {}.x | % CPU, обработка аппаратных прерываний | ||
cpuSirq | 1.3.6.1.4.1.35265.1.49.37.1.8.x | Get {}.x | % CPU, обработка программных прерываний | ||
cpuUsage | 1.3.6.1.4.1.35265.1.49.37.1.9.x | Get {}.x | % CPU, общее использование | ||
activeCallCount | 1.3.6.1.4.1.35265.1.49.42.1 | Get {} | Текущее число активных вызовов | ||
registrationCount | 1.3.6.1.4.1.35265.1.49.42.2 | Get {} | Текущее число регистраций |
Таблица 3 – Настройки syslog.
Имя | OID | Запросы | Описание |
sbcSyslog | 1.3.6.1.4.1.35265.1.49.34 | Get {} | Настройки syslog, корневой объект |
sbcSyslogHistory | 1.3.6.1.4.1.35265.1.49.34.2 | Get {} | Настройки логирования истории команд в syslog, корневой объект |
sbcSyslogHistoryAddress | 1.3.6.1.4.1.35265.1.49.34.2.1 | Get {} Set {} S | IP адрес сервера syslog для приёма истории команд |
sbcSyslogHistoryPort | 1.3.6.1.4.1.35265.1.49.34.2.2 | Get {} Set {} N | Порт сервера syslog для приёма истории команд |
sbcSyslogHistoryLVL | 1.3.6.1.4.1.35265.1.49.34.2.3 | Get {} Set {} N | Уровень детализации логов 0 - отключить логирование; 1 - стандартный; 2 - полный |
sbcSyslogHistoryRowStatus | 1.3.6.1.4.1.35265.1.49.34.2.4 | Get {} Set {} 1 | Применить изменения в логировании истории команд |
sbcSyslogConfig | 1.3.6.1.4.1.35265.1.49.34.3 | Get {} | Настройки системного журнала |
sbcSyslogConfigLogsEnable d | 1.3.6.1.4.1.35265.1.49.34.3.1 | Get {} Set {} N | Включить ведение логов 1 - включить; 2 - отключить |
sbcSyslogConfigSendToServ er | 1.3.6.1.4.1.35265.1.49.34.3.2 | Get {} Set {} N | Отправлять сообщения на сервер syslog 1 - включить; 2 - выключить |
sbcSyslogConfigAddress | 1.3.6.1.4.1.35265.1.49.34.3.3 | Get {} Set {} S | IP адрес сервера syslog |
sbcSyslogConfigPort | 1.3.6.1.4.1.35265.1.49.34.3.4 | Get {} Set {} N | Порт сервера syslog |
sbcSyslogConfigRowStatus | 1.3.6.1.4.1.35265.1.49.34.3.5 | Get {} Set {} 1 | Применить изменения в настройках системного журнала |
Просмотр информации о зарегистрированных пользователях
В описании команды вызова утилит SNMP будут представлены следующими скриптами для краткости и наглядности изложения:
Скрипт swalk, реализующий чтение значений:
#!/bin/bash /usr/bin/snmpwalk -v2c -c public -m +ELTEX-SBC 192.0.2.1 "$@"
Скрипт sset, реализующий установку значений:
#!/bin/bash /usr/bin/snmpset -v2c -c private -m +ELTEX-SBC 192.0.2.1 "$@"
Для просмотра требуется сделать следующие шаги:
- Сбросить статус поиска;
- Задать критерии поиска (опционально);
- Отобразить информацию.
Пример поиска абонента по номеру:
sset sbcSubResetSearch.0 i 1 # сбросить поиск
sset getSbcSubBySubstring.0 s 40012 # задать критерий
swalk tableOfSbcSubscribers # отобразить результаты
Результат:
ELTEX-SBC::subName.0 = STRING: 40012@tau.domain:5060
ELTEX-SBC::subUserAgent.0 = STRING: TAU-72 build 2.13.1 sofia-sip/1.12.10 ELTEX-SBC::subUserAddr.0 = STRING: 192.0.2.32:5060
ELTEX-SBC::subContacts.0 = STRING: <sip:40012@192.0.2.32:5060>;expires=119 ELTEX-SBC::subRegAddr.0 = STRING: 192.0.1.22:5080
ELTEX-SBC::subSipUser.0 = STRING: Users with RTP in VLAN 609 ELTEX-SBC::subSipDest.0 = STRING: SMG
ELTEX-SBC::subBloked.0 = INTEGER: 0
ELTEX-SBC::subRetries.0 = Gauge32: 0 ELTEX-SBC::subExpires.0 = Gauge32: 0
Таблица 4 – Просмотр информации о зарегистрированных пользователях.